frivol 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{frivol}
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marc Heiligers"]
@@ -13,7 +13,7 @@ module Frivol
13
13
  def retrieve(keys_and_defaults)
14
14
  Frivol::Helpers.retrieve_hash self
15
15
  result = keys_and_defaults.map do |key, default|
16
- @frivol_hash[key.to_s] || (respond_to?(default) && send(default)) || default
16
+ @frivol_hash[key.to_s] || (default.is_a?(Symbol) && respond_to?(default) && send(default)) || default
17
17
  end
18
18
  return result.first if result.size == 1
19
19
  result
@@ -57,6 +57,32 @@ class TestFrivol < Test::Unit::TestCase
57
57
  t.save
58
58
  assert_equal [ "value", "value2" ], t.load.sort
59
59
  end
60
+
61
+ should "not be naughty and try to respond to nil default" do
62
+ class DefaultNilTestClass < TestClass
63
+ def load
64
+ retrieve :value => nil
65
+ end
66
+ end
67
+
68
+ t = DefaultNilTestClass.new
69
+ assert_equal nil, t.load
70
+ end
71
+
72
+ should "only try respond to symbol defaults" do
73
+ class DefaultNonSymbolTestClass < TestClass
74
+ def load
75
+ retrieve :value => "load", :def_val => :default_value # yes, that's right, we would cause a stack overflow here
76
+ end
77
+
78
+ def default_value
79
+ "yay!"
80
+ end
81
+ end
82
+
83
+ t = DefaultNonSymbolTestClass.new
84
+ assert_equal [ "load", "yay!" ], t.load.sort
85
+ end
60
86
 
61
87
  should "be able to override the key method" do
62
88
  class OverrideKeyTestClass < TestClass
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frivol
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 2
10
- version: 0.1.2
9
+ - 3
10
+ version: 0.1.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marc Heiligers