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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc947f6d7c17fd74d160cedbbafe9b027a24fa4e56192ab4cf515f72ac3eb7b3
4
- data.tar.gz: 2464010525a411701cad88349ff304ada0bf872b1cebdfff6627014ebfe971fe
3
+ metadata.gz: 23c3dd701684713f071eae537a5f94e41e9bb75023abe209d62621e177a03916
4
+ data.tar.gz: 95784f4be80456c6d5d429d9951b9d80b3eb6462bcafd9e1ba23eda79347ccd0
5
5
  SHA512:
6
- metadata.gz: 6e8b7bdccafeffde0dbb610057b1dfd7c4b5b147663dea19880ad94b44186861efb1ec8b6321dc1aa0095938070522aa4bdf3d708db0eb1c74ec77505bbff8d0
7
- data.tar.gz: 83dd5c6cf2faf96424b95dc9a6caaafb30c15f0eb05102eb7285b49cfc479423af3415cbdde3d6b6bb3f1342b437cd982b883572e9214eaa720267e83249fbdc
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
- [![Gem Version](https://badge.fury.io/rb/rails-settings-cached.svg)](https://rubygems.org/gems/rails-settings-cached) [![build](https://github.com/huacnlee/rails-settings-cached/workflows/build/badge.svg)](https://github.com/huacnlee/rails-settings-cached/actions?query=workflow%3Abuild)
7
+ [![Gem Version](https://badge.fury.io/rb/rails-settings-cached.svg)](https://rubygems.org/gems/rails-settings-cached) [![build](https://github.com/huacnlee/rails-settings-cached/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/huacnlee/rails-settings-cached/actions/workflows/build.yml) [![codecov](https://codecov.io/gh/huacnlee/rails-settings-cached/branch/main/graph/badge.svg)](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
- if ActiveRecord::Base.respond_to?(:timestamped_migrations)
20
- ActiveRecord::Base.timestamped_migrations
21
- elsif ActiveRecord.respond_to?(:timestamped_migrations)
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}]" if rails_version_major >= 5
55
+ "[#{rails_version_major}.#{rails_version_minor}]"
54
56
  end
55
57
  end
56
58
  end
@@ -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
- return deserialize(default_value) if readonly || saved_value.nil?
37
-
38
- deserialize(saved_value)
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
- module RequestCacheGetter
3
- extend ActiveSupport::Concern
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
- class_methods do
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
@@ -3,7 +3,7 @@
3
3
  module RailsSettings
4
4
  class << self
5
5
  def version
6
- "2.9.5"
6
+ "2.10.0"
7
7
  end
8
8
  end
9
9
  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.9.5
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: 2024-10-07 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: railties
@@ -16,28 +15,28 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 5.0.0
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: 5.0.0
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: 5.0.0
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: 5.0.0
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.5'
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.5.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: []