ez-settings 0.1.2 → 0.2.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
  SHA1:
3
- metadata.gz: 9803a79f83de53644a0f14d809bd72a33622b58a
4
- data.tar.gz: 3f29121922ee1fd0140b763e24a85d5176f3d010
3
+ metadata.gz: be3bd03f40194cdc8bd570214d5121880903ef6b
4
+ data.tar.gz: d5b04f355d81a0e989e7193913aa35903c52b884
5
5
  SHA512:
6
- metadata.gz: 273e190f3bdc066ab05c8316e84c9f64dcd3bc263560052c1d597b8518cc7f97a488e5b88abd053109d967866c6317b59ab5b882c5bd26c79d44f36108dea3dc
7
- data.tar.gz: a4b530afaecbf6c8227e571b8555cfe3bfad8d919803b259ecc5c8dd7e7e34d239d3f7b4fbb74452dec8a167c354380c7771d91a161e90532b41838c155d3e45
6
+ metadata.gz: 25c0825d1ef0d9f52751b5ecef718351f0c57ad2ba5522e949eba9d9e44f4651f865c656aa5a9530f02a7ca7a23e28b27ee89dd7efddfd96ec3f63b0dcbfbd63
7
+ data.tar.gz: 37f1727dc7ad0f7eac6505b91f66ee7ed31d3f3ae7425fbfc932ba77b68deae84c7d145e61fb26b8548b4d3ee9921ebd7e413e4b117a93b5642bf0f660295bd1
data/README.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # Ez::Settings
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/ez-settings.svg)](https://badge.fury.io/rb/ez-settings)
3
4
  [![Build Status](https://travis-ci.org/ez-engines/ez-settings.svg?branch=master)](https://travis-ci.org/ez-engines/ez-settings)
4
5
 
5
6
  **Ez Settings** (read as "easy settings") - one of the [ez-engines](https://github.com/ez-engines) collection that helps easily add settings interface to your [Rails](http://rubyonrails.org/) application.
@@ -75,8 +76,10 @@ end
75
76
 
76
77
  # After defining settings interface groups/keys you need to configure it:
77
78
  app.configure do |config|
78
- # Backend adapter to store all settings (in current version only file system)
79
+ # Backend adapter to store all settings
79
80
  config.backend = Ez::Settings::Backend::FileSystem.new(Rails.root.join('config', 'settings.yml'))
81
+ # Redis is also supported:
82
+ # config.backend = Ez::Settings::Backend::Redis.new('config')
80
83
 
81
84
  # Default path for redirect in controller
82
85
  config.default_path = '/admin/settings'
@@ -103,7 +106,6 @@ app.configure do |config|
103
106
  # group_page_form_boolean_wrapper: 'ez-settings-group-form-boolean-wrapper',
104
107
  # group_page_form_select_wrapper: 'ez-settings-group-form-select-wrapper',
105
108
  # group_page_actions_wrapper: 'ez-settings-group-actions-wrapper',
106
- # group_page_actions_wrapper: 'ez-settings-group-actions-wrapper',
107
109
  # group_page_actions_save_button: 'ez-settings-group-actions-save-btn',
108
110
  # group_page_actions_cancel_link: 'ez-settings-group-actions-cancel-link'
109
111
  # }
@@ -62,7 +62,6 @@ module Ez::Settings
62
62
  group_page_form_boolean_wrapper: 'ez-settings-group-form-boolean-wrapper',
63
63
  group_page_form_select_wrapper: 'ez-settings-group-form-select-wrapper',
64
64
  group_page_actions_wrapper: 'ez-settings-group-actions-wrapper',
65
- group_page_actions_wrapper: 'ez-settings-group-actions-wrapper',
66
65
  group_page_actions_save_button: 'ez-settings-group-actions-save-btn',
67
66
  group_page_actions_cancel_link: 'ez-settings-group-actions-cancel-link',
68
67
  }.merge(interface.config.custom_css_map)
@@ -13,8 +13,8 @@ module Ez::Settings
13
13
  collection: model.collection,
14
14
  include_blank: model.default.present?,
15
15
  required: model.required?,
16
- checked_value: TRUE.to_s,
17
- unchecked_value: FALSE.to_s
16
+ checked_value: true.to_s,
17
+ unchecked_value: false.to_s
18
18
  }.merge(model.options)
19
19
  end
20
20
  end
@@ -0,0 +1,37 @@
1
+ require 'json'
2
+ require 'redis'
3
+ require 'active_support/hash_with_indifferent_access'
4
+
5
+ module Ez::Settings
6
+ module Backend
7
+ class Redis
8
+ PREFIX = 'ez:settings'
9
+
10
+ def initialize(namespace)
11
+ @namespace = namespace
12
+ end
13
+
14
+ def read
15
+ value = client.get(key)
16
+ value.nil? ? {} : JSON.parse(value).deep_symbolize_keys
17
+ end
18
+
19
+ def write(data)
20
+ new_data = read.merge(data)
21
+ client.set(key, JSON.generate(new_data))
22
+ end
23
+
24
+ private
25
+
26
+ attr_reader :namespace
27
+
28
+ def key
29
+ @key ||= "#{PREFIX}:#{namespace}"
30
+ end
31
+
32
+ def client
33
+ @client ||= ::Redis.current
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,5 @@
1
1
  module Ez
2
2
  module Settings
3
- VERSION = '0.1.2'
3
+ VERSION = '0.2.0'
4
4
  end
5
5
  end
@@ -38,8 +38,10 @@ end
38
38
 
39
39
  # After defining settings interface groups/keys you need to configure it:
40
40
  app.configure do |config|
41
- # Backend adapter to store all settings (in current version only file system)
41
+ # Backend adapter to store all settings
42
42
  config.backend = Ez::Settings::Backend::FileSystem.new(Rails.root.join('config', 'settings.yml'))
43
+ # Redis is also supported:
44
+ # config.backend = Ez::Settings::Backend::Redis.new('config')
43
45
 
44
46
  # Default path for redirect in controller
45
47
  config.default_path = '/admin/settings'
@@ -66,7 +68,6 @@ app.configure do |config|
66
68
  # group_page_form_boolean_wrapper: 'ez-settings-group-form-boolean-wrapper',
67
69
  # group_page_form_select_wrapper: 'ez-settings-group-form-select-wrapper',
68
70
  # group_page_actions_wrapper: 'ez-settings-group-actions-wrapper',
69
- # group_page_actions_wrapper: 'ez-settings-group-actions-wrapper',
70
71
  # group_page_actions_save_button: 'ez-settings-group-actions-save-btn',
71
72
  # group_page_actions_cancel_link: 'ez-settings-group-actions-cancel-link'
72
73
  # }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ez-settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Volodya Sveredyuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-19 00:00:00.000000000 Z
11
+ date: 2017-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ez-core
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.0.5
69
+ - !ruby/object:Gem::Dependency
70
+ name: redis
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: simple_form
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +220,20 @@ dependencies:
206
220
  - - ">="
207
221
  - !ruby/object:Gem::Version
208
222
  version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: fakeredis
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
209
237
  description: Easy settings engine for Rails app.
210
238
  email:
211
239
  - sveredyuk@gmail.com
@@ -236,6 +264,7 @@ files:
236
264
  - lib/ez/settings.rb
237
265
  - lib/ez/settings/accessors.rb
238
266
  - lib/ez/settings/backend/file_system.rb
267
+ - lib/ez/settings/backend/redis.rb
239
268
  - lib/ez/settings/config.rb
240
269
  - lib/ez/settings/engine.rb
241
270
  - lib/ez/settings/interface.rb