settings_js 0.1.1 → 0.1.2
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.
- data/lib/settings_js/backends/settings_logic.rb +10 -0
- data/lib/settings_js/merger.rb +21 -0
- data/lib/settings_js.rb +13 -0
- data/settings_js.gemspec +3 -3
- metadata +4 -4
@@ -8,6 +8,16 @@ module SettingsJs
|
|
8
8
|
self.klass = klass
|
9
9
|
end
|
10
10
|
|
11
|
+
# Public: Use application settings logic class to get values of a key.
|
12
|
+
#
|
13
|
+
# base_key - String formatted.
|
14
|
+
#
|
15
|
+
# Examples
|
16
|
+
#
|
17
|
+
# multiplex('Tom', 4)
|
18
|
+
# # => 'TomTomTomTom'
|
19
|
+
#
|
20
|
+
# Returns the duplicated String.
|
11
21
|
def to_hash(base_key)
|
12
22
|
keys = base_key.split(/\./)
|
13
23
|
base_hash = klass.send(keys.shift)
|
data/lib/settings_js/merger.rb
CHANGED
@@ -4,6 +4,16 @@ require 'json'
|
|
4
4
|
module SettingsJs
|
5
5
|
class Merger
|
6
6
|
|
7
|
+
# Public: Get all values for keys defined in settins and merged it to a hash.
|
8
|
+
#
|
9
|
+
# Examples
|
10
|
+
#
|
11
|
+
# merger = SettingsJs::Merger.new
|
12
|
+
# merger.to_hash
|
13
|
+
# # => { key1: 'value', key2: { sub_key2: 'other value' }}
|
14
|
+
#
|
15
|
+
# Returns Hash.
|
16
|
+
# Raises TypeError if keys defined in config is not a reduceable object (Array,...)
|
7
17
|
def to_hash
|
8
18
|
unless config.keys.respond_to?(:reduce)
|
9
19
|
raise TypeError.new('the configuration key "keys" must be reduceable')
|
@@ -12,6 +22,17 @@ module SettingsJs
|
|
12
22
|
config.keys.reduce({}) { |hash, base_key| hash.merge(backend.to_hash(base_key)) }
|
13
23
|
end
|
14
24
|
|
25
|
+
# Public: Get all values for keys defined in settins and merged it to a json.
|
26
|
+
#
|
27
|
+
# Examples
|
28
|
+
#
|
29
|
+
# merger = SettingsJs::Merger.new
|
30
|
+
# merger.to_hash
|
31
|
+
# # => { key1: 'value', key2: { sub_key2: 'other value' }}
|
32
|
+
# merger.to_json
|
33
|
+
# # => { 'key1': 'value', 'key2': { 'sub_key2': 'other value' }}
|
34
|
+
#
|
35
|
+
# Returns Json.
|
15
36
|
def to_json
|
16
37
|
to_hash.to_json
|
17
38
|
end
|
data/lib/settings_js.rb
CHANGED
@@ -3,6 +3,19 @@ require 'settings_js/merger'
|
|
3
3
|
|
4
4
|
module SettingsJs
|
5
5
|
|
6
|
+
# Public: Configuration initializer.
|
7
|
+
#
|
8
|
+
# block - block with configuration object in parameter.
|
9
|
+
#
|
10
|
+
# Examples
|
11
|
+
#
|
12
|
+
# SettingsJs.condiguration do |config|
|
13
|
+
# config.backend = 'awesome_backend'
|
14
|
+
# config.klass = ApplicationSettings
|
15
|
+
# config.keys = %w(key.key2 key3)
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# Returns Nothing.
|
6
19
|
def self.configuration(&block)
|
7
20
|
block.call(SettingsJs::Config.instance)
|
8
21
|
end
|
data/settings_js.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'settings_js'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.2'
|
4
4
|
s.date = '2012-11-30'
|
5
5
|
s.summary = 'Sharing same application settings between ruby and javascript'
|
6
6
|
s.authors = ['Kevin Disneur']
|
@@ -9,8 +9,8 @@ Gem::Specification.new do |s|
|
|
9
9
|
s.test_files = `git ls-files -- spec/*`.split(/\n/)
|
10
10
|
s.homepage = 'http://rubygems.org/gems/settings_js'
|
11
11
|
|
12
|
-
s.add_dependency '
|
13
|
-
s.add_dependency 'json',
|
12
|
+
s.add_dependency 'activesupport', '> 0'
|
13
|
+
s.add_dependency 'json', '> 0'
|
14
14
|
s.add_dependency 'sprockets'
|
15
15
|
|
16
16
|
s.add_development_dependency 'jasmine'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: settings_js
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,13 +12,13 @@ cert_chain: []
|
|
12
12
|
date: 2012-11-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
name:
|
15
|
+
name: activesupport
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>'
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
21
|
+
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ! '>'
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '
|
29
|
+
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: json
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|