diff options
author | Max Lincoln <max@devopsy.com> | 2014-08-17 12:05:56 -0400 |
---|---|---|
committer | Max Lincoln <max@devopsy.com> | 2014-08-17 12:05:56 -0400 |
commit | 0dc1b7cdb341c4de87f573c1ccef6541bb31a5eb (patch) | |
tree | 69965f6a34ea7708bf16750bdf304ae49e4c0b67 /spec | |
parent | 11ef88b31c50cea558fa9be6dabdf6b39d593ed0 (diff) | |
download | hashie-0dc1b7cdb341c4de87f573c1ccef6541bb31a5eb.tar.gz |
Add proc test for #coerce_value
Diffstat (limited to 'spec')
-rw-r--r-- | spec/hashie/extensions/coercion_spec.rb | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/spec/hashie/extensions/coercion_spec.rb b/spec/hashie/extensions/coercion_spec.rb index 136a324..2819eea 100644 --- a/spec/hashie/extensions/coercion_spec.rb +++ b/spec/hashie/extensions/coercion_spec.rb @@ -225,7 +225,7 @@ describe Hashie::Extensions::Coercion do ) end - it 'can coerce booleans via a proc' do + it 'can coerce via a proc' do subject.coerce_key :foo, ->(v) do case v when String @@ -485,6 +485,24 @@ describe Hashie::Extensions::Coercion do expect(instance[k]).to eq(v.to_s) end end + + it 'can coerce via a proc' do + subject.coerce_value String, ->(v) do + return !!(v =~ /^(true|t|yes|y|1)$/i) + end + + true_values = %w(true t yes y 1) + false_values = %w(false f no n 0) + + true_values.each do |v| + instance[:foo] = v + expect(instance[:foo]).to be_a(TrueClass) + end + false_values.each do |v| + instance[:foo] = v + expect(instance[:foo]).to be_a(FalseClass) + end + end end end |