Sha256: d8ebcbf3e45be55de7b80d3840af51e9a1f26600d4a3c74deb9e5accf9af3378
Contents?: true
Size: 1.78 KB
Versions: 3
Compression:
Stored size: 1.78 KB
Contents
require 'rubygems' require 'test/unit' require 'shoulda' $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $LOAD_PATH.unshift(File.dirname(__FILE__)) require 'leap' class Test::Unit::TestCase end class Person attr_reader :name attr_reader :age attr_reader :date_of_birth def initialize(options = {}) @name = options[:name].upcase if options[:name] && options[:name].is_a?(String) @age = options[:age].round if options[:age] && options[:age].is_a?(Numeric) && options[:age].round > 0 @date_of_birth = options[:date_of_birth] if options[:date_of_birth] && options[:date_of_birth].is_a?(Date) end def attributes { :name => name, :age => age, :date_of_birth => date_of_birth}.delete_if { |key, val| val.nil? } end include Leap decide :lucky_number, :with => :attributes do committee :lucky_number do quorum 'super magic method', :needs => [:magic_integer, :magic_float] do |characteristics| characteristics[:magic_integer] + characteristics[:magic_float] end quorum 'normal magic method', :needs => :magic_integer do |characteristics| characteristics[:magic_integer] ** 2 end end committee :magic_integer do quorum 'top-secret technique', :needs => [:magic_float, :age] do |characteristics| characteristics[:magic_float].round + characteristics[:age] end quorum 'ninja style', :needs => :age do |characteristics| characteristics[:age] + 1 end default do 0 end end committee :magic_float do quorum 'ancient recipe', :needs => :name do |characteristics| ('A'..'Z').to_a.index(characteristics[:name].chars.to_a.first) / ('A'..'Z').to_a.index(characteristics[:name].chars.to_a.last) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
leap-0.2.1 | test/helper.rb |
leap-0.2.0 | test/helper.rb |
leap-0.1.0 | test/helper.rb |