summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorMax Lincoln <max@devopsy.com>2014-08-17 12:05:56 -0400
committerMax Lincoln <max@devopsy.com>2014-08-17 12:05:56 -0400
commit0dc1b7cdb341c4de87f573c1ccef6541bb31a5eb (patch)
tree69965f6a34ea7708bf16750bdf304ae49e4c0b67 /spec
parent11ef88b31c50cea558fa9be6dabdf6b39d593ed0 (diff)
downloadhashie-0dc1b7cdb341c4de87f573c1ccef6541bb31a5eb.tar.gz
Add proc test for #coerce_value
Diffstat (limited to 'spec')
-rw-r--r--spec/hashie/extensions/coercion_spec.rb20
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