Sha256: 9e57a3af5929e9e3252f01d073fc5b5ab82cba05f1e6ab013678a9a65422e901
Contents?: true
Size: 953 Bytes
Versions: 2
Compression:
Stored size: 953 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 = mock(gender: 'male') female_object = mock(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.3.0 | spec/crosscounter/expansion_spec.rb |
crosscounter-0.2.0 | spec/crosscounter/expansion_spec.rb |