setler 0.0.13 → 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.
- checksums.yaml +5 -13
- data/.devcontainer/devcontainer.json +35 -0
- data/.github/dependabot.yml +20 -0
- data/.github/workflows/lint.yml +24 -0
- data/.github/workflows/test.yml +92 -0
- data/.markdownlint.json +7 -0
- data/.rubocop.yml +15 -0
- data/.ruby-version +1 -1
- data/.yamllint.yml +11 -0
- data/AGENTS.md +46 -0
- data/Appraisals +32 -0
- data/Gemfile +1 -1
- data/README.md +160 -0
- data/Rakefile +19 -2
- data/contributors.txt +3 -0
- data/gemfiles/rails_4.gemfile +8 -0
- data/gemfiles/rails_4.gemfile.lock +195 -0
- data/gemfiles/rails_5.gemfile +9 -0
- data/gemfiles/rails_5.gemfile.lock +218 -0
- data/gemfiles/rails_6.gemfile +10 -0
- data/gemfiles/rails_6.gemfile.lock +266 -0
- data/gemfiles/rails_7.gemfile +8 -0
- data/gemfiles/rails_7.gemfile.lock +311 -0
- data/gemfiles/rails_8.gemfile +8 -0
- data/gemfiles/rails_8.gemfile.lock +315 -0
- data/gemfiles/rails_edge.gemfile +8 -0
- data/gemfiles/rails_edge.gemfile.lock +320 -0
- data/lib/generators/setler/templates/migration.rb +1 -0
- data/lib/setler/settings.rb +16 -8
- data/lib/setler/version.rb +1 -1
- data/setler.gemspec +20 -3
- data/test/settings_test.rb +15 -3
- data/test/test_helper.rb +7 -2
- metadata +106 -33
- data/.travis.yml +0 -8
- data/README.rdoc +0 -81
metadata
CHANGED
|
@@ -1,83 +1,138 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: setler
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
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:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: activerecord
|
|
15
14
|
requirement: !ruby/object:Gem::Requirement
|
|
16
15
|
requirements:
|
|
17
|
-
- -
|
|
16
|
+
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
18
|
version: 3.0.0
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
|
-
- -
|
|
23
|
+
- - ">="
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
25
|
version: 3.0.0
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: rails
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
|
-
- -
|
|
30
|
+
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
32
|
version: 3.0.0
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
|
-
- -
|
|
37
|
+
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
39
|
version: 3.0.0
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name:
|
|
41
|
+
name: rake
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
44
43
|
requirements:
|
|
45
|
-
- -
|
|
44
|
+
- - ">="
|
|
46
45
|
- !ruby/object:Gem::Version
|
|
47
46
|
version: '0'
|
|
48
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
53
|
version: '0'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
55
|
+
name: minitest
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
|
-
- -
|
|
58
|
+
- - ">="
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
60
|
version: '0'
|
|
62
61
|
type: :development
|
|
63
62
|
prerelease: false
|
|
64
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
64
|
requirements:
|
|
66
|
-
- -
|
|
65
|
+
- - ">="
|
|
67
66
|
- !ruby/object:Gem::Version
|
|
68
67
|
version: '0'
|
|
69
68
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
69
|
+
name: simplecov
|
|
71
70
|
requirement: !ruby/object:Gem::Requirement
|
|
72
71
|
requirements:
|
|
73
|
-
- -
|
|
72
|
+
- - ">="
|
|
74
73
|
- !ruby/object:Gem::Version
|
|
75
74
|
version: '0'
|
|
76
75
|
type: :development
|
|
77
76
|
prerelease: false
|
|
78
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
78
|
requirements:
|
|
80
|
-
- -
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: appraisal
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
type: :development
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
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
|
|
126
|
+
requirement: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - ">="
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0'
|
|
131
|
+
type: :development
|
|
132
|
+
prerelease: false
|
|
133
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
134
|
+
requirements:
|
|
135
|
+
- - ">="
|
|
81
136
|
- !ruby/object:Gem::Version
|
|
82
137
|
version: '0'
|
|
83
138
|
description: Setler is a Gem that lets one easily implement the "Feature Flags" pattern,
|
|
@@ -91,15 +146,35 @@ executables: []
|
|
|
91
146
|
extensions: []
|
|
92
147
|
extra_rdoc_files: []
|
|
93
148
|
files:
|
|
94
|
-
- .
|
|
95
|
-
- .
|
|
96
|
-
- .
|
|
97
|
-
- .
|
|
149
|
+
- ".devcontainer/devcontainer.json"
|
|
150
|
+
- ".github/dependabot.yml"
|
|
151
|
+
- ".github/workflows/lint.yml"
|
|
152
|
+
- ".github/workflows/test.yml"
|
|
153
|
+
- ".gitignore"
|
|
154
|
+
- ".markdownlint.json"
|
|
155
|
+
- ".rubocop.yml"
|
|
156
|
+
- ".ruby-gemset"
|
|
157
|
+
- ".ruby-version"
|
|
158
|
+
- ".yamllint.yml"
|
|
159
|
+
- AGENTS.md
|
|
160
|
+
- Appraisals
|
|
98
161
|
- Gemfile
|
|
99
162
|
- MIT-LICENSE
|
|
100
|
-
- README.
|
|
163
|
+
- README.md
|
|
101
164
|
- Rakefile
|
|
102
165
|
- contributors.txt
|
|
166
|
+
- gemfiles/rails_4.gemfile
|
|
167
|
+
- gemfiles/rails_4.gemfile.lock
|
|
168
|
+
- gemfiles/rails_5.gemfile
|
|
169
|
+
- gemfiles/rails_5.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
|
|
103
178
|
- lib/generators/setler/setler_generator.rb
|
|
104
179
|
- lib/generators/setler/templates/migration.rb
|
|
105
180
|
- lib/generators/setler/templates/model.rb
|
|
@@ -113,28 +188,26 @@ files:
|
|
|
113
188
|
- test/settings_test.rb
|
|
114
189
|
- test/test_helper.rb
|
|
115
190
|
homepage: https://github.com/ckdake/setler
|
|
116
|
-
licenses:
|
|
117
|
-
|
|
118
|
-
|
|
191
|
+
licenses:
|
|
192
|
+
- MIT
|
|
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"
|
|
119
196
|
rdoc_options: []
|
|
120
197
|
require_paths:
|
|
121
198
|
- lib
|
|
122
199
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
200
|
requirements:
|
|
124
|
-
- -
|
|
201
|
+
- - ">="
|
|
125
202
|
- !ruby/object:Gem::Version
|
|
126
|
-
version:
|
|
203
|
+
version: 2.6.10
|
|
127
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
205
|
requirements:
|
|
129
|
-
- -
|
|
206
|
+
- - ">="
|
|
130
207
|
- !ruby/object:Gem::Version
|
|
131
208
|
version: '0'
|
|
132
209
|
requirements: []
|
|
133
|
-
|
|
134
|
-
rubygems_version: 2.2.2
|
|
135
|
-
signing_key:
|
|
210
|
+
rubygems_version: 3.6.9
|
|
136
211
|
specification_version: 4
|
|
137
212
|
summary: Settler lets you use the 'Feature Flags' pettern or add settings to models.
|
|
138
|
-
test_files:
|
|
139
|
-
- test/settings_test.rb
|
|
140
|
-
- test/test_helper.rb
|
|
213
|
+
test_files: []
|
data/.travis.yml
DELETED
data/README.rdoc
DELETED
|
@@ -1,81 +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
|
-
|
|
7
|
-
== Setup
|
|
8
|
-
|
|
9
|
-
Install the gem by adding this to your Gemfile:
|
|
10
|
-
|
|
11
|
-
gem "setler"
|
|
12
|
-
|
|
13
|
-
Generate the model:
|
|
14
|
-
|
|
15
|
-
rails g setler <model_name>
|
|
16
|
-
|
|
17
|
-
Run the migration:
|
|
18
|
-
|
|
19
|
-
rake db:migrate
|
|
20
|
-
|
|
21
|
-
If you are using the `protected_attributes` gem you must add `attr_protected` to the top of you setler model.
|
|
22
|
-
|
|
23
|
-
== Usage
|
|
24
|
-
|
|
25
|
-
Create/Update settings:
|
|
26
|
-
|
|
27
|
-
# Method calls and []= are synonymous
|
|
28
|
-
Featureflags.bacon_dispenser_enabled = true
|
|
29
|
-
Settings[:allowed_meats] = ['bacon', 'crunchy bacon']
|
|
30
|
-
|
|
31
|
-
Read settings:
|
|
32
|
-
|
|
33
|
-
Featureflags.bacon_dispenser_enabled # true
|
|
34
|
-
Settings[:allowed_meats].include?('bacon') # true
|
|
35
|
-
|
|
36
|
-
Destroy them:
|
|
37
|
-
|
|
38
|
-
Featureflags.destroy :bacon_dispenser_enabled
|
|
39
|
-
Settings.destroy :allowed_meats
|
|
40
|
-
|
|
41
|
-
List all settings:
|
|
42
|
-
|
|
43
|
-
Featureflags.all_settings
|
|
44
|
-
Settings.all_settings
|
|
45
|
-
|
|
46
|
-
Set defaults in an initializer with something like:
|
|
47
|
-
|
|
48
|
-
Featureflags.defaults[:bacon_dispenser_enabled] = false
|
|
49
|
-
Settings.defaults[:allowed_meats] = ['itsnotbacon']
|
|
50
|
-
|
|
51
|
-
To revert to the default after changing a setting, destroy it.
|
|
52
|
-
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.
|
|
53
|
-
|
|
54
|
-
Add them to any ActiveRecord object:
|
|
55
|
-
|
|
56
|
-
class User < ActiveRecord::Base
|
|
57
|
-
has_setler :settings
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
Then you get:
|
|
61
|
-
|
|
62
|
-
user = User.first
|
|
63
|
-
user.settings.favorite_meat = :bacon
|
|
64
|
-
user.settings.favorite_meat # :bacon
|
|
65
|
-
user.settings.all # { "favorite_meat" => :bacon }
|
|
66
|
-
|
|
67
|
-
TODO: And look em up:
|
|
68
|
-
|
|
69
|
-
User.with_settings_for('favorite_meat') # => scope of users with the favorite_meat setting
|
|
70
|
-
|
|
71
|
-
== Gem Development
|
|
72
|
-
|
|
73
|
-
Getting started is pretty straightforward:
|
|
74
|
-
|
|
75
|
-
1. Check out the code: `git clone git://github.com/ckdake/setler.git`
|
|
76
|
-
2. Bundle install: `bundle install`
|
|
77
|
-
3. Run the tests and make sure they all pass and code coverage is still 100%: `rake test`
|
|
78
|
-
|
|
79
|
-
If you'd like to contribute code, make your changes and submit a pull request that includes appropriate tests
|
|
80
|
-
|
|
81
|
-
For building the gem: `rake build` and to release a gem to github and Rubygems: `rake release`
|