rails-settings-cached 2.9.6 → 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/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/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/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
|
|
@@ -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: []
|