Sha256: 35bc3bd49bd12d9c1048cb0fda6d910fe0e82210416087a99363b3bbc5eba334
Contents?: true
Size: 957 Bytes
Versions: 2
Compression:
Stored size: 957 Bytes
Contents
require 'crosscounter/expansion' describe Crosscounter::Expansion do subject(:expansion) { Crosscounter::Expansion } describe '.expand' do it 'replaces a set of keywords with statically defined values' do expanded = expansion.expand([:days], days: %w[sunday monday]) expanded.should == { days: %w[sunday monday] } end it 'replaces a keyword with dynamically defined values' do expanded = expansion.expand([:ages], ages: -> { (18..21).map(&:to_s) }) expanded.should == { ages: %w[18 19 20 21] } end end describe '.replace' do it 'replaces all objects with mapped values' do male_object = double(gender: 'male') female_object = double(gender: 'female') replaced = expansion.replace([male_object, female_object], gender: -> object { object.gender.downcase }) replaced.should == [{ gender: 'male' }, { gender: 'female' }] end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
crosscounter-0.5.0 | spec/crosscounter/expansion_spec.rb |
crosscounter-0.4.0 | spec/crosscounter/expansion_spec.rb |