Questionable
Installation
RubyGems
GitHub
git clone git://github.com/injekt/questionable.git
gem build questionable.gemspec
gem install questionable-<version>.gem
 
Usage
class Person
  include Questionable
  questionable :name, :age
  questionable :has_password? => :password
  questionable :friends_with_robert? => :friends do |friends|
    friends.include? 'Robert'
  end
  questionable :has_friend? => :friends do |friends, friend|
    friends.include? friend
  end
  def initialize(name, age, password=nil)
    @name = name
    @age = age
    @password = password
    @friends = ['Phil', 'Robert']
  end
end
roy = Person.new 'Roy', 36, 'Sekret!!'
roy.name? #=> true
roy.has_password? #=> true
roy.friends_with_robert? #=> true
dave = Person.new 'Dave', 42
dave.age? #=> true
dave.has_password? #=> false
dave.has_friend? 'Steve' #=> false