Crowdfund is a Ruby program developed based on Pragmatic Studio's Ruby Programming hands-on video course, and distributed as a Ruby gem.
This program has been developed using all the strengths of Ruby including the following.
Ruby Programming Environment
- Installing Ruby on your favorite operating system (free exercise)
- Running Ruby using the interactive Ruby shell (irb) and writing Ruby program files
- Using Ruby's documentation system to get help
- Installing external Ruby libraries using RubyGems
- Troubleshooting common problems
Ruby Language Constructs
- Expressions and variables
- Numbers, string, and symbols (free video & exercise)
- Loops and conditional expressions
- Arrays and hashes (free video & exercise on hashes)
- Classes, modules, and structs
Object-Oriented Programming
- Using built-in Ruby classes
- Defining your own classes with state and behavior (free video & exercise)
- Creating unique objects
- Telling objects what to do by calling methods
- Modeling class-level inheritance relationships
- Sharing code with mixins
Object-Oriented Design Principles
- Encapsulation
- Separation of concerns
- Polymorphism
- Don't Repeat Yourself
- Tell, Don't Ask
Blocks and Iterators
- Calling built-in methods that take blocks
- Writing your own methods that yield to blocks
- Implementing custom iterators
- Effectively using blocks in your programs
Organizing Ruby Code
-
Creating a Ruby project structure
-
Separating source files for easier reuse and testing
-
Namespacing to avoid naming clashes
-
Input/Output
-
Reading data from files
-
Writing data to files
-
Creating an interactive console prompt
-
Handling command-line input
Unit Testing
- Writing and running unit tests with RSpec
- Test-driven development and the red-green-refactor cycle
- Stubbing methods to control tests
- Refactoring code, safely!
Distribution
- Conforming to RubyGems conventions
- Writing a GemSpec
- Building a RubyGem
- Publishing a RubyGem to a public server
Ruby Programming Idioms