setting_accessors 0.3.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +5 -5
  2. data/.editorconfig +10 -0
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +131 -0
  5. data/.travis.yml +11 -7
  6. data/Appraisals +17 -0
  7. data/CHANGELOG.md +38 -1
  8. data/Gemfile +2 -0
  9. data/README.md +64 -124
  10. data/Rakefile +5 -27
  11. data/bin/console +15 -0
  12. data/bin/setup +10 -0
  13. data/gemfiles/rails_4.1.gemfile +7 -0
  14. data/gemfiles/rails_4.2.gemfile +7 -0
  15. data/gemfiles/rails_4.2.gemfile.lock +162 -0
  16. data/gemfiles/rails_5.0.gemfile +7 -0
  17. data/gemfiles/rails_5.0.gemfile.lock +169 -0
  18. data/gemfiles/rails_5.1.gemfile +7 -0
  19. data/gemfiles/rails_5.1.gemfile.lock +169 -0
  20. data/gemfiles/rails_5.2.gemfile +7 -0
  21. data/gemfiles/rails_5.2.gemfile.lock +177 -0
  22. data/lib/generators/setting_accessors/install_generator.rb +11 -9
  23. data/lib/generators/setting_accessors/templates/model.rb.erb +0 -24
  24. data/lib/setting_accessors.rb +14 -5
  25. data/lib/setting_accessors/accessor_generator.rb +66 -0
  26. data/lib/setting_accessors/converters/base.rb +24 -0
  27. data/lib/setting_accessors/converters/boolean_converter.rb +51 -0
  28. data/lib/setting_accessors/converters/integer_converter.rb +21 -0
  29. data/lib/setting_accessors/converters/polymorphic_converter.rb +11 -0
  30. data/lib/setting_accessors/converters/string_converter.rb +11 -0
  31. data/lib/setting_accessors/helpers.rb +28 -0
  32. data/lib/setting_accessors/integration.rb +83 -97
  33. data/lib/setting_accessors/internal.rb +37 -64
  34. data/lib/setting_accessors/setting_scaffold.rb +147 -214
  35. data/lib/setting_accessors/setting_set.rb +168 -0
  36. data/lib/setting_accessors/version.rb +3 -1
  37. data/lib/tasks/setting_accessors_tasks.rake +2 -0
  38. data/setting_accessors.gemspec +27 -19
  39. metadata +117 -143
  40. data/.codeclimate.yml +0 -66
  41. data/lib/setting_accessors/accessor.rb +0 -189
  42. data/lib/setting_accessors/converter.rb +0 -71
  43. data/lib/setting_accessors/integration_validator.rb +0 -15
  44. data/lib/setting_accessors/validator.rb +0 -144
  45. data/test/dummy/README.rdoc +0 -28
  46. data/test/dummy/Rakefile +0 -6
  47. data/test/dummy/app/assets/images/.keep +0 -0
  48. data/test/dummy/app/assets/javascripts/application.js +0 -13
  49. data/test/dummy/app/assets/stylesheets/application.css +0 -15
  50. data/test/dummy/app/controllers/application_controller.rb +0 -5
  51. data/test/dummy/app/controllers/concerns/.keep +0 -0
  52. data/test/dummy/app/helpers/application_helper.rb +0 -2
  53. data/test/dummy/app/mailers/.keep +0 -0
  54. data/test/dummy/app/models/.keep +0 -0
  55. data/test/dummy/app/models/concerns/.keep +0 -0
  56. data/test/dummy/app/models/post.rb +0 -2
  57. data/test/dummy/app/models/setting.rb +0 -59
  58. data/test/dummy/app/models/user.rb +0 -19
  59. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  60. data/test/dummy/bin/bundle +0 -3
  61. data/test/dummy/bin/rails +0 -4
  62. data/test/dummy/bin/rake +0 -4
  63. data/test/dummy/config.ru +0 -4
  64. data/test/dummy/config/application.rb +0 -25
  65. data/test/dummy/config/boot.rb +0 -5
  66. data/test/dummy/config/database.yml +0 -25
  67. data/test/dummy/config/environment.rb +0 -5
  68. data/test/dummy/config/environments/development.rb +0 -37
  69. data/test/dummy/config/environments/production.rb +0 -83
  70. data/test/dummy/config/environments/test.rb +0 -34
  71. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  72. data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  73. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  74. data/test/dummy/config/initializers/inflections.rb +0 -16
  75. data/test/dummy/config/initializers/mime_types.rb +0 -4
  76. data/test/dummy/config/initializers/session_store.rb +0 -3
  77. data/test/dummy/config/initializers/setting_accessors.rb +0 -1
  78. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  79. data/test/dummy/config/locales/en.yml +0 -23
  80. data/test/dummy/config/routes.rb +0 -56
  81. data/test/dummy/config/secrets.yml +0 -22
  82. data/test/dummy/config/settings.yml +0 -23
  83. data/test/dummy/db/migrate/20150102112106_create_users.rb +0 -9
  84. data/test/dummy/db/migrate/20150102115329_create_settings.rb +0 -12
  85. data/test/dummy/db/migrate/20150723114600_create_posts.rb +0 -11
  86. data/test/dummy/db/schema.rb +0 -40
  87. data/test/dummy/db/test.sqlite3 +0 -0
  88. data/test/dummy/lib/assets/.keep +0 -0
  89. data/test/dummy/public/404.html +0 -67
  90. data/test/dummy/public/422.html +0 -67
  91. data/test/dummy/public/500.html +0 -66
  92. data/test/dummy/public/favicon.ico +0 -0
  93. data/test/dummy/test/fixtures/posts.yml +0 -11
  94. data/test/dummy/test/models/post_test.rb +0 -19
  95. data/test/dummy/test/models/setting_test.rb +0 -143
  96. data/test/dummy/test/models/user_test.rb +0 -154
  97. data/test/generators/install_generator_test.rb +0 -15
  98. data/test/setting_accessors_test.rb +0 -4
  99. data/test/test_helper.rb +0 -31
@@ -0,0 +1,168 @@
1
+ # frozen_string_literal: true
2
+
3
+ #
4
+ # Helper class to make accessing record specific settings easier
5
+ #
6
+ module SettingAccessors
7
+ class SettingSet
8
+ include ::SettingAccessors::Helpers
9
+
10
+ attr_reader :record
11
+
12
+ def initialize(record)
13
+ @record = record
14
+ @temp_settings = {}
15
+ end
16
+
17
+ #
18
+ # Tries to retrieve the given setting's value from the temp settings
19
+ # (already read/written values in this instance). If the setting hasn't been
20
+ # used before, its value is retrieved from the database.
21
+ #
22
+ # If a setting hasn't been read by this record (instance) before, its value
23
+ # is stored in the local read set.
24
+ #
25
+ # TODO: See if this causes problems with read settings not being updated by external changes.
26
+ # User1: Read Setting X
27
+ # User2: Update Setting X
28
+ # User1: Read Setting X -> Gets old value from temp settings.
29
+ # This shouldn't be too dangerous as the system state will be refreshed with every request though.
30
+ #
31
+ # @param [Boolean] skip_cached
32
+ # If set to +true+, the setting value is freshly loaded from the database,
33
+ # even if a value that's not yet persisted exists.
34
+ #
35
+ def get(key, skip_cached: false)
36
+ return @temp_settings[key.to_sym] if !skip_cached && key?(key)
37
+
38
+ value = SettingAccessors.setting_class.get(key, record)
39
+ @temp_settings[key.to_sym] = value unless value.nil?
40
+ value
41
+ end
42
+
43
+ alias [] get
44
+
45
+ def key?(key)
46
+ @temp_settings.key?(key.to_sym)
47
+ end
48
+
49
+ #
50
+ # Writes a setting's value
51
+ #
52
+ def set(key, val)
53
+ track_old_value(key)
54
+ set_value_before_type_cast(key, val)
55
+ @temp_settings[key.to_sym] = SettingAccessors::Internal.converter(value_type(key)).new(val).convert
56
+ end
57
+
58
+ alias []= set
59
+
60
+ #
61
+ # Tries to find a setting for this record.
62
+ # If none is found, will return the default setting value
63
+ # specified in the setting accessor call
64
+ #
65
+ # @param [Boolean] store_default
66
+ # If set to +true+, the setting's default value is written to the temporary settings
67
+ # for faster access. Otherwise, a database lookup is performed every time.
68
+ #
69
+ # @param [Boolean] skip_cached
70
+ # If set to +true+, a possible temporary setting is skipped when looking up the value.
71
+ # This means, the default value is returned even if there is a not yet persisted change to the setting.
72
+ #
73
+ def get_or_default(key, store_default: true, skip_cached: false)
74
+ result = get(key, skip_cached: skip_cached)
75
+ return result if result || (key?(key) && !skip_cached)
76
+
77
+ try_dup(SettingAccessors.setting_class.get_or_default(key, record)).tap do |value|
78
+ set(key, value) if store_default
79
+ end
80
+ end
81
+
82
+ #
83
+ # @return [String] the setting's value type in the +record+'s context
84
+ #
85
+ def value_type(key)
86
+ SettingAccessors::Internal.setting_value_type(key, record)
87
+ end
88
+
89
+ #----------------------------------------------------------------
90
+ # ActiveRecord Helper Methods Emulation
91
+ #----------------------------------------------------------------
92
+
93
+ #
94
+ # @return [Object] the value the given setting had after it was last persisted
95
+ #
96
+ def value_was(key)
97
+ lookup_nested_hash(@old_values, key.to_s)
98
+ rescue NestedHashKeyNotFoundException
99
+ get(key)
100
+ end
101
+
102
+ def value_changed?(key)
103
+ get(key) != value_was(key)
104
+ end
105
+
106
+ def value_before_type_cast(key)
107
+ lookup_nested_hash(@values_before_type_casts, key.to_s)
108
+ rescue NestedHashKeyNotFoundException
109
+ get(key)
110
+ end
111
+
112
+ def changed_settings
113
+ @temp_settings.select { |k, _| value_changed?(k) }
114
+ end
115
+
116
+ protected
117
+
118
+ #
119
+ # Keeps a record of the originally set value for a setting before it was
120
+ # automatically converted.
121
+ #
122
+ def set_value_before_type_cast(key, value)
123
+ @values_before_type_casts ||= {}
124
+ @values_before_type_casts[key.to_s] = value
125
+ end
126
+
127
+ #
128
+ # Keeps a local copy of a setting's value before it was overridden.
129
+ # Once the setting is persisted, this value is cleared.
130
+ #
131
+ def track_old_value(key)
132
+ @old_values ||= {}
133
+
134
+ unless @old_values.key?(key.to_s)
135
+ @old_values[key.to_s] = get_or_default(key, skip_cached: true, store_default: false)
136
+ end
137
+ end
138
+
139
+ #
140
+ # @return [Object] the duplicated value if it is in fact duplicable. The actual value otherwise
141
+ #
142
+ def try_dup(value)
143
+ value.duplicable? ? value.dup : value
144
+ end
145
+
146
+ #
147
+ # Saves the new setting values into the database
148
+ # Please note that there is no check if the values changed their
149
+ # in the meantime.
150
+ #
151
+ # Also, this method expects that the settings were validated
152
+ # before using #validate! and will therefore not perform
153
+ # validations itself.
154
+ #
155
+ def persist!
156
+ @temp_settings.each do |key, value|
157
+ Setting.set(key, value, assignable: record)
158
+ end
159
+ flush!
160
+ end
161
+
162
+ def flush!
163
+ @temp_settings = {}
164
+ @values_before_type_casts = {}
165
+ @old_values = {}
166
+ end
167
+ end
168
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SettingAccessors
2
- VERSION = '0.3.0'.freeze
4
+ VERSION = '1.0.0'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # desc "Explaining what the task does"
2
4
  # task :setting_accessors do
3
5
  # # Task goes here
@@ -1,32 +1,40 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'setting_accessors/version'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
8
  spec.name = 'setting_accessors'
8
9
  spec.version = SettingAccessors::VERSION
9
- spec.authors = ["Stefan Exner"]
10
- spec.email = ["stex@sterex.de"]
11
- spec.summary = %q{A global key-value-store and virtual model columns}
12
- spec.description = %q{Adds a global key-value-store to Rails applications and allows adding typed columns
13
- to model classes without having to change the database layout.}
10
+ spec.authors = ['Stefan Exner']
11
+ spec.email = ['stex@sterex.de']
12
+ spec.summary = 'A global key-value-store and virtual model columns'
13
+ spec.description = 'Adds a global key-value-store to Rails applications and allows adding typed columns
14
+ to model classes without having to change the database layout.'
14
15
  spec.homepage = 'https://www.github.com/stex/setting_accessors'
15
- spec.license = "MIT"
16
+ spec.license = 'MIT'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
+ f.match(%r{^(test|spec|features)/})
20
+ end
16
21
 
17
- spec.files = `git ls-files -z`.split("\x0")
18
- spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
- spec.require_paths = ["lib"]
22
+ spec.bindir = 'exe'
23
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
+ spec.require_paths = ['lib']
21
25
 
22
- spec.required_ruby_version = ['>= 2.2.2', '< 3']
26
+ spec.required_ruby_version = ['>= 2.3', '< 3']
23
27
 
24
- spec.add_development_dependency "bundler", "~> 1.6"
25
- spec.add_development_dependency "rake", "~> 10.4"
28
+ spec.add_development_dependency 'appraisal', '~> 2.2'
29
+ spec.add_development_dependency 'bundler', '~> 1.6'
30
+ spec.add_development_dependency 'generator_spec', '~> 0.9'
31
+ spec.add_development_dependency 'rake', '~> 10.4'
32
+ spec.add_development_dependency 'rspec', '~> 3.8'
33
+ spec.add_development_dependency 'rubocop', '~> 0.60'
26
34
  spec.add_development_dependency 'sqlite3', '~> 1.3'
27
- spec.add_development_dependency 'shoulda', '~> 3.5'
28
- spec.add_development_dependency 'minitest', '~> 5.5'
29
- spec.add_development_dependency 'byebug', '~> 3.5'
35
+ spec.add_development_dependency 'with_model', '~> 2.1'
30
36
 
31
- spec.add_dependency 'rails', ['>= 4.1', '< 5.1']
37
+ spec.add_dependency 'activemodel', ['>= 4.2', '<= 5.2']
38
+ spec.add_dependency 'activerecord', ['>= 4.2', '<= 5.2']
39
+ spec.add_dependency 'activesupport', ['>= 4.2', '<= 5.2']
32
40
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: setting_accessors
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Exner
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-18 00:00:00.000000000 Z
11
+ date: 2018-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: appraisal
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.2'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.2'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +38,20 @@ dependencies:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
40
  version: '1.6'
41
+ - !ruby/object:Gem::Dependency
42
+ name: generator_spec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0.9'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0.9'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: rake
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -39,169 +67,171 @@ dependencies:
39
67
  - !ruby/object:Gem::Version
40
68
  version: '10.4'
41
69
  - !ruby/object:Gem::Dependency
42
- name: sqlite3
70
+ name: rspec
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
73
  - - "~>"
46
74
  - !ruby/object:Gem::Version
47
- version: '1.3'
75
+ version: '3.8'
48
76
  type: :development
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
- version: '1.3'
82
+ version: '3.8'
55
83
  - !ruby/object:Gem::Dependency
56
- name: shoulda
84
+ name: rubocop
57
85
  requirement: !ruby/object:Gem::Requirement
58
86
  requirements:
59
87
  - - "~>"
60
88
  - !ruby/object:Gem::Version
61
- version: '3.5'
89
+ version: '0.60'
62
90
  type: :development
63
91
  prerelease: false
64
92
  version_requirements: !ruby/object:Gem::Requirement
65
93
  requirements:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
- version: '3.5'
96
+ version: '0.60'
69
97
  - !ruby/object:Gem::Dependency
70
- name: minitest
98
+ name: sqlite3
71
99
  requirement: !ruby/object:Gem::Requirement
72
100
  requirements:
73
101
  - - "~>"
74
102
  - !ruby/object:Gem::Version
75
- version: '5.5'
103
+ version: '1.3'
76
104
  type: :development
77
105
  prerelease: false
78
106
  version_requirements: !ruby/object:Gem::Requirement
79
107
  requirements:
80
108
  - - "~>"
81
109
  - !ruby/object:Gem::Version
82
- version: '5.5'
110
+ version: '1.3'
83
111
  - !ruby/object:Gem::Dependency
84
- name: byebug
112
+ name: with_model
85
113
  requirement: !ruby/object:Gem::Requirement
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: '3.5'
117
+ version: '2.1'
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: '3.5'
124
+ version: '2.1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: activemodel
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '4.2'
132
+ - - "<="
133
+ - !ruby/object:Gem::Version
134
+ version: '5.2'
135
+ type: :runtime
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: '4.2'
142
+ - - "<="
143
+ - !ruby/object:Gem::Version
144
+ version: '5.2'
145
+ - !ruby/object:Gem::Dependency
146
+ name: activerecord
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '4.2'
152
+ - - "<="
153
+ - !ruby/object:Gem::Version
154
+ version: '5.2'
155
+ type: :runtime
156
+ prerelease: false
157
+ version_requirements: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - ">="
160
+ - !ruby/object:Gem::Version
161
+ version: '4.2'
162
+ - - "<="
163
+ - !ruby/object:Gem::Version
164
+ version: '5.2'
97
165
  - !ruby/object:Gem::Dependency
98
- name: rails
166
+ name: activesupport
99
167
  requirement: !ruby/object:Gem::Requirement
100
168
  requirements:
101
169
  - - ">="
102
170
  - !ruby/object:Gem::Version
103
- version: '4.1'
104
- - - "<"
171
+ version: '4.2'
172
+ - - "<="
105
173
  - !ruby/object:Gem::Version
106
- version: '5.1'
174
+ version: '5.2'
107
175
  type: :runtime
108
176
  prerelease: false
109
177
  version_requirements: !ruby/object:Gem::Requirement
110
178
  requirements:
111
179
  - - ">="
112
180
  - !ruby/object:Gem::Version
113
- version: '4.1'
114
- - - "<"
181
+ version: '4.2'
182
+ - - "<="
115
183
  - !ruby/object:Gem::Version
116
- version: '5.1'
184
+ version: '5.2'
117
185
  description: |-
118
186
  Adds a global key-value-store to Rails applications and allows adding typed columns
119
- to model classes without having to change the database layout.
187
+ to model classes without having to change the database layout.
120
188
  email:
121
189
  - stex@sterex.de
122
190
  executables: []
123
191
  extensions: []
124
192
  extra_rdoc_files: []
125
193
  files:
126
- - ".codeclimate.yml"
194
+ - ".editorconfig"
127
195
  - ".gitignore"
196
+ - ".rspec"
197
+ - ".rubocop.yml"
128
198
  - ".travis.yml"
199
+ - Appraisals
129
200
  - CHANGELOG.md
130
201
  - Gemfile
131
202
  - LICENSE.txt
132
203
  - README.md
133
204
  - Rakefile
205
+ - bin/console
206
+ - bin/setup
207
+ - gemfiles/rails_4.1.gemfile
208
+ - gemfiles/rails_4.2.gemfile
209
+ - gemfiles/rails_4.2.gemfile.lock
210
+ - gemfiles/rails_5.0.gemfile
211
+ - gemfiles/rails_5.0.gemfile.lock
212
+ - gemfiles/rails_5.1.gemfile
213
+ - gemfiles/rails_5.1.gemfile.lock
214
+ - gemfiles/rails_5.2.gemfile
215
+ - gemfiles/rails_5.2.gemfile.lock
134
216
  - lib/generators/setting_accessors/install_generator.rb
135
217
  - lib/generators/setting_accessors/templates/migration.rb.erb
136
218
  - lib/generators/setting_accessors/templates/model.rb.erb
137
219
  - lib/generators/setting_accessors/templates/settings.yml
138
220
  - lib/setting_accessors.rb
139
- - lib/setting_accessors/accessor.rb
140
- - lib/setting_accessors/converter.rb
221
+ - lib/setting_accessors/accessor_generator.rb
222
+ - lib/setting_accessors/converters/base.rb
223
+ - lib/setting_accessors/converters/boolean_converter.rb
224
+ - lib/setting_accessors/converters/integer_converter.rb
225
+ - lib/setting_accessors/converters/polymorphic_converter.rb
226
+ - lib/setting_accessors/converters/string_converter.rb
227
+ - lib/setting_accessors/helpers.rb
141
228
  - lib/setting_accessors/integration.rb
142
- - lib/setting_accessors/integration_validator.rb
143
229
  - lib/setting_accessors/internal.rb
144
230
  - lib/setting_accessors/setting_scaffold.rb
145
- - lib/setting_accessors/validator.rb
231
+ - lib/setting_accessors/setting_set.rb
146
232
  - lib/setting_accessors/version.rb
147
233
  - lib/tasks/setting_accessors_tasks.rake
148
234
  - setting_accessors.gemspec
149
- - test/dummy/README.rdoc
150
- - test/dummy/Rakefile
151
- - test/dummy/app/assets/images/.keep
152
- - test/dummy/app/assets/javascripts/application.js
153
- - test/dummy/app/assets/stylesheets/application.css
154
- - test/dummy/app/controllers/application_controller.rb
155
- - test/dummy/app/controllers/concerns/.keep
156
- - test/dummy/app/helpers/application_helper.rb
157
- - test/dummy/app/mailers/.keep
158
- - test/dummy/app/models/.keep
159
- - test/dummy/app/models/concerns/.keep
160
- - test/dummy/app/models/post.rb
161
- - test/dummy/app/models/setting.rb
162
- - test/dummy/app/models/user.rb
163
- - test/dummy/app/views/layouts/application.html.erb
164
- - test/dummy/bin/bundle
165
- - test/dummy/bin/rails
166
- - test/dummy/bin/rake
167
- - test/dummy/config.ru
168
- - test/dummy/config/application.rb
169
- - test/dummy/config/boot.rb
170
- - test/dummy/config/database.yml
171
- - test/dummy/config/environment.rb
172
- - test/dummy/config/environments/development.rb
173
- - test/dummy/config/environments/production.rb
174
- - test/dummy/config/environments/test.rb
175
- - test/dummy/config/initializers/backtrace_silencers.rb
176
- - test/dummy/config/initializers/cookies_serializer.rb
177
- - test/dummy/config/initializers/filter_parameter_logging.rb
178
- - test/dummy/config/initializers/inflections.rb
179
- - test/dummy/config/initializers/mime_types.rb
180
- - test/dummy/config/initializers/session_store.rb
181
- - test/dummy/config/initializers/setting_accessors.rb
182
- - test/dummy/config/initializers/wrap_parameters.rb
183
- - test/dummy/config/locales/en.yml
184
- - test/dummy/config/routes.rb
185
- - test/dummy/config/secrets.yml
186
- - test/dummy/config/settings.yml
187
- - test/dummy/db/migrate/20150102112106_create_users.rb
188
- - test/dummy/db/migrate/20150102115329_create_settings.rb
189
- - test/dummy/db/migrate/20150723114600_create_posts.rb
190
- - test/dummy/db/schema.rb
191
- - test/dummy/db/test.sqlite3
192
- - test/dummy/lib/assets/.keep
193
- - test/dummy/log/.keep
194
- - test/dummy/public/404.html
195
- - test/dummy/public/422.html
196
- - test/dummy/public/500.html
197
- - test/dummy/public/favicon.ico
198
- - test/dummy/test/fixtures/posts.yml
199
- - test/dummy/test/models/post_test.rb
200
- - test/dummy/test/models/setting_test.rb
201
- - test/dummy/test/models/user_test.rb
202
- - test/generators/install_generator_test.rb
203
- - test/setting_accessors_test.rb
204
- - test/test_helper.rb
205
235
  homepage: https://www.github.com/stex/setting_accessors
206
236
  licenses:
207
237
  - MIT
@@ -214,7 +244,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
214
244
  requirements:
215
245
  - - ">="
216
246
  - !ruby/object:Gem::Version
217
- version: 2.2.2
247
+ version: '2.3'
218
248
  - - "<"
219
249
  - !ruby/object:Gem::Version
220
250
  version: '3'
@@ -225,64 +255,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
225
255
  version: '0'
226
256
  requirements: []
227
257
  rubyforge_project:
228
- rubygems_version: 2.6.14
258
+ rubygems_version: 2.7.3
229
259
  signing_key:
230
260
  specification_version: 4
231
261
  summary: A global key-value-store and virtual model columns
232
- test_files:
233
- - test/dummy/README.rdoc
234
- - test/dummy/Rakefile
235
- - test/dummy/app/assets/images/.keep
236
- - test/dummy/app/assets/javascripts/application.js
237
- - test/dummy/app/assets/stylesheets/application.css
238
- - test/dummy/app/controllers/application_controller.rb
239
- - test/dummy/app/controllers/concerns/.keep
240
- - test/dummy/app/helpers/application_helper.rb
241
- - test/dummy/app/mailers/.keep
242
- - test/dummy/app/models/.keep
243
- - test/dummy/app/models/concerns/.keep
244
- - test/dummy/app/models/post.rb
245
- - test/dummy/app/models/setting.rb
246
- - test/dummy/app/models/user.rb
247
- - test/dummy/app/views/layouts/application.html.erb
248
- - test/dummy/bin/bundle
249
- - test/dummy/bin/rails
250
- - test/dummy/bin/rake
251
- - test/dummy/config.ru
252
- - test/dummy/config/application.rb
253
- - test/dummy/config/boot.rb
254
- - test/dummy/config/database.yml
255
- - test/dummy/config/environment.rb
256
- - test/dummy/config/environments/development.rb
257
- - test/dummy/config/environments/production.rb
258
- - test/dummy/config/environments/test.rb
259
- - test/dummy/config/initializers/backtrace_silencers.rb
260
- - test/dummy/config/initializers/cookies_serializer.rb
261
- - test/dummy/config/initializers/filter_parameter_logging.rb
262
- - test/dummy/config/initializers/inflections.rb
263
- - test/dummy/config/initializers/mime_types.rb
264
- - test/dummy/config/initializers/session_store.rb
265
- - test/dummy/config/initializers/setting_accessors.rb
266
- - test/dummy/config/initializers/wrap_parameters.rb
267
- - test/dummy/config/locales/en.yml
268
- - test/dummy/config/routes.rb
269
- - test/dummy/config/secrets.yml
270
- - test/dummy/config/settings.yml
271
- - test/dummy/db/migrate/20150102112106_create_users.rb
272
- - test/dummy/db/migrate/20150102115329_create_settings.rb
273
- - test/dummy/db/migrate/20150723114600_create_posts.rb
274
- - test/dummy/db/schema.rb
275
- - test/dummy/db/test.sqlite3
276
- - test/dummy/lib/assets/.keep
277
- - test/dummy/log/.keep
278
- - test/dummy/public/404.html
279
- - test/dummy/public/422.html
280
- - test/dummy/public/500.html
281
- - test/dummy/public/favicon.ico
282
- - test/dummy/test/fixtures/posts.yml
283
- - test/dummy/test/models/post_test.rb
284
- - test/dummy/test/models/setting_test.rb
285
- - test/dummy/test/models/user_test.rb
286
- - test/generators/install_generator_test.rb
287
- - test/setting_accessors_test.rb
288
- - test/test_helper.rb
262
+ test_files: []