confstruct 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -193,6 +193,7 @@ The pattern `add_$key!` can be used to add to or create an array.
193
193
  - <b>v0.2.2</b> - Fix ArgumentError on #respond_to?(sym, true)
194
194
  - <b>v0.2.3</b> - Don't evaluate Deferreds during #inspect
195
195
  - <b>v0.2.4</b> - Fix deferreds under Ruby 1.9.x
196
+ - <b>v0.2.5</b> - #14 #configure loses nested hashes somehow
196
197
 
197
198
  ## Contributing to confstruct
198
199
 
@@ -4,5 +4,5 @@ module Confstruct
4
4
  autoload :HashWithStructAccess, 'confstruct/hash_with_struct_access'
5
5
  autoload :Configuration, 'confstruct/configuration'
6
6
 
7
- VERSION = '0.2.4'
7
+ VERSION = '0.2.5'
8
8
  end
@@ -6,7 +6,7 @@ module Confstruct
6
6
 
7
7
  def initialize hash=@@hash_class.new, &block
8
8
  super({})
9
- @default_values = hash.is_a?(HashWithStructAccess) ? hash : HashWithStructAccess.from_hash(hash)
9
+ @default_values = HashWithStructAccess.from_hash(hash)
10
10
  eval_or_yield @default_values, &block
11
11
  reset_defaults!
12
12
  end
@@ -16,7 +16,7 @@ module Confstruct
16
16
 
17
17
  def configure *args, &block
18
18
  if args[0].respond_to?(:each_pair)
19
- self.deep_merge!(args[0])
19
+ self.deep_merge!(HashWithStructAccess.from_hash(args[0]))
20
20
  end
21
21
  eval_or_yield self, &block
22
22
  after_config! self
@@ -46,6 +46,7 @@ module Confstruct
46
46
 
47
47
  class << self
48
48
  def from_hash hash
49
+ return hash if hash.is_a?(self)
49
50
  symbolized_hash = symbolize_hash hash
50
51
  self.new(symbolized_hash)
51
52
  end
@@ -127,6 +127,12 @@ describe Confstruct::Configuration do
127
127
  mock postconfigurator
128
128
  end
129
129
  end
130
+
131
+ it "should be initializable with a string-keyed hash" do
132
+ conf = Confstruct::Configuration.new
133
+ conf.configure(:top=>{:middle=>{"one"=>"two"}})
134
+ conf.top.middle.one.should == 'two'
135
+ end
130
136
  end
131
137
 
132
138
  end
metadata CHANGED
@@ -1,128 +1,128 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: confstruct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
5
4
  prerelease:
5
+ version: 0.2.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael Klein
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-23 00:00:00.000000000 Z
12
+ date: 2012-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: active_support
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
15
+ version_requirements: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
20
+ none: false
21
+ name: active_support
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
24
+ requirement: !ruby/object:Gem::Requirement
26
25
  requirements:
27
26
  - - ! '>='
28
27
  - !ruby/object:Gem::Version
29
28
  version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
33
29
  none: false
30
+ - !ruby/object:Gem::Dependency
31
+ version_requirements: !ruby/object:Gem::Requirement
34
32
  requirements:
35
33
  - - ! '>='
36
34
  - !ruby/object:Gem::Version
37
35
  version: 0.8.7
36
+ none: false
37
+ name: rake
38
38
  type: :development
39
39
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
40
+ requirement: !ruby/object:Gem::Requirement
42
41
  requirements:
43
42
  - - ! '>='
44
43
  - !ruby/object:Gem::Version
45
44
  version: 0.8.7
46
- - !ruby/object:Gem::Dependency
47
- name: simplecov
48
- requirement: !ruby/object:Gem::Requirement
49
45
  none: false
46
+ - !ruby/object:Gem::Dependency
47
+ version_requirements: !ruby/object:Gem::Requirement
50
48
  requirements:
51
49
  - - ! '>='
52
50
  - !ruby/object:Gem::Version
53
51
  version: '0'
52
+ none: false
53
+ name: simplecov
54
54
  type: :development
55
55
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
56
+ requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ! '>='
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
- - !ruby/object:Gem::Dependency
63
- name: rdiscount
64
- requirement: !ruby/object:Gem::Requirement
65
61
  none: false
62
+ - !ruby/object:Gem::Dependency
63
+ version_requirements: !ruby/object:Gem::Requirement
66
64
  requirements:
67
65
  - - ! '>='
68
66
  - !ruby/object:Gem::Version
69
67
  version: '0'
68
+ none: false
69
+ name: rdiscount
70
70
  type: :development
71
71
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
72
+ requirement: !ruby/object:Gem::Requirement
74
73
  requirements:
75
74
  - - ! '>='
76
75
  - !ruby/object:Gem::Version
77
76
  version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: rdoc
80
- requirement: !ruby/object:Gem::Requirement
81
77
  none: false
78
+ - !ruby/object:Gem::Dependency
79
+ version_requirements: !ruby/object:Gem::Requirement
82
80
  requirements:
83
81
  - - ! '>='
84
82
  - !ruby/object:Gem::Version
85
83
  version: '0'
84
+ none: false
85
+ name: rdoc
86
86
  type: :development
87
87
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
88
+ requirement: !ruby/object:Gem::Requirement
90
89
  requirements:
91
90
  - - ! '>='
92
91
  - !ruby/object:Gem::Version
93
92
  version: '0'
94
- - !ruby/object:Gem::Dependency
95
- name: rspec
96
- requirement: !ruby/object:Gem::Requirement
97
93
  none: false
94
+ - !ruby/object:Gem::Dependency
95
+ version_requirements: !ruby/object:Gem::Requirement
98
96
  requirements:
99
97
  - - ! '>='
100
98
  - !ruby/object:Gem::Version
101
99
  version: '0'
100
+ none: false
101
+ name: rspec
102
102
  type: :development
103
103
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
104
+ requirement: !ruby/object:Gem::Requirement
106
105
  requirements:
107
106
  - - ! '>='
108
107
  - !ruby/object:Gem::Version
109
108
  version: '0'
110
- - !ruby/object:Gem::Dependency
111
- name: yard
112
- requirement: !ruby/object:Gem::Requirement
113
109
  none: false
110
+ - !ruby/object:Gem::Dependency
111
+ version_requirements: !ruby/object:Gem::Requirement
114
112
  requirements:
115
113
  - - ! '>='
116
114
  - !ruby/object:Gem::Version
117
115
  version: '0'
116
+ none: false
117
+ name: yard
118
118
  type: :development
119
119
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
120
+ requirement: !ruby/object:Gem::Requirement
122
121
  requirements:
123
122
  - - ! '>='
124
123
  - !ruby/object:Gem::Version
125
124
  version: '0'
125
+ none: false
126
126
  description: A simple, hash/struct-based configuration object
127
127
  email:
128
128
  - mbklein@gmail.com
@@ -153,26 +153,20 @@ rdoc_options: []
153
153
  require_paths:
154
154
  - lib
155
155
  required_ruby_version: !ruby/object:Gem::Requirement
156
- none: false
157
156
  requirements:
158
157
  - - ! '>='
159
158
  - !ruby/object:Gem::Version
160
159
  version: '0'
161
- segments:
162
- - 0
163
- hash: 1650864101667936832
164
- required_rubygems_version: !ruby/object:Gem::Requirement
165
160
  none: false
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
162
  requirements:
167
163
  - - ! '>='
168
164
  - !ruby/object:Gem::Version
169
165
  version: '0'
170
- segments:
171
- - 0
172
- hash: 1650864101667936832
166
+ none: false
173
167
  requirements: []
174
168
  rubyforge_project:
175
- rubygems_version: 1.8.24
169
+ rubygems_version: 1.8.23
176
170
  signing_key:
177
171
  specification_version: 3
178
172
  summary: A simple, hash/struct-based configuration object