rails-settings-cached 2.9.5 → 2.10.0
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 +4 -4
- data/MIT-LICENSE +3 -1
- data/README.md +7 -1
- data/lib/generators/settings/install_generator.rb +6 -4
- data/lib/rails-settings/base.rb +1 -5
- data/lib/rails-settings/fields/base.rb +3 -3
- data/lib/rails-settings/request_cache.rb +6 -35
- data/lib/rails-settings/version.rb +1 -1
- metadata +36 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 23c3dd701684713f071eae537a5f94e41e9bb75023abe209d62621e177a03916
|
|
4
|
+
data.tar.gz: 95784f4be80456c6d5d429d9951b9d80b3eb6462bcafd9e1ba23eda79347ccd0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9dee69f7c2d26c2516291b4233d0f4f250816e352b7ecf2513bab342e178b32671655ebda745896856876e6bb03984d06d858e939e07181c5ba4e6a87d2a0ff9
|
|
7
|
+
data.tar.gz: ae86f9c18b23085513b82cc45d530da96dfe06697ed8bf99cc88dbbb70c49870a96768944afaf372df71ebeba05d371ae7e73683092c1d6abf16d4c5bff7d10f
|
data/MIT-LICENSE
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
Original Copyright (c) 2006 Alex Wayne
|
|
2
|
+
Some additional features added 2009 by Georg Ledermann
|
|
1
3
|
Copyright (c) 2019 Jason Lee
|
|
2
4
|
|
|
3
5
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
@@ -17,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOa AND
|
|
|
17
19
|
NONINFRINGEMENT. IN NO EVENT SaALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
20
|
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
21
|
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
|
@@ -4,10 +4,12 @@ The best solution for store global settings in Rails applications.
|
|
|
4
4
|
|
|
5
5
|
This gem will make managing a table of а global key, value pairs easy. Think of it like a global Hash stored in your database, that uses simple ActiveRecord like methods for manipulation. Keep track of any global setting that you don't want to hard code into your Rails application.
|
|
6
6
|
|
|
7
|
-
[](https://rubygems.org/gems/rails-settings-cached) [](https://github.com/huacnlee/rails-settings-cached/actions
|
|
7
|
+
[](https://rubygems.org/gems/rails-settings-cached) [](https://github.com/huacnlee/rails-settings-cached/actions/workflows/build.yml) [](https://codecov.io/gh/huacnlee/rails-settings-cached)
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
|
+
Requires Ruby 3.2+ and Rails 7.0+. For older Ruby or Rails versions, use the 2.9.x releases.
|
|
12
|
+
|
|
11
13
|
Edit your Gemfile:
|
|
12
14
|
|
|
13
15
|
```bash
|
|
@@ -520,3 +522,7 @@ end
|
|
|
520
522
|
- [maybe-finance/maybe](https://github.com/maybe-finance/maybe) - 2.x
|
|
521
523
|
|
|
522
524
|
And more than [1K repositories](https://github.com/huacnlee/rails-settings-cached/network/dependents) used.
|
|
525
|
+
|
|
526
|
+
## Contributing
|
|
527
|
+
|
|
528
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for how to set up a development environment, run the test suite and submit a pull request.
|
|
@@ -16,10 +16,12 @@ module RailsSettings
|
|
|
16
16
|
@@migrations = false
|
|
17
17
|
|
|
18
18
|
def self.timestamped_migrations
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
# ActiveRecord.timestamped_migrations was added in Rails 7.1, and the
|
|
20
|
+
# ActiveRecord::Base version was removed in Rails 7.2.
|
|
21
|
+
if ActiveRecord.respond_to?(:timestamped_migrations)
|
|
22
22
|
ActiveRecord.timestamped_migrations
|
|
23
|
+
else
|
|
24
|
+
ActiveRecord::Base.timestamped_migrations
|
|
23
25
|
end
|
|
24
26
|
end
|
|
25
27
|
|
|
@@ -50,7 +52,7 @@ module RailsSettings
|
|
|
50
52
|
end
|
|
51
53
|
|
|
52
54
|
def migration_version
|
|
53
|
-
"[#{rails_version_major}.#{rails_version_minor}]"
|
|
55
|
+
"[#{rails_version_major}.#{rails_version_minor}]"
|
|
54
56
|
end
|
|
55
57
|
end
|
|
56
58
|
end
|
data/lib/rails-settings/base.rb
CHANGED
|
@@ -9,12 +9,8 @@ module RailsSettings
|
|
|
9
9
|
|
|
10
10
|
# get the value field, YAML decoded
|
|
11
11
|
def value
|
|
12
|
-
# rubocop:disable Security/YAMLLoad
|
|
13
12
|
payload = self[:value]
|
|
14
|
-
|
|
15
|
-
if payload.present?
|
|
16
|
-
YAML.respond_to?(:unsafe_load) ? YAML.unsafe_load(payload) : YAML.load(payload)
|
|
17
|
-
end
|
|
13
|
+
YAML.unsafe_load(payload) if payload.present?
|
|
18
14
|
end
|
|
19
15
|
|
|
20
16
|
# set the value field, YAML encoded
|
|
@@ -33,9 +33,9 @@ module RailsSettings
|
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
def read
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
deserialize(
|
|
36
|
+
stored_value = saved_value
|
|
37
|
+
return deserialize(default_value) if readonly || stored_value.nil?
|
|
38
|
+
deserialize(stored_value)
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
def deserialize(value)
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
module RailsSettings
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
# For storage all settings in Current, it will reset after per request completed.
|
|
3
|
+
# Base on ActiveSupport::CurrentAttributes
|
|
4
|
+
# https://api.rubyonrails.org/classes/ActiveSupport/CurrentAttributes.html
|
|
5
|
+
class RequestCache < ActiveSupport::CurrentAttributes
|
|
6
|
+
attribute :settings
|
|
4
7
|
|
|
5
|
-
|
|
8
|
+
class << self
|
|
6
9
|
def enable!
|
|
7
10
|
Thread.current[:rails_settings_request_cache_enable] = true
|
|
8
11
|
end
|
|
@@ -24,36 +27,4 @@ module RailsSettings
|
|
|
24
27
|
end
|
|
25
28
|
end
|
|
26
29
|
end
|
|
27
|
-
|
|
28
|
-
if defined? ActiveSupport::CurrentAttributes
|
|
29
|
-
# For storage all settings in Current, it will reset after per request completed.
|
|
30
|
-
# Base on ActiveSupport::CurrentAttributes
|
|
31
|
-
# https://api.rubyonrails.org/classes/ActiveSupport/CurrentAttributes.html
|
|
32
|
-
class RequestCache < ActiveSupport::CurrentAttributes
|
|
33
|
-
include RequestCacheGetter
|
|
34
|
-
attribute :settings
|
|
35
|
-
end
|
|
36
|
-
else
|
|
37
|
-
# https://github.com/steveklabnik/request_store
|
|
38
|
-
# For Rails 5.0
|
|
39
|
-
require "request_store"
|
|
40
|
-
|
|
41
|
-
class RequestCache
|
|
42
|
-
include RequestCacheGetter
|
|
43
|
-
|
|
44
|
-
class << self
|
|
45
|
-
def reset
|
|
46
|
-
self.settings = nil
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
def settings
|
|
50
|
-
RequestStore.store[:rails_settings_all_settings]
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def settings=(val)
|
|
54
|
-
RequestStore.store[:rails_settings_all_settings] = val
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
30
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails-settings-cached
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.10.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jason Lee
|
|
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: railties
|
|
@@ -16,28 +15,28 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - ">="
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
18
|
+
version: 7.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
|
-
version:
|
|
25
|
+
version: 7.0.0
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: activerecord
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
32
|
+
version: 7.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
|
-
version:
|
|
39
|
+
version: 7.0.0
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: pg
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -94,6 +93,34 @@ dependencies:
|
|
|
94
93
|
- - ">="
|
|
95
94
|
- !ruby/object:Gem::Version
|
|
96
95
|
version: '0'
|
|
96
|
+
- !ruby/object:Gem::Dependency
|
|
97
|
+
name: simplecov
|
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
103
|
+
type: :development
|
|
104
|
+
prerelease: false
|
|
105
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
+
requirements:
|
|
107
|
+
- - ">="
|
|
108
|
+
- !ruby/object:Gem::Version
|
|
109
|
+
version: '0'
|
|
110
|
+
- !ruby/object:Gem::Dependency
|
|
111
|
+
name: simplecov-cobertura
|
|
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'
|
|
97
124
|
- !ruby/object:Gem::Dependency
|
|
98
125
|
name: sqlite3
|
|
99
126
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -144,7 +171,6 @@ homepage: https://github.com/huacnlee/rails-settings-cached
|
|
|
144
171
|
licenses:
|
|
145
172
|
- MIT
|
|
146
173
|
metadata: {}
|
|
147
|
-
post_install_message:
|
|
148
174
|
rdoc_options: []
|
|
149
175
|
require_paths:
|
|
150
176
|
- lib
|
|
@@ -152,15 +178,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
152
178
|
requirements:
|
|
153
179
|
- - ">="
|
|
154
180
|
- !ruby/object:Gem::Version
|
|
155
|
-
version: '2
|
|
181
|
+
version: '3.2'
|
|
156
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
157
183
|
requirements:
|
|
158
184
|
- - ">="
|
|
159
185
|
- !ruby/object:Gem::Version
|
|
160
186
|
version: '0'
|
|
161
187
|
requirements: []
|
|
162
|
-
rubygems_version: 3.
|
|
163
|
-
signing_key:
|
|
188
|
+
rubygems_version: 3.6.9
|
|
164
189
|
specification_version: 4
|
|
165
190
|
summary: The best solution for store global settings in Rails applications.
|
|
166
191
|
test_files: []
|