setler 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,320 @@
1
+ GIT
2
+ remote: https://github.com/rails/rails
3
+ revision: f73b7f173b3004ec9e920b99dafaaf029887847a
4
+ specs:
5
+ actioncable (8.2.0.alpha)
6
+ actionpack (= 8.2.0.alpha)
7
+ activesupport (= 8.2.0.alpha)
8
+ nio4r (~> 2.0)
9
+ websocket-driver (>= 0.6.1)
10
+ zeitwerk (~> 2.6)
11
+ actionmailbox (8.2.0.alpha)
12
+ actionpack (= 8.2.0.alpha)
13
+ activejob (= 8.2.0.alpha)
14
+ activerecord (= 8.2.0.alpha)
15
+ activestorage (= 8.2.0.alpha)
16
+ activesupport (= 8.2.0.alpha)
17
+ mail (>= 2.8.0)
18
+ actionmailer (8.2.0.alpha)
19
+ actionpack (= 8.2.0.alpha)
20
+ actionview (= 8.2.0.alpha)
21
+ activejob (= 8.2.0.alpha)
22
+ activesupport (= 8.2.0.alpha)
23
+ mail (>= 2.8.0)
24
+ rails-dom-testing (~> 2.2)
25
+ actionpack (8.2.0.alpha)
26
+ actionview (= 8.2.0.alpha)
27
+ activesupport (= 8.2.0.alpha)
28
+ nokogiri (>= 1.8.5)
29
+ rack (>= 2.2.4)
30
+ rack-session (>= 1.0.1)
31
+ rack-test (>= 0.6.3)
32
+ rails-dom-testing (~> 2.2)
33
+ rails-html-sanitizer (~> 1.6)
34
+ useragent (~> 0.16)
35
+ actiontext (8.2.0.alpha)
36
+ action_text-trix (~> 2.1.15)
37
+ actionpack (= 8.2.0.alpha)
38
+ activerecord (= 8.2.0.alpha)
39
+ activestorage (= 8.2.0.alpha)
40
+ activesupport (= 8.2.0.alpha)
41
+ globalid (>= 0.6.0)
42
+ nokogiri (>= 1.8.5)
43
+ actionview (8.2.0.alpha)
44
+ activesupport (= 8.2.0.alpha)
45
+ builder (~> 3.1)
46
+ erubi (~> 1.11)
47
+ rails-dom-testing (~> 2.2)
48
+ rails-html-sanitizer (~> 1.6)
49
+ activejob (8.2.0.alpha)
50
+ activesupport (= 8.2.0.alpha)
51
+ globalid (>= 0.3.6)
52
+ activemodel (8.2.0.alpha)
53
+ activesupport (= 8.2.0.alpha)
54
+ activerecord (8.2.0.alpha)
55
+ activemodel (= 8.2.0.alpha)
56
+ activesupport (= 8.2.0.alpha)
57
+ timeout (>= 0.4.0)
58
+ activestorage (8.2.0.alpha)
59
+ actionpack (= 8.2.0.alpha)
60
+ activejob (= 8.2.0.alpha)
61
+ activerecord (= 8.2.0.alpha)
62
+ activesupport (= 8.2.0.alpha)
63
+ marcel (~> 1.0)
64
+ activesupport (8.2.0.alpha)
65
+ base64
66
+ bigdecimal
67
+ concurrent-ruby (~> 1.0, >= 1.3.1)
68
+ connection_pool (>= 2.2.5)
69
+ drb
70
+ i18n (>= 1.6, < 2)
71
+ json
72
+ logger (>= 1.4.2)
73
+ minitest (>= 5.1)
74
+ securerandom (>= 0.3)
75
+ tzinfo (~> 2.0, >= 2.0.5)
76
+ uri (>= 0.13.1)
77
+ rails (8.2.0.alpha)
78
+ actioncable (= 8.2.0.alpha)
79
+ actionmailbox (= 8.2.0.alpha)
80
+ actionmailer (= 8.2.0.alpha)
81
+ actionpack (= 8.2.0.alpha)
82
+ actiontext (= 8.2.0.alpha)
83
+ actionview (= 8.2.0.alpha)
84
+ activejob (= 8.2.0.alpha)
85
+ activemodel (= 8.2.0.alpha)
86
+ activerecord (= 8.2.0.alpha)
87
+ activestorage (= 8.2.0.alpha)
88
+ activesupport (= 8.2.0.alpha)
89
+ bundler (>= 1.15.0)
90
+ railties (= 8.2.0.alpha)
91
+ railties (8.2.0.alpha)
92
+ actionpack (= 8.2.0.alpha)
93
+ activesupport (= 8.2.0.alpha)
94
+ irb (~> 1.13)
95
+ rackup (>= 1.0.0)
96
+ rake (>= 12.2)
97
+ thor (~> 1.0, >= 1.2.2)
98
+ tsort (>= 0.2)
99
+ zeitwerk (~> 2.6)
100
+
101
+ PATH
102
+ remote: ..
103
+ specs:
104
+ setler (0.0.15)
105
+ activerecord (>= 3.0.0)
106
+ rails (>= 3.0.0)
107
+
108
+ GEM
109
+ remote: https://rubygems.org/
110
+ specs:
111
+ action_text-trix (2.1.15)
112
+ railties
113
+ appraisal (2.5.0)
114
+ bundler
115
+ rake
116
+ thor (>= 0.14.0)
117
+ ast (2.4.3)
118
+ base64 (0.3.0)
119
+ bigdecimal (3.3.1)
120
+ brakeman (5.4.1)
121
+ builder (3.3.0)
122
+ concurrent-ruby (1.3.5)
123
+ connection_pool (2.5.4)
124
+ crass (1.0.6)
125
+ date (3.4.1)
126
+ docile (1.4.1)
127
+ drb (2.2.3)
128
+ erb (5.1.1)
129
+ erubi (1.13.1)
130
+ globalid (1.3.0)
131
+ activesupport (>= 6.1)
132
+ i18n (1.14.7)
133
+ concurrent-ruby (~> 1.0)
134
+ io-console (0.8.1)
135
+ irb (1.15.2)
136
+ pp (>= 0.6.0)
137
+ rdoc (>= 4.0.0)
138
+ reline (>= 0.4.2)
139
+ json (2.15.1)
140
+ language_server-protocol (3.17.0.5)
141
+ lint_roller (1.1.0)
142
+ logger (1.7.0)
143
+ loofah (2.24.1)
144
+ crass (~> 1.0.2)
145
+ nokogiri (>= 1.12.0)
146
+ mail (2.9.0)
147
+ logger
148
+ mini_mime (>= 0.1.1)
149
+ net-imap
150
+ net-pop
151
+ net-smtp
152
+ marcel (1.1.0)
153
+ mini_mime (1.1.5)
154
+ minitest (5.26.0)
155
+ net-imap (0.5.12)
156
+ date
157
+ net-protocol
158
+ net-pop (0.1.2)
159
+ net-protocol
160
+ net-protocol (0.2.2)
161
+ timeout
162
+ net-smtp (0.5.1)
163
+ net-protocol
164
+ nio4r (2.7.4)
165
+ nokogiri (1.18.10-aarch64-linux-gnu)
166
+ racc (~> 1.4)
167
+ nokogiri (1.18.10-aarch64-linux-musl)
168
+ racc (~> 1.4)
169
+ nokogiri (1.18.10-arm-linux-gnu)
170
+ racc (~> 1.4)
171
+ nokogiri (1.18.10-arm-linux-musl)
172
+ racc (~> 1.4)
173
+ nokogiri (1.18.10-arm64-darwin)
174
+ racc (~> 1.4)
175
+ nokogiri (1.18.10-x86_64-darwin)
176
+ racc (~> 1.4)
177
+ nokogiri (1.18.10-x86_64-linux-gnu)
178
+ racc (~> 1.4)
179
+ nokogiri (1.18.10-x86_64-linux-musl)
180
+ racc (~> 1.4)
181
+ panolint (0.1.6)
182
+ brakeman (>= 4.8, < 6.0)
183
+ rubocop (>= 0.83, < 2.0)
184
+ rubocop-performance (~> 1.5)
185
+ rubocop-rails (~> 2.5)
186
+ rubocop-rake (~> 0.5)
187
+ rubocop-rspec (~> 2.0)
188
+ parallel (1.27.0)
189
+ parser (3.3.10.0)
190
+ ast (~> 2.4.1)
191
+ racc
192
+ pp (0.6.3)
193
+ prettyprint
194
+ prettyprint (0.2.0)
195
+ prism (1.6.0)
196
+ psych (5.2.6)
197
+ date
198
+ stringio
199
+ racc (1.8.1)
200
+ rack (3.2.3)
201
+ rack-session (2.1.1)
202
+ base64 (>= 0.1.0)
203
+ rack (>= 3.0.0)
204
+ rack-test (2.2.0)
205
+ rack (>= 1.3)
206
+ rackup (2.2.1)
207
+ rack (>= 3)
208
+ rails-dom-testing (2.3.0)
209
+ activesupport (>= 5.0.0)
210
+ minitest
211
+ nokogiri (>= 1.6)
212
+ rails-html-sanitizer (1.6.2)
213
+ loofah (~> 2.21)
214
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
215
+ rainbow (3.1.1)
216
+ rake (13.3.0)
217
+ rdoc (6.15.0)
218
+ erb
219
+ psych (>= 4.0.0)
220
+ tsort
221
+ regexp_parser (2.11.3)
222
+ reline (0.6.2)
223
+ io-console (~> 0.5)
224
+ rubocop (1.81.6)
225
+ json (~> 2.3)
226
+ language_server-protocol (~> 3.17.0.2)
227
+ lint_roller (~> 1.1.0)
228
+ parallel (~> 1.10)
229
+ parser (>= 3.3.0.2)
230
+ rainbow (>= 2.2.2, < 4.0)
231
+ regexp_parser (>= 2.9.3, < 3.0)
232
+ rubocop-ast (>= 1.47.1, < 2.0)
233
+ ruby-progressbar (~> 1.7)
234
+ unicode-display_width (>= 2.4.0, < 4.0)
235
+ rubocop-ast (1.47.1)
236
+ parser (>= 3.3.7.2)
237
+ prism (~> 1.4)
238
+ rubocop-capybara (2.22.1)
239
+ lint_roller (~> 1.1)
240
+ rubocop (~> 1.72, >= 1.72.1)
241
+ rubocop-factory_bot (2.27.1)
242
+ lint_roller (~> 1.1)
243
+ rubocop (~> 1.72, >= 1.72.1)
244
+ rubocop-performance (1.26.1)
245
+ lint_roller (~> 1.1)
246
+ rubocop (>= 1.75.0, < 2.0)
247
+ rubocop-ast (>= 1.47.1, < 2.0)
248
+ rubocop-rails (2.33.4)
249
+ activesupport (>= 4.2.0)
250
+ lint_roller (~> 1.1)
251
+ rack (>= 1.1)
252
+ rubocop (>= 1.75.0, < 2.0)
253
+ rubocop-ast (>= 1.44.0, < 2.0)
254
+ rubocop-rake (0.7.1)
255
+ lint_roller (~> 1.1)
256
+ rubocop (>= 1.72.1)
257
+ rubocop-rspec (2.31.0)
258
+ rubocop (~> 1.40)
259
+ rubocop-capybara (~> 2.17)
260
+ rubocop-factory_bot (~> 2.22)
261
+ rubocop-rspec_rails (~> 2.28)
262
+ rubocop-rspec_rails (2.29.1)
263
+ rubocop (~> 1.61)
264
+ ruby-progressbar (1.13.0)
265
+ securerandom (0.4.1)
266
+ simplecov (0.22.0)
267
+ docile (~> 1.1)
268
+ simplecov-html (~> 0.11)
269
+ simplecov_json_formatter (~> 0.1)
270
+ simplecov-html (0.13.2)
271
+ simplecov_json_formatter (0.1.4)
272
+ sqlite3 (2.7.4-aarch64-linux-gnu)
273
+ sqlite3 (2.7.4-aarch64-linux-musl)
274
+ sqlite3 (2.7.4-arm-linux-gnu)
275
+ sqlite3 (2.7.4-arm-linux-musl)
276
+ sqlite3 (2.7.4-arm64-darwin)
277
+ sqlite3 (2.7.4-x86_64-darwin)
278
+ sqlite3 (2.7.4-x86_64-linux-gnu)
279
+ sqlite3 (2.7.4-x86_64-linux-musl)
280
+ stringio (3.1.7)
281
+ thor (1.4.0)
282
+ timeout (0.4.3)
283
+ tsort (0.2.0)
284
+ tzinfo (2.0.6)
285
+ concurrent-ruby (~> 1.0)
286
+ unicode-display_width (3.2.0)
287
+ unicode-emoji (~> 4.1)
288
+ unicode-emoji (4.1.0)
289
+ uri (1.0.4)
290
+ useragent (0.16.11)
291
+ websocket-driver (0.8.0)
292
+ base64
293
+ websocket-extensions (>= 0.1.0)
294
+ websocket-extensions (0.1.5)
295
+ zeitwerk (2.7.3)
296
+
297
+ PLATFORMS
298
+ aarch64-linux-gnu
299
+ aarch64-linux-musl
300
+ arm-linux-gnu
301
+ arm-linux-musl
302
+ arm64-darwin
303
+ x86_64-darwin
304
+ x86_64-linux-gnu
305
+ x86_64-linux-musl
306
+
307
+ DEPENDENCIES
308
+ appraisal
309
+ minitest
310
+ panolint
311
+ rails!
312
+ rake
313
+ rubocop (~> 1.39)
314
+ rubocop-rake
315
+ setler!
316
+ simplecov
317
+ sqlite3
318
+
319
+ BUNDLED WITH
320
+ 2.6.9
@@ -28,9 +28,9 @@ module Setler
28
28
  super(method, *args, &block)
29
29
  else
30
30
  method_name = method.to_s
31
- if method_name.ends_with?("=")
31
+ if method_name.end_with?("=")
32
32
  self[method_name[0..-2]] = args.first
33
- elsif method_name.ends_with?("?")
33
+ elsif method_name.end_with?("?")
34
34
  self[method_name[0..-2]].present?
35
35
  else
36
36
  self[method_name]
@@ -65,7 +65,7 @@ module Setler
65
65
 
66
66
  def self.destroy(var_name)
67
67
  var_name = var_name.to_s
68
- if setting = self.find_by_var(var_name)
68
+ if (setting = self.find_by_var(var_name))
69
69
  setting.destroy
70
70
  true
71
71
  else
@@ -1,3 +1,3 @@
1
1
  module Setler
2
- VERSION = "0.0.14"
2
+ VERSION = "0.0.15"
3
3
  end
data/setler.gemspec CHANGED
@@ -17,12 +17,28 @@ Gem::Specification.new do |s|
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ["lib"]
19
19
 
20
+ supported_ruby_requirements = [
21
+ Gem::Requirement.new(["~> 2.6", ">= 2.6.10"]),
22
+ Gem::Requirement.new(["~> 2.7", ">= 2.7.8"]),
23
+ Gem::Requirement.new("~> 3.0"),
24
+ Gem::Requirement.new("~> 3.1"),
25
+ Gem::Requirement.new("~> 3.2"),
26
+ Gem::Requirement.new("~> 3.3"),
27
+ Gem::Requirement.new("~> 3.4"),
28
+ Gem::Requirement.new([">= 3.5.0.pre", "< 3.6"])
29
+ ].freeze
30
+
31
+ s.metadata['supported_ruby_requirements'] = supported_ruby_requirements.map(&:to_s).join(', ')
32
+ s.required_ruby_version = Gem::Requirement.new([">= 2.6.10"])
33
+
20
34
  s.add_dependency('activerecord', '>=3.0.0')
21
35
  s.add_dependency('rails', '>=3.0.0')
22
- s.add_dependency('sprockets', '3.7.2') # 10/16/2019: LOCKED DOWN
23
36
 
24
37
  s.add_development_dependency('rake')
25
38
  s.add_development_dependency('minitest')
26
39
  s.add_development_dependency('simplecov')
27
40
  s.add_development_dependency('appraisal')
41
+ s.add_development_dependency('rubocop', '~> 1.39')
42
+ s.add_development_dependency('rubocop-rake')
43
+ s.add_development_dependency('panolint')
28
44
  end
@@ -179,7 +179,7 @@ class ::SettingsTest < Minitest::Test
179
179
  ::Preferences.create var: 'test', value: 'preferences foo'
180
180
  ::Preferences.create var: 'test2', value: 'preferences bar'
181
181
 
182
- refute_match ::Settings.all_settings, ::Preferences.all_settings
182
+ refute_equal ::Settings.all_settings, ::Preferences.all_settings
183
183
 
184
184
  assert_equal 'foo', ::Settings[:test]
185
185
  assert_equal 'bar', ::Settings[:test2]
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: setler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Kelly
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2021-11-21 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activerecord
@@ -39,21 +38,21 @@ dependencies:
39
38
  - !ruby/object:Gem::Version
40
39
  version: 3.0.0
41
40
  - !ruby/object:Gem::Dependency
42
- name: sprockets
41
+ name: rake
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - '='
44
+ - - ">="
46
45
  - !ruby/object:Gem::Version
47
- version: 3.7.2
48
- type: :runtime
46
+ version: '0'
47
+ type: :development
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
- - - '='
51
+ - - ">="
53
52
  - !ruby/object:Gem::Version
54
- version: 3.7.2
53
+ version: '0'
55
54
  - !ruby/object:Gem::Dependency
56
- name: rake
55
+ name: minitest
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
@@ -67,7 +66,7 @@ dependencies:
67
66
  - !ruby/object:Gem::Version
68
67
  version: '0'
69
68
  - !ruby/object:Gem::Dependency
70
- name: minitest
69
+ name: simplecov
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - ">="
@@ -81,7 +80,7 @@ dependencies:
81
80
  - !ruby/object:Gem::Version
82
81
  version: '0'
83
82
  - !ruby/object:Gem::Dependency
84
- name: simplecov
83
+ name: appraisal
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - ">="
@@ -95,7 +94,35 @@ dependencies:
95
94
  - !ruby/object:Gem::Version
96
95
  version: '0'
97
96
  - !ruby/object:Gem::Dependency
98
- name: appraisal
97
+ name: rubocop
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.39'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '1.39'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rubocop-rake
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: panolint
99
126
  requirement: !ruby/object:Gem::Requirement
100
127
  requirements:
101
128
  - - ">="
@@ -119,22 +146,35 @@ executables: []
119
146
  extensions: []
120
147
  extra_rdoc_files: []
121
148
  files:
149
+ - ".devcontainer/devcontainer.json"
150
+ - ".github/dependabot.yml"
151
+ - ".github/workflows/lint.yml"
152
+ - ".github/workflows/test.yml"
122
153
  - ".gitignore"
154
+ - ".markdownlint.json"
155
+ - ".rubocop.yml"
123
156
  - ".ruby-gemset"
124
157
  - ".ruby-version"
125
- - ".travis.yml"
158
+ - ".yamllint.yml"
159
+ - AGENTS.md
126
160
  - Appraisals
127
161
  - Gemfile
128
162
  - MIT-LICENSE
129
- - README.rdoc
163
+ - README.md
130
164
  - Rakefile
131
165
  - contributors.txt
132
166
  - gemfiles/rails_4.gemfile
133
167
  - gemfiles/rails_4.gemfile.lock
134
168
  - gemfiles/rails_5.gemfile
135
169
  - gemfiles/rails_5.gemfile.lock
136
- - gemfiles/rails_6_edge.gemfile
137
- - gemfiles/rails_6_edge.gemfile.lock
170
+ - gemfiles/rails_6.gemfile
171
+ - gemfiles/rails_6.gemfile.lock
172
+ - gemfiles/rails_7.gemfile
173
+ - gemfiles/rails_7.gemfile.lock
174
+ - gemfiles/rails_8.gemfile
175
+ - gemfiles/rails_8.gemfile.lock
176
+ - gemfiles/rails_edge.gemfile
177
+ - gemfiles/rails_edge.gemfile.lock
138
178
  - lib/generators/setler/setler_generator.rb
139
179
  - lib/generators/setler/templates/migration.rb
140
180
  - lib/generators/setler/templates/model.rb
@@ -150,8 +190,9 @@ files:
150
190
  homepage: https://github.com/ckdake/setler
151
191
  licenses:
152
192
  - MIT
153
- metadata: {}
154
- post_install_message:
193
+ metadata:
194
+ supported_ruby_requirements: "~> 2.6, >= 2.6.10, ~> 2.7, >= 2.7.8, ~> 3.0, ~> 3.1,
195
+ ~> 3.2, ~> 3.3, ~> 3.4, >= 3.5.0.pre, < 3.6"
155
196
  rdoc_options: []
156
197
  require_paths:
157
198
  - lib
@@ -159,17 +200,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
159
200
  requirements:
160
201
  - - ">="
161
202
  - !ruby/object:Gem::Version
162
- version: '0'
203
+ version: 2.6.10
163
204
  required_rubygems_version: !ruby/object:Gem::Requirement
164
205
  requirements:
165
206
  - - ">="
166
207
  - !ruby/object:Gem::Version
167
208
  version: '0'
168
209
  requirements: []
169
- rubygems_version: 3.2.22
170
- signing_key:
210
+ rubygems_version: 3.6.9
171
211
  specification_version: 4
172
212
  summary: Settler lets you use the 'Feature Flags' pettern or add settings to models.
173
- test_files:
174
- - test/settings_test.rb
175
- - test/test_helper.rb
213
+ test_files: []
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.3.8
4
- - 2.4.7
5
- - 2.5.7
6
- - 2.6.5
7
- before_install: "gem install bundler:1.17.2"
8
- cache: bundler
9
- script: "bundle exec rake test"
10
- notifications:
11
- email: false
12
- gemfile:
13
- - gemfiles/rails_4.gemfile
14
- - gemfiles/rails_5.gemfile
15
- - gemfiles/rails_6_edge.gemfile
16
- matrix:
17
- fast_finish: true
18
- exclude:
19
- - rvm: 2.3.8
20
- gemfile: gemfiles/rails_6_edge.gemfile
21
- - rvm: 2.4.7
22
- gemfile: gemfiles/rails_6_edge.gemfile
data/README.rdoc DELETED
@@ -1,85 +0,0 @@
1
- = Setler
2
-
3
- Setler is a Gem that lets one easily implement the "Feature Flags" pattern, or add settings to individual models. This is a cleanroom implementation of what the 'rails-settings' gem does. It's been forked all over the place, and my favorite version of it doesn't have any tests and doesn't work with settings associated with models.
4
-
5
- {<img src="https://travis-ci.org/ckdake/setler.svg?branch=master" alt="Build Status" />}[https://travis-ci.org/ckdake/setler]
6
- {<img src="https://badge.fury.io/rb/setler.svg" alt="Gem Version" />}[http://badge.fury.io/rb/setler]
7
-
8
- While Setler enables you to create both app-level and model-level settings, they are two separate things and don't mix. For example, if you create defaults for the app, they won't appear as defaults for individual models.
9
-
10
- == Setup
11
-
12
- Install the gem by adding this to your Gemfile:
13
-
14
- gem "setler"
15
-
16
- Generate the model:
17
-
18
- rails g setler <model_name>
19
-
20
- Run the migration:
21
-
22
- rake db:migrate
23
-
24
- If you are using the `protected_attributes` gem you must add `attr_protected` to the top of you setler model.
25
-
26
- == Usage
27
-
28
- Create/Update settings:
29
-
30
- # Method calls and []= are synonymous
31
- Featureflags.bacon_dispenser_enabled = true
32
- Settings[:allowed_meats] = ['bacon', 'crunchy bacon']
33
-
34
- Read settings:
35
-
36
- Featureflags.bacon_dispenser_enabled # true
37
- Settings[:allowed_meats].include?('bacon') # true
38
-
39
- Destroy them:
40
-
41
- Featureflags.destroy :bacon_dispenser_enabled
42
- Settings.destroy :allowed_meats
43
-
44
- List all settings:
45
-
46
- Featureflags.all_settings
47
- Settings.all_settings
48
-
49
- Set defaults in an initializer with something like:
50
-
51
- Featureflags.defaults[:bacon_dispenser_enabled] = false
52
- Settings.defaults[:allowed_meats] = ['itsnotbacon']
53
-
54
- To revert to the default after changing a setting, destroy it.
55
- Note: Updating the setting to nil or false no longer makes it the default setting (> 0.0.6), but changes the setting to nil or false.
56
-
57
- Add them to any ActiveRecord object:
58
-
59
- class User < ActiveRecord::Base
60
- has_setler :settings
61
- end
62
-
63
- Then you get:
64
-
65
- user = User.first
66
- user.settings.favorite_meat = :bacon
67
- user.settings.favorite_meat # :bacon
68
- user.settings.all # { "favorite_meat" => :bacon }
69
-
70
- TODO: And look em up:
71
-
72
- User.with_settings_for('favorite_meat') # => scope of users with the favorite_meat setting
73
-
74
- == Gem Development
75
-
76
- Getting started is pretty straightforward:
77
-
78
- 1. Check out the code: `git clone git://github.com/ckdake/setler.git`
79
- 2. Bundle install: `bundle install`
80
- 3. Run: `appraisal install` to generate the appraisal's gemfiles.
81
- 4. Run the tests for all supported releases in Appraisals file and make sure they all pass and code coverage is still the same: `appraisal rake test`
82
-
83
- If you'd like to contribute code, make your changes and submit a pull request that includes appropriate tests
84
-
85
- For building the gem: `rake build` and to release a gem to github and Rubygems: `rake release`