Sha256: f23062669c9016876612ea00c7e2c1f9d3116c67c6419cd16be0776f3b9acab9
Contents?: true
Size: 1.29 KB
Versions: 1
Compression:
Stored size: 1.29 KB
Contents
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) $LOAD_PATH.unshift(File.dirname(__FILE__)) require 'rspec' require 'matchete' describe Matchete do it 'can be used to overload a method in a class' do class A include Matchete on Integer, def play(value) :integer end on Float, Any, def play(value, object) :float end end a = A.new a.play(2).should eq :integer a.play(2.2, 4).should eq :float end it 'can use a pattern based on classes and modules' do class A include Matchete on Integer, def play(value) :integer end on Float, def play(value) :float end on Enumerable, def play(value) :enumerable end end a = A.new a.play(2).should eq :integer a.play(2.2).should eq :float a.play([2]).should eq :enumerable end it 'can use a pattern based on nested arrays with classes/modules' do class A include Matchete on [Integer, Float], def play(values) [:integer, :float] end on [[Integer], Any], def play(values) :s end end a = A.new a.play([2, 2.2]).should eq [:integer, :float] a.play([[2], Matchete]).should eq :s end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
matchete-0.0.1 | spec/matchete_spec.rb |