diff --git a/lib/data_magic.rb b/lib/data_magic.rb index 1c35bb7..a138be8 100644 --- a/lib/data_magic.rb +++ b/lib/data_magic.rb @@ -20,6 +20,7 @@ def self.included(cls) def data_for(key, additional={}) DataMagic.load('default.yml') unless DataMagic.yml data = DataMagic.yml[key.to_s] + raise ArgumentError, "Undefined key #{key}" unless data prep_data data.merge(additional).clone end @@ -28,7 +29,7 @@ def data_for(key, additional={}) def prep_data(data) data.each do |key, value| unless value.nil? - next unless value.respond_to? '[]' + next if !value.respond_to?('[]') || value.is_a?(Numeric) data[key] = translate(value[1..-1]) if value[0,1] == "~" end end diff --git a/spec/lib/translation_spec.rb b/spec/lib/translation_spec.rb index 145e133..00abd24 100644 --- a/spec/lib/translation_spec.rb +++ b/spec/lib/translation_spec.rb @@ -250,6 +250,19 @@ def set_field_value(value) end end + context "with numeric values" do + it "doesn't translate values" do + set_field_value(1) + example.data_for("key").should have_field_value 1 + end + end + + context "with values not in the yaml" do + it "throws a ArgumentError" do + expect { example.data_for("inexistant_key") }.to raise_error ArgumentError + end + end + context "providing date values" do it "should provide today's date" do set_field_value '~today'