singlettings 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: af71f57afc5e8b7341cc63e9df876fc1ace061d5
4
- data.tar.gz: b31bf3191a455ff8bd6c79afe284e601fbbe55f0
3
+ metadata.gz: 4bbff715ddf4d4d0a968708a30cc7f672833c7d7
4
+ data.tar.gz: edb10496bb01479fc3d8e56004bec8f3e756c896
5
5
  SHA512:
6
- metadata.gz: 8e23d14adb54710606f740de19c483ead603e5b95fa11291f0fee7e00777ac17f437f73e5f74f44fa03890f7a3ec23201f212cfcab8fbadc06d4ab51a88d1581
7
- data.tar.gz: 96071639995bad517cb8c1e8441236f6ec11331007e59109ff7e26a21db39f05281d998ff6ebdfa11789c08a73c983dbbb1b601eee6d11866813832b87ab8130
6
+ metadata.gz: 3477a525b12e7d8abb4760c4d8dfef95adf09d367b1cdaca8ded1f6b4f4b80d35910c1d847652df52ed04b6dea68896f4291bed4fd07250f04104cd945f54737
7
+ data.tar.gz: c1e28c3d58543435afabafa3540026d911fb4695d41aa439438111a47b3a83856f2b8ad6c572470ee88508d9f82709da1297f8b9a5b235fd9d0c71676057c039
@@ -79,6 +79,8 @@ module Singlettings
79
79
  end
80
80
 
81
81
  self.replace current_branch
82
+
83
+ eval_accessors
82
84
  end
83
85
 
84
86
  def current_branch
@@ -99,26 +101,18 @@ module Singlettings
99
101
  end
100
102
  end
101
103
 
102
- def method_missing(method, *args, &block)
103
- key = method.to_s
104
- if current_branch.keys.include? key
104
+ def eval_accessors
105
+ current_branch.keys.each do |key|
105
106
  value = current_branch[key]
106
-
107
107
  result = value.is_a?(Hash) ? self.class.new(value) : value
108
-
109
- self.class.class_eval do
110
- define_method(key){ result }
108
+ self.instance_eval do
109
+ define_singleton_method(key){ result }
111
110
  end
112
-
113
- result
114
- else
115
- raise NoSuchKeyError, "#{key} does not exist"
116
111
  end
117
112
  end
118
113
 
119
- def respond_to_missing?(method, include_private = false)
120
- current_branch.keys.include? method.to_s ||
121
- (raise NoSuchKeyError, "#{method} does not exist")
114
+ def method_missing(method, *args, &block)
115
+ (raise NoSuchKeyError, "#{method} does not exist") || super
122
116
  end
123
117
  end
124
118
 
@@ -1,3 +1,3 @@
1
1
  module Singlettings
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -8,6 +8,10 @@ development:
8
8
  database: db/development.sqlite3
9
9
  pool: 5
10
10
  timeout: 5000
11
+ max:
12
+ a: 1
13
+ b: 1
14
+ c: 3
11
15
 
12
16
  # Warning: The database defined as "test" will be erased and
13
17
  # re-generated from your development database when you run "rake".
@@ -16,6 +16,10 @@ development:
16
16
  username: root
17
17
  password:
18
18
  socket: /tmp/mysql.sock
19
+ max:
20
+ a: 1
21
+ b: 2
22
+ min: 3
19
23
 
20
24
  # Warning: The database defined as "test" will be erased and
21
25
  # re-generated from your development database when you run "rake".
@@ -54,6 +54,16 @@ describe :Singlettings do
54
54
  end
55
55
  end
56
56
  end
57
+
58
+ describe "response to keyword" do
59
+ it "multiple level sample" do
60
+ DevelopmentSample["max"].should == {"a" => 1, "b" => 2, "min" => 3}
61
+ DevelopmentSample.max.should == {"a" => 1, "b" => 2, "min" => 3}
62
+
63
+ DevelopmentSample["max"]["min"].should == 3
64
+ DevelopmentSample.max.min.should == 3
65
+ end
66
+ end
57
67
  end
58
68
 
59
69
  describe "instance level singlettings" do
@@ -103,5 +113,15 @@ describe :Singlettings do
103
113
  end
104
114
  end
105
115
  end
116
+
117
+ describe "response to keyword" do
118
+ it "multiple level sample" do
119
+ @development_settings["max"].should == {"a" => 1, "b" => 2, "min" => 3}
120
+ @development_settings.max.should == {"a" => 1, "b" => 2, "min" => 3}
121
+
122
+ @development_settings["max"]["min"].should == 3
123
+ @development_settings.max.min.should == 3
124
+ end
125
+ end
106
126
  end
107
127
  end
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: singlettings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jingkai He
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-21 00:00:00.000000000 Z
11
+ date: 2014-01-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: A simple YML to singleton class solution for ruby programming language.
@@ -59,7 +59,7 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - .gitignore
62
+ - ".gitignore"
63
63
  - Gemfile
64
64
  - LICENSE.txt
65
65
  - README.md
@@ -133,17 +133,17 @@ require_paths:
133
133
  - lib
134
134
  required_ruby_version: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  required_rubygems_version: !ruby/object:Gem::Requirement
140
140
  requirements:
141
- - - '>='
141
+ - - ">="
142
142
  - !ruby/object:Gem::Version
143
143
  version: '0'
144
144
  requirements: []
145
145
  rubyforge_project:
146
- rubygems_version: 2.0.6
146
+ rubygems_version: 2.2.1
147
147
  signing_key:
148
148
  specification_version: 4
149
149
  summary: A simple YML to singleton class solution for ruby programming language.