frivol 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/frivol.gemspec +1 -1
- data/lib/frivol.rb +1 -1
- data/test/test_frivol.rb +26 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
data/frivol.gemspec
CHANGED
data/lib/frivol.rb
CHANGED
@@ -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
|
data/test/test_frivol.rb
CHANGED
@@ -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:
|
4
|
+
hash: 29
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 3
|
10
|
+
version: 0.1.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Marc Heiligers
|