rails-settings-cached 0.6.5 → 0.6.6

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
  SHA1:
3
- metadata.gz: 944395ff037e8219792760352c87d03acb83c111
4
- data.tar.gz: b06a446b00755294b28d807d77aaae1827926031
3
+ metadata.gz: 63487ca0f7161c9c7f7e4cb6241bf07551882055
4
+ data.tar.gz: 2498ef10d3a2a6d16f5b75ba1444f8ffeab5bf31
5
5
  SHA512:
6
- metadata.gz: bca7d11860ccea2577c2f484cac61b16ae5cdc57a639812926a3029c67dcac2e9200eb0091472d275211cf620363088ab8e4489f036eb5f24d332137c4376ed5
7
- data.tar.gz: ff2156a8c94b94b47e1327dabc6cf227e8c53b0a60ad9d0690959b030e8ee3cd73c4bf964f269108a2f522bab8a391fdd989819c98591a51027dcbf1828e89bc
6
+ metadata.gz: 67341b519564882fa590bbd1a535a8192095b85ded29646e9ee00e6b29bb9a8985c78d07a3f41fdfef57bb51ae5df9ba07bf51fd198bef5200a8c64c816df85c
7
+ data.tar.gz: fcbeaae817222dd48f874ab7b0c09ffca3b79ce19d4265e9ca57018012314a0228cc493d870efd167d957d0a23d5dd47c387dbfe788b733b8ae3b36e4df92e5e
data/README.md CHANGED
@@ -9,7 +9,7 @@ of object. Strings, numbers, arrays, or any object.
9
9
 
10
10
  ## Status
11
11
 
12
- [![Gem Version](https://badge.fury.io/rb/rails-settings-cached.svg)](https://rubygems.org/gems/rails-settings-cached) [![CI Status](https://api.travis-ci.org/huacnlee/rails-settings-cached.svg)](http://travis-ci.org/huacnlee/rails-settings-cached) [![Code Climate](https://codeclimate.com/github/huacnlee/rails-settings-cached/badges/gpa.svg)](https://codeclimate.com/github/huacnlee/rails-settings-cached) [![codecov.io](https://codecov.io/github/huacnlee/rails-settings-cached/coverage.svg?branch=master)](https://codecov.io/github/huacnlee/rails-settings-cached?branch=master)
12
+ [![Gem Version](https://badge.fury.io/rb/rails-settings-cached.svg)](https://rubygems.org/gems/rails-settings-cached) [![CI Status](https://travis-ci.org/huacnlee/rails-settings-cached.svg)](http://travis-ci.org/huacnlee/rails-settings-cached) [![Code Climate](https://codeclimate.com/github/huacnlee/rails-settings-cached/badges/gpa.svg)](https://codeclimate.com/github/huacnlee/rails-settings-cached) [![codecov.io](https://codecov.io/github/huacnlee/rails-settings-cached/coverage.svg?branch=master)](https://codecov.io/github/huacnlee/rails-settings-cached?branch=master)
13
13
 
14
14
  ## Setup
15
15
 
@@ -253,7 +253,7 @@ app/views/admin/settings/edit.html.erb
253
253
  ```erb
254
254
  <%= form_for(@setting, url: admin_setting_path(@setting.var), method: 'patch') do |f| %>
255
255
  <label><%= @setting.var %></label>
256
- <%= f.textarea :value, rows: 10 %>
256
+ <%= f.text_area :value, rows: 10 %>
257
257
  <%= f.submit %>
258
258
  <% end %>
259
259
  ```
@@ -3,7 +3,7 @@ require 'rails/generators/migration'
3
3
 
4
4
  module Settings
5
5
  class InstallGenerator < Rails::Generators::NamedBase
6
- desc "Generate RailsSettings files."
6
+ desc 'Generate RailsSettings files.'
7
7
  include Rails::Generators::Migration
8
8
 
9
9
  argument :name, type: :string, default: 'setting'
@@ -27,8 +27,16 @@ module Settings
27
27
 
28
28
  def install_setting
29
29
  template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb")
30
- template 'app.yml', File.join('config', "app.yml")
31
- migration_template 'migration.rb', 'db/migrate/create_settings.rb'
30
+ template 'app.yml', File.join('config', 'app.yml')
31
+ migration_template 'migration.rb', 'db/migrate/create_settings.rb', migration_version: migration_version
32
+ end
33
+
34
+ def rails5?
35
+ Rails.version.start_with? '5'
36
+ end
37
+
38
+ def migration_version
39
+ "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]" if rails5?
32
40
  end
33
41
  end
34
42
  end
@@ -1,4 +1,4 @@
1
- class CreateSettings < ActiveRecord::Migration
1
+ class CreateSettings < ActiveRecord::Migration<%= migration_version %>
2
2
  def self.up
3
3
  create_table :settings do |t|
4
4
  t.string :var, null: false
@@ -47,7 +47,8 @@ module RailsSettings
47
47
  end
48
48
 
49
49
  def save_default(key, value)
50
- Kernel.warn 'DEPRECATION WARNING: RailsSettings save_default is deprecated and it will removed in 0.7.0. ' <<
50
+ Kernel.warn 'DEPRECATION WARNING: RailsSettings save_default is deprecated ' \
51
+ 'and it will removed in 0.7.0. ' \
51
52
  'Please use YAML file for default setting.'
52
53
  return false unless self[key].nil?
53
54
  self[key] = value
@@ -1,7 +1,8 @@
1
1
  module RailsSettings
2
2
  class CachedSettings < Base
3
3
  def self.inherited(subclass)
4
- Kernel.warn 'DEPRECATION WARNING: RailsSettings::CachedSettings is deprecated and it will removed in 0.7.0. ' <<
4
+ Kernel.warn 'DEPRECATION WARNING: RailsSettings::CachedSettings is deprecated ' \
5
+ 'and it will removed in 0.7.0. ' \
5
6
  'Please use RailsSettings::Base instead.'
6
7
  super(subclass)
7
8
  end
@@ -19,7 +19,7 @@ module RailsSettings
19
19
 
20
20
  def [](key)
21
21
  # foo.bar.dar Nested fetch value
22
- return instance[key] if instance.has_key?(key)
22
+ return instance[key] if instance.key?(key)
23
23
  keys = key.to_s.split('.')
24
24
  val = instance
25
25
  keys.each do |k|
@@ -40,7 +40,7 @@ module RailsSettings
40
40
  content = open(self.class.source_path).read
41
41
  hash = content.empty? ? {} : YAML.load(ERB.new(content).result).to_hash
42
42
  hash = hash[Rails.env] || {}
43
- self.replace hash
43
+ replace hash
44
44
  end
45
45
  end
46
46
  end
@@ -18,6 +18,7 @@ module RailsSettings
18
18
 
19
19
  class << self
20
20
  # get or set a variable with the variable as the called method
21
+ # rubocop:disable Style/MethodMissing
21
22
  def method_missing(method, *args)
22
23
  method_name = method.to_s
23
24
  super(method, *args)
@@ -47,19 +48,9 @@ module RailsSettings
47
48
  def get_all(starting_with = nil)
48
49
  vars = thing_scoped.select('var, value')
49
50
  vars = vars.where("var LIKE '#{starting_with}%'") if starting_with
50
-
51
51
  result = {}
52
- vars.each do |record|
53
- result[record.var] = record.value
54
- end
55
-
56
- defaults = {}
57
- if Default.enabled?
58
- defaults = starting_with.nil? ? Default.instance : Default.instance.select { |key, _| key.to_s.start_with?(starting_with) }
59
- end
60
-
61
- result.reverse_merge! defaults
62
-
52
+ vars.each { |record| result[record.var] = record.value }
53
+ result.reverse_merge!(default_settings(starting_with))
63
54
  result.with_indifferent_access
64
55
  end
65
56
 
@@ -70,14 +61,9 @@ module RailsSettings
70
61
 
71
62
  # get a setting value by [] notation
72
63
  def [](var_name)
73
- if var = object(var_name)
74
- val = var.value
75
- elsif Default.enabled?
76
- val = Default[var_name]
77
- else
78
- val = nil
79
- end
80
- val
64
+ val = object(var_name)
65
+ return val.value if val
66
+ return Default[var_name] if Default.enabled?
81
67
  end
82
68
 
83
69
  # set a setting value by [] notation
@@ -120,6 +106,14 @@ module RailsSettings
120
106
  def rails_initialized?
121
107
  Rails.application && Rails.application.initialized?
122
108
  end
109
+
110
+ private
111
+
112
+ def default_settings(starting_with = nil)
113
+ return {} unless Default.enabled?
114
+ return Default.instance if starting_with.nil?
115
+ Default.instance.select { |key, _| key.to_s.start_with?(starting_with) }
116
+ end
123
117
  end
124
118
  end
125
119
  end
@@ -1,7 +1,7 @@
1
1
  module RailsSettings
2
2
  class << self
3
3
  def version
4
- '0.6.5'
4
+ '0.6.6'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-settings-cached
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.6.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Lee
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2016-06-24 00:00:00.000000000 Z
14
+ date: 2017-08-01 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rails
@@ -27,6 +27,76 @@ dependencies:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 4.2.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: sqlite3
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: '0'
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ - !ruby/object:Gem::Dependency
45
+ name: rubocop
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ - !ruby/object:Gem::Dependency
59
+ name: simplecov
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: rspec
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ - !ruby/object:Gem::Dependency
87
+ name: codecov
88
+ requirement: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ type: :development
94
+ prerelease: false
95
+ version_requirements: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
30
100
  description: "\n This is improved from rails-settings, added caching.\n Settings
31
101
  plugin for Rails that makes managing a table of global key,\n value pairs easy.
32
102
  Think of it like a global Hash stored in you database,\n that uses simple ActiveRecord
@@ -71,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
141
  version: '0'
72
142
  requirements: []
73
143
  rubyforge_project:
74
- rubygems_version: 2.4.8
144
+ rubygems_version: 2.6.11
75
145
  signing_key:
76
146
  specification_version: 4
77
147
  summary: Settings plugin for Rails that makes managing a table of global keys.