configure_me 0.3.2 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/.rspec +1 -1
  2. data/{README.md → README.rdoc} +7 -7
  3. data/Rakefile +1 -7
  4. data/configure_me.gemspec +3 -7
  5. data/lib/configure_me/attribute_methods.rb +88 -0
  6. data/lib/configure_me/base.rb +58 -62
  7. data/lib/configure_me/caching.rb +19 -14
  8. data/lib/configure_me/identity.rb +15 -0
  9. data/lib/configure_me/loading.rb +57 -0
  10. data/lib/configure_me/naming.rb +18 -0
  11. data/lib/configure_me/nesting.rb +30 -24
  12. data/lib/configure_me/persistence.rb +29 -0
  13. data/lib/configure_me/persisting.rb +33 -20
  14. data/lib/configure_me/setting.rb +61 -12
  15. data/lib/configure_me/validations.rb +33 -0
  16. data/lib/configure_me/version.rb +1 -1
  17. data/lib/configure_me.rb +25 -3
  18. data/lib/generators/configure_me/setup_generator.rb +21 -0
  19. data/lib/generators/configure_me/templates/initializer.rb +1 -0
  20. data/lib/generators/{templates → configure_me/templates}/migration.rb +0 -0
  21. data/lib/generators/{templates/model.rb → configure_me/templates/model.erb} +0 -0
  22. data/lib/generators/configure_me/templates/model.rb +2 -0
  23. data/spec/configure_me/attribute_methods_spec.rb +113 -0
  24. data/spec/configure_me/base_spec.rb +43 -88
  25. data/spec/configure_me/caching_spec.rb +75 -0
  26. data/spec/configure_me/identity_spec.rb +30 -0
  27. data/spec/configure_me/loading_spec.rb +84 -0
  28. data/spec/configure_me/naming_spec.rb +23 -0
  29. data/spec/configure_me/nesting_spec.rb +36 -0
  30. data/spec/configure_me/persistence_spec.rb +62 -0
  31. data/spec/configure_me/persisting_spec.rb +123 -0
  32. data/spec/configure_me/setting_spec.rb +180 -13
  33. data/spec/spec_helper.rb +6 -0
  34. data/spec/support/active_model_lint.rb +16 -0
  35. metadata +52 -81
  36. data/features/memory.feature +0 -16
  37. data/features/step_definitions/base_steps.rb +0 -33
  38. data/lib/configure_me/settings.rb +0 -101
  39. data/lib/generators/configure_me_generator.rb +0 -19
  40. data/lib/generators/templates/initializer.rb +0 -1
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe ConfigureMe::Nesting, 'the class' do
4
+ subject { ConfigureMe::Base }
5
+ it { should respond_to(:nest_me) }
6
+ end
7
+
8
+ describe ConfigureMe::Nesting do
9
+ before {
10
+ @parent_class = define_test_class('ParentConfig', ConfigureMe::Base)
11
+ @nested_class = define_test_class('NestedConfig', ConfigureMe::Base)
12
+ @parent_config = @parent_class.instance
13
+ @nested_config = @nested_class.instance
14
+ @parent_class.stubs(:instance).returns(@parent_config)
15
+ @nested_class.stubs(:instance).returns(@nested_config)
16
+ @nested_class.send(:nest_me, @parent_class)
17
+ }
18
+
19
+ context 'a nested class' do
20
+ subject { @nested_config }
21
+ its(:children) { should be_empty }
22
+ its(:all_configs) { should have(1).items }
23
+ its(:parent_config) { should eql(@parent_config) }
24
+ end
25
+
26
+ context 'a parent class' do
27
+ subject { @parent_config }
28
+ its(:children) { should have(1).items }
29
+ its(:children) { should eql(:nested => @nested_config) }
30
+ its(:all_configs) { should have(2).items }
31
+ its(:parent_config) { should be_nil }
32
+ it { should respond_to(:nested) }
33
+ its(:nested) { should eql(@nested_config) }
34
+ its(:class) { should respond_to(:nested) }
35
+ end
36
+ end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe ConfigureMe::Persistence do
4
+ before {
5
+ @persistence_class = define_test_class('PersistenceConfig', ConfigureMe::Base)
6
+ @config = @persistence_class.instance
7
+ }
8
+ subject { @config }
9
+ describe 'saving' do
10
+ before {
11
+ @config.stubs(:write_persist)
12
+ @config.stubs(:write_cache)
13
+ @config.stubs(:make_clean)
14
+ @temp_attrs = {:testsetting => 'newvalue'}
15
+ @config.stubs(:temp_attributes).returns(@temp_attrs)
16
+ @config.stubs(:persist_guard).yields
17
+ }
18
+ it 'should run callbacks' do
19
+ @config.expects(:run_callbacks).at_least_once.yields
20
+ @config.save
21
+ end
22
+ it 'should not run the validations if :validate => false is passed' do
23
+ @config.expects(:valid?).never
24
+ @config.save(:validate => false)
25
+ end
26
+ it 'should start a transaction' do
27
+ @config.expects(:persist_guard)
28
+ @config.save
29
+ end
30
+
31
+ it 'should persist the temp settings' do
32
+ @config.expects(:write_persist).with(:testsetting, 'newvalue')
33
+ @config.save
34
+ end
35
+
36
+ it 'should cache the temp settings' do
37
+ @config.expects(:write_cache).with(:testsetting, 'newvalue')
38
+ @config.save
39
+ end
40
+
41
+ it 'should clear the dirty status' do
42
+ @config.expects(:make_clean)
43
+ @config.save
44
+ end
45
+ end
46
+
47
+ describe 'update_attributes' do
48
+ before {
49
+ @config.stubs(:write_attribute)
50
+ }
51
+ it 'should store the new attributes' do
52
+ @config.stubs(:save)
53
+ @config.expects(:write_attribute).with(:testsetting, 'updatedvalue')
54
+ @config.update_attributes(:testsetting => 'updatedvalue')
55
+ end
56
+
57
+ it 'should attempt to save' do
58
+ @config.expects(:save)
59
+ @config.update_attributes(:testsetting => 'updatedvalue')
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,123 @@
1
+ require 'spec_helper'
2
+
3
+ describe ConfigureMe::Persisting, 'the class' do
4
+ subject { ConfigureMe::Base }
5
+ it { should respond_to(:persist_me) }
6
+ it { should respond_to(:persisting?) }
7
+
8
+ context 'when the persistence_klass is nil' do
9
+ before {
10
+ @persisting_klass = define_test_class('PersistingConfig', ConfigureMe::Base)
11
+ @persisting_klass.send(:persist_me)
12
+ ConfigureMe.stubs(:persistence_klass).returns(nil)
13
+ }
14
+ subject { @persisting_klass }
15
+ its(:persisting?) { should be_false }
16
+ end
17
+
18
+ describe 'persist_guard' do
19
+ before {
20
+ @persisting_klass = define_test_class('PersistingConfig', ConfigureMe::Base)
21
+ }
22
+ subject { @persisting_klass.instance }
23
+ context 'when transactions are supported' do
24
+ it 'should begin a transaction' do
25
+ @transaction_class = mock('TransactionClass') do
26
+ stubs(:transaction)
27
+ end
28
+ ConfigureMe.stubs(:persistence_klass).returns(@transaction_class)
29
+ @transaction_class.expects(:transaction)
30
+ subject.persist_guard
31
+ end
32
+ end
33
+
34
+ context 'when persisting with something else' do
35
+ it 'should just execute the block' do
36
+ @non_transaction_class = mock('NonTransactionClass')
37
+ ConfigureMe.stubs(:persistence_klass).returns(@non_transaction_class)
38
+ @testvalue = 'default'
39
+ subject.persist_guard do
40
+ @testvalue = 'changed'
41
+ end
42
+ @testvalue.should eql('changed')
43
+ end
44
+ end
45
+ end
46
+ end
47
+
48
+ describe ConfigureMe::Persisting, 'when persisting is enabled' do
49
+ before {
50
+ @persisting_class = define_test_class('PersistingConfig', ConfigureMe::Base)
51
+ @persisted_setting = mock('PersistedSetting') do
52
+ stubs(:value).returns('foo'.to_yaml)
53
+ stubs(:value=)
54
+ stubs(:save!)
55
+ end
56
+ @persistence_klass = mock('PersistenceKlass')
57
+ @persistence_klass.stubs(:find_or_create_by_key).returns(@persisted_setting)
58
+ @persistence_klass.stubs(:find_by_key).returns(@persisted_setting)
59
+ ConfigureMe.stubs(:persistence_klass).returns(@persistence_klass)
60
+ @persisting_class.send(:persist_me)
61
+ }
62
+ subject { @persisting_class.instance }
63
+
64
+ describe 'read_persist' do
65
+ it 'should read from the persistence store' do
66
+ @persistence_klass.expects(:find_by_key).once.returns(@persisted_setting)
67
+ subject.read_persist('persistedsetting')
68
+ end
69
+
70
+ context 'with a persisted value' do
71
+ it 'should return the converted value' do
72
+ subject.read_persist('persistedsetting').should eql('foo')
73
+ end
74
+ end
75
+
76
+ context 'with a non-persisted value' do
77
+ it 'should return nil' do
78
+ @persistence_klass.stubs(:find_by_key).returns(nil)
79
+ subject.read_persist('persistedsetting').should be_nil
80
+ end
81
+ end
82
+ end
83
+
84
+ describe 'write_persist' do
85
+ it 'should retrieve or create the setting' do
86
+ @persistence_klass.expects(:find_or_create_by_key).once.returns(@persisted_setting)
87
+ subject.write_persist('persistedsetting', 'newvalue')
88
+ end
89
+ it 'should update the value' do
90
+ @persisted_setting.expects(:value=).with('newvalue'.to_yaml)
91
+ subject.write_persist('persistedsetting', 'newvalue')
92
+ end
93
+ it 'should save the record' do
94
+ @persisted_setting.expects(:save!)
95
+ subject.write_persist('persistedsetting', 'newvalue')
96
+ end
97
+ end
98
+ end
99
+
100
+ describe ConfigureMe::Persisting, 'when persisting is disabled' do
101
+ before {
102
+ @persisting_class = define_test_class('PersistingConfig', ConfigureMe::Base)
103
+ @persisting_class.stubs(:persisting?).returns(false)
104
+ }
105
+ subject { @persisting_class.instance }
106
+
107
+ describe 'read_persist' do
108
+ it 'should not attempt to read from the persistence store' do
109
+ ConfigureMe.expects(:persistence_klass).never
110
+ subject.read_persist('persistedsetting')
111
+ end
112
+ it 'should return nil' do
113
+ subject.read_persist('persistedsetting').should be_nil
114
+ end
115
+ end
116
+
117
+ describe 'write_persist' do
118
+ it 'should not attempt to write to the persistence store' do
119
+ ConfigureMe.expects(:persistence_klass).never
120
+ subject.write_persist('persistedsetting', 'newvalue')
121
+ end
122
+ end
123
+ end
@@ -1,23 +1,190 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe ConfigureMe::Setting do
4
- before(:each) do
5
- @owner = mock('owner') do
6
- stubs(:define_attribute_methods)
4
+
5
+ def mock_setting(name, *args)
6
+ ConfigureMe::Setting.new(name, *args)
7
+ end
8
+
9
+ describe 'an instance' do
10
+ subject do
11
+ mock_setting(:foo, :type => :string, :default => 'bar')
12
+ end
13
+ it { should respond_to(:name) }
14
+ it { should respond_to(:type) }
15
+ it { should respond_to(:default) }
16
+ its(:name) { should eql('foo') }
17
+ its(:type) { should eql(:string) }
18
+ its(:default) { should eql('bar') }
19
+ end
20
+
21
+ describe 'inferring the type' do
22
+ context 'with a string default value' do
23
+ subject do
24
+ mock_setting(:foo, :default => 'stringvalue')
25
+ end
26
+ its(:type) { should eql(:string) }
27
+ its(:default) { should eql('stringvalue') }
28
+ end
29
+ context 'with a numeric default value' do
30
+ subject do
31
+ mock_setting(:foo, :default => 123)
32
+ end
33
+ its(:type) { should eql(:integer) }
34
+ its(:default) { should eql(123) }
35
+ end
36
+ context 'with a float default value' do
37
+ subject do
38
+ mock_setting(:foo, :default => 1.23)
39
+ end
40
+ its(:type) { should eql(:float) }
41
+ its(:default) { should eql(1.23) }
42
+ end
43
+ context 'with a boolean default value' do
44
+ subject do
45
+ mock_setting(:foo, :default => true)
46
+ end
47
+ its(:type) { should eql(:boolean) }
48
+ its(:default) { should eql(true) }
49
+ end
50
+ context 'with a nil default value' do
51
+ subject do
52
+ mock_setting(:foo, :default => nil)
53
+ end
54
+ its(:type) { should eql(:unknown) }
55
+ its(:default) { should be_nil }
56
+ end
57
+ context 'with an unsupported default value' do
58
+ it 'should raise an exception' do
59
+ lambda {
60
+ ConfigureMe::Setting.new(:foo, :default => {:invalid => 'hash'})
61
+ }.should raise_error(ConfigureMe::InvalidDefault)
62
+ end
7
63
  end
8
- @setting = ConfigureMe::Setting.new(@owner, :foo, :string, :default => 'bar')
9
64
  end
10
65
 
11
- it { @setting.should respond_to(:name) }
12
- it { @setting.name.should eql('foo') }
13
- it { @setting.should respond_to(:default) }
14
- it { @setting.default.should eql('bar') }
66
+ describe 'convert' do
67
+ before(:each) do
68
+ @string_setting = mock_setting(:stringsetting, :type => :string)
69
+ @integer_setting = mock_setting(:integersetting, :type => :integer)
70
+ @float_setting = mock_setting(:floatsetting, :type => :float)
71
+ @boolean_setting = mock_setting(:booleansetting, :type => :boolean)
72
+ end
73
+ context 'an empty string' do
74
+ it 'should return "" with a string type' do
75
+ @string_setting.convert('').should eql('')
76
+ end
77
+ it 'should return 0 with an integer type' do
78
+ @integer_setting.convert('').should eql(0)
79
+ end
80
+ it 'should return 0.0 with a float type' do
81
+ @float_setting.convert('').should eql(0.0)
82
+ end
83
+ it 'should return nil with a boolean type' do
84
+ @boolean_setting.convert('').should be_nil
85
+ end
86
+ end
87
+ context 'a string value of "foo"' do
88
+ it 'should return "foo" with a string type' do
89
+ @string_setting.convert('foo').should eql('foo')
90
+ end
91
+ it 'should return 0 with an integer type' do
92
+ @integer_setting.convert('foo').should eql(0)
93
+ end
94
+ it 'should return 0.0 with a float type' do
95
+ @float_setting.convert('foo').should eql(0.0)
96
+ end
97
+ it 'should return false with a boolean type' do
98
+ @boolean_setting.convert('foo').should be_false
99
+ end
100
+ end
101
+
102
+ context 'an integer value of 123' do
103
+ it 'should return "123" with a string type' do
104
+ @string_setting.convert(123).should eql('123')
105
+ end
106
+ it 'should return 123 with an integer type' do
107
+ @integer_setting.convert(123).should eql(123)
108
+ end
109
+ it 'should return 123.0 with a float type' do
110
+ @float_setting.convert(123).should eql(123.0)
111
+ end
112
+ it 'should return false with a boolean type' do
113
+ @boolean_setting.convert(123).should be_false
114
+ end
115
+ end
116
+
117
+ context 'a float value of 1.23' do
118
+ it 'should return "1.23" with a string type' do
119
+ @string_setting.convert(1.23).should eql('1.23')
120
+ end
121
+ it 'should return 1 with an integer type' do
122
+ @integer_setting.convert(1.23).should eql(1)
123
+ end
124
+ it 'should return 1.23 with a float type' do
125
+ @float_setting.convert(1.23).should eql(1.23)
126
+ end
127
+ it 'should return false with a boolean type' do
128
+ @boolean_setting.convert(1.23).should be_false
129
+ end
130
+ end
131
+
132
+ context 'a boolean value of true' do
133
+ it 'should return "true" with a string type' do
134
+ @string_setting.convert(true).should eql('true')
135
+ end
136
+ it 'should return 1 with an integer type' do
137
+ @integer_setting.convert(true).should eql(1)
138
+ end
139
+ it 'should return 1.0 with a float type' do
140
+ @float_setting.convert(true).should eql(1.0)
141
+ end
142
+ it 'should return true with a boolean type' do
143
+ @boolean_setting.convert(true).should be_true
144
+ end
145
+ end
146
+
147
+ context 'a nil value' do
148
+ it 'should return "" with a string type' do
149
+ @string_setting.convert(nil).should eql('')
150
+ end
151
+ it 'should return 0 with an integer type' do
152
+ @integer_setting.convert(nil).should eql(0)
153
+ end
154
+ it 'should return 0.0 with a float type' do
155
+ @float_setting.convert(nil).should eql(0.0)
156
+ end
157
+ it 'should return false with a boolean type' do
158
+ @boolean_setting.convert(nil).should be_false
159
+ end
160
+ end
161
+
162
+ describe 'to string with an unsupported type' do
163
+ it 'should raise InvalidConversion' do
164
+ lambda { @string_setting.convert([]) }.should raise_error(ConfigureMe::InvalidConversion)
165
+ end
166
+ end
15
167
 
16
- it "define_methods! should call the owner class's define_attribute_methods with false" do
17
- owner = mock('owner') do
18
- expects(:define_attribute_methods).with(true)
168
+ describe 'with an unknown type' do
169
+ before(:each) do
170
+ @unknown = mock_setting(:unknownsetting, :default => nil)
171
+ end
172
+ it 'should set the type to :string when a string value is converted' do
173
+ @unknown.convert('string')
174
+ @unknown.type.should eql(:string)
175
+ end
176
+ it 'should set the type to :integer when an integer value is converted' do
177
+ @unknown.convert(123)
178
+ @unknown.type.should eql(:integer)
179
+ end
180
+ it 'should set the type to :float when a float value is converted' do
181
+ @unknown.convert(1.23)
182
+ @unknown.type.should eql(:float)
183
+ end
184
+ it 'should set the type to :boolean when a boolean value is converted' do
185
+ @unknown.convert(true)
186
+ @unknown.type.should eql(:boolean)
187
+ end
19
188
  end
20
- setting = ConfigureMe::Setting.new(owner, :foo, :string, :default => 'bar')
21
- setting.define_methods!
22
189
  end
23
190
  end
data/spec/spec_helper.rb CHANGED
@@ -2,9 +2,15 @@ require 'rubygems'
2
2
  require 'bundler/setup'
3
3
  Bundler.require(:default)
4
4
  require 'rspec/core'
5
+ require 'support/active_model_lint'
5
6
 
6
7
  require 'configure_me'
7
8
 
8
9
  RSpec.configure do |config|
9
10
  config.mock_with :mocha
10
11
  end
12
+
13
+ def define_test_class(name, base)
14
+ Object.send(:remove_const, name.to_sym) if Object.const_defined?(name)
15
+ Object.const_set(name, Class.new(base))
16
+ end
@@ -0,0 +1,16 @@
1
+ shared_examples_for "ActiveModel" do
2
+ require 'test/unit/assertions'
3
+ include ActiveModel::Lint::Tests
4
+ include Test::Unit::Assertions
5
+
6
+ # to_s is to support ruby-1.9
7
+ ActiveModel::Lint::Tests.public_instance_methods.map{|m| m.to_s}.grep(/^test/).each do |m|
8
+ example m.gsub('_',' ') do
9
+ send m
10
+ end
11
+ end
12
+
13
+ def model
14
+ subject
15
+ end
16
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: configure_me
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease: false
4
+ hash: 15
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 3
9
- - 2
10
- version: 0.3.2
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Josh Williams
@@ -15,61 +15,44 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-06 00:00:00 -06:00
19
- default_executable:
18
+ date: 2011-05-16 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- name: activemodel
21
+ name: rails
23
22
  prerelease: false
24
23
  requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
25
  requirements:
27
- - - ~>
26
+ - - "="
28
27
  - !ruby/object:Gem::Version
29
- hash: 5
28
+ hash: 1
30
29
  segments:
31
30
  - 3
32
31
  - 0
33
- - 1
34
- version: 3.0.1
35
- type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: activesupport
39
- prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 5
46
- segments:
47
32
  - 3
48
- - 0
49
- - 1
50
- version: 3.0.1
33
+ version: 3.0.3
51
34
  type: :runtime
52
- version_requirements: *id002
35
+ version_requirements: *id001
53
36
  - !ruby/object:Gem::Dependency
54
37
  name: rspec
55
38
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
57
40
  none: false
58
41
  requirements:
59
42
  - - ~>
60
43
  - !ruby/object:Gem::Version
61
- hash: 13
44
+ hash: 7
62
45
  segments:
63
46
  - 2
47
+ - 2
64
48
  - 0
65
- - 1
66
- version: 2.0.1
49
+ version: 2.2.0
67
50
  type: :development
68
- version_requirements: *id003
51
+ version_requirements: *id002
69
52
  - !ruby/object:Gem::Dependency
70
53
  name: rcov
71
54
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
55
+ requirement: &id003 !ruby/object:Gem::Requirement
73
56
  none: false
74
57
  requirements:
75
58
  - - ~>
@@ -81,11 +64,11 @@ dependencies:
81
64
  - 9
82
65
  version: 0.9.9
83
66
  type: :development
84
- version_requirements: *id004
67
+ version_requirements: *id003
85
68
  - !ruby/object:Gem::Dependency
86
69
  name: mocha
87
70
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
89
72
  none: false
90
73
  requirements:
91
74
  - - ~>
@@ -97,39 +80,7 @@ dependencies:
97
80
  - 8
98
81
  version: 0.9.8
99
82
  type: :development
100
- version_requirements: *id005
101
- - !ruby/object:Gem::Dependency
102
- name: cucumber
103
- prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - ~>
108
- - !ruby/object:Gem::Version
109
- hash: 51
110
- segments:
111
- - 0
112
- - 9
113
- - 4
114
- version: 0.9.4
115
- type: :development
116
- version_requirements: *id006
117
- - !ruby/object:Gem::Dependency
118
- name: activerecord
119
- prerelease: false
120
- requirement: &id007 !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ~>
124
- - !ruby/object:Gem::Version
125
- hash: 5
126
- segments:
127
- - 3
128
- - 0
129
- - 1
130
- version: 3.0.1
131
- type: :development
132
- version_requirements: *id007
83
+ version_requirements: *id004
133
84
  description: Simple gem to assist with persisting configuration data.
134
85
  email:
135
86
  - theprime@codingprime.com
@@ -143,27 +94,39 @@ files:
143
94
  - .gitignore
144
95
  - .rspec
145
96
  - Gemfile
146
- - README.md
97
+ - README.rdoc
147
98
  - Rakefile
148
99
  - configure_me.gemspec
149
- - features/memory.feature
150
- - features/step_definitions/base_steps.rb
151
100
  - lib/configure_me.rb
101
+ - lib/configure_me/attribute_methods.rb
152
102
  - lib/configure_me/base.rb
153
103
  - lib/configure_me/caching.rb
104
+ - lib/configure_me/identity.rb
105
+ - lib/configure_me/loading.rb
106
+ - lib/configure_me/naming.rb
154
107
  - lib/configure_me/nesting.rb
108
+ - lib/configure_me/persistence.rb
155
109
  - lib/configure_me/persisting.rb
156
110
  - lib/configure_me/setting.rb
157
- - lib/configure_me/settings.rb
111
+ - lib/configure_me/validations.rb
158
112
  - lib/configure_me/version.rb
159
- - lib/generators/configure_me_generator.rb
160
- - lib/generators/templates/initializer.rb
161
- - lib/generators/templates/migration.rb
162
- - lib/generators/templates/model.rb
113
+ - lib/generators/configure_me/setup_generator.rb
114
+ - lib/generators/configure_me/templates/initializer.rb
115
+ - lib/generators/configure_me/templates/migration.rb
116
+ - lib/generators/configure_me/templates/model.erb
117
+ - lib/generators/configure_me/templates/model.rb
118
+ - spec/configure_me/attribute_methods_spec.rb
163
119
  - spec/configure_me/base_spec.rb
120
+ - spec/configure_me/caching_spec.rb
121
+ - spec/configure_me/identity_spec.rb
122
+ - spec/configure_me/loading_spec.rb
123
+ - spec/configure_me/naming_spec.rb
124
+ - spec/configure_me/nesting_spec.rb
125
+ - spec/configure_me/persistence_spec.rb
126
+ - spec/configure_me/persisting_spec.rb
164
127
  - spec/configure_me/setting_spec.rb
165
128
  - spec/spec_helper.rb
166
- has_rdoc: true
129
+ - spec/support/active_model_lint.rb
167
130
  homepage: http://www.github.com/t3hpr1m3/configure_me
168
131
  licenses: []
169
132
 
@@ -193,13 +156,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
193
156
  requirements: []
194
157
 
195
158
  rubyforge_project: configure_me
196
- rubygems_version: 1.3.7
159
+ rubygems_version: 1.7.2
197
160
  signing_key:
198
161
  specification_version: 3
199
162
  summary: Simple configuration library
200
163
  test_files:
201
- - features/memory.feature
202
- - features/step_definitions/base_steps.rb
164
+ - spec/configure_me/attribute_methods_spec.rb
203
165
  - spec/configure_me/base_spec.rb
166
+ - spec/configure_me/caching_spec.rb
167
+ - spec/configure_me/identity_spec.rb
168
+ - spec/configure_me/loading_spec.rb
169
+ - spec/configure_me/naming_spec.rb
170
+ - spec/configure_me/nesting_spec.rb
171
+ - spec/configure_me/persistence_spec.rb
172
+ - spec/configure_me/persisting_spec.rb
204
173
  - spec/configure_me/setting_spec.rb
205
174
  - spec/spec_helper.rb
175
+ - spec/support/active_model_lint.rb
176
+ has_rdoc:
@@ -1,16 +0,0 @@
1
- Feature: Store configuration in memory
2
- In order to store configuration information
3
- As a ruby developer
4
- I want to create a configuration class that stores settings in memory
5
-
6
- Scenario: Simple configuration object
7
- Given a Configuration class that derives from ConfigureMe::Base
8
- And I add a "color" setting with a type of "string" and a default of "red"
9
- When I create an instance of the class
10
- And I read the "color" setting
11
- Then the result should be "red"
12
-
13
- When I set the "color" setting to "blue"
14
- And I read the "color" setting
15
- Then the result should be "blue"
16
-