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 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