rails_admin_settings 0.6.8 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2706c7ab6b92fd874b54a1ca1c905d7c045170d6
|
4
|
+
data.tar.gz: 16f77c93bb7ee6ff47b510f9e0eccb4d72d8502b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dbc51040c4ab7243f58cf79078c3fd098e1cf5931f7c1b829dc4c64fce0a6553245e12987e11d8b94ed308a2d281ac2591b2a4d12d33025494fa71ad1d52a907
|
7
|
+
data.tar.gz: 18abefda74697ac17b27995f065f7f8266af434316c69e49fc85632a99b1eddf2d91c24362e563a72203a1ddbcc5ae36fca10e59b06d56f72a1d00e1e609e256
|
@@ -3,11 +3,12 @@ module RailsAdminSettings
|
|
3
3
|
# Kernel or Object
|
4
4
|
class Namespaced < BasicObject
|
5
5
|
attr_accessor :settings, :fallback
|
6
|
-
attr_reader :loaded, :mutex
|
6
|
+
attr_reader :loaded, :mutex, :ns_mutex, :name
|
7
7
|
|
8
8
|
def initialize(name)
|
9
9
|
self.settings = {}
|
10
10
|
@mutex = ::Mutex.new
|
11
|
+
@ns_mutex = ::Mutex.new
|
11
12
|
@loaded = false
|
12
13
|
@locked = false
|
13
14
|
@name = name
|
@@ -49,7 +50,7 @@ module RailsAdminSettings
|
|
49
50
|
@locked = true
|
50
51
|
v = @settings[key]
|
51
52
|
if v.nil?
|
52
|
-
unless @fallback.nil?
|
53
|
+
unless @fallback.nil? || @fallback == @name
|
53
54
|
v = ::Settings.ns(@fallback).getnc(key)
|
54
55
|
end
|
55
56
|
if v.nil?
|
@@ -13,29 +13,24 @@ class Settings < BasicObject
|
|
13
13
|
@@ns_default = 'main'
|
14
14
|
@@ns_fallback = nil
|
15
15
|
|
16
|
-
|
16
|
+
cattr_reader :mutex
|
17
17
|
|
18
18
|
class << self
|
19
19
|
def ns(name, options = {})
|
20
20
|
options.symbolize_keys!
|
21
|
-
if name.nil? || name ==
|
21
|
+
if name.nil? || name == Settings.ns_default
|
22
22
|
name = @@ns_default.to_s
|
23
|
-
options[:fallback] = @@ns_fallback.to_s
|
24
23
|
else
|
25
24
|
name = name.to_s
|
26
25
|
end
|
27
26
|
@@mutex.synchronize do
|
28
27
|
@@namespaces[name] ||= ::RailsAdminSettings::Namespaced.new(name.to_s)
|
29
28
|
end
|
30
|
-
|
31
|
-
@@namespaces[name]
|
32
|
-
else
|
33
|
-
::RailsAdminSettings::Fallback.new(@@namespaces[name], options[:fallback])
|
34
|
-
end
|
29
|
+
::RailsAdminSettings::Fallback.new(@@namespaces[name], options[:fallback])
|
35
30
|
end
|
36
31
|
|
37
32
|
def get_default_ns
|
38
|
-
ns(
|
33
|
+
ns(nil, fallback: @@ns_fallback)
|
39
34
|
end
|
40
35
|
|
41
36
|
def unload!
|
@@ -85,22 +80,12 @@ class Settings < BasicObject
|
|
85
80
|
|
86
81
|
def get(key, options = {})
|
87
82
|
options.symbolize_keys!
|
88
|
-
|
89
|
-
if options[:ns].nil? || options[:ns].to_s == 'main'
|
90
|
-
get_default_ns.get(key, options)
|
91
|
-
else
|
92
|
-
ns(options[:ns]).get(key, options)
|
93
|
-
end
|
83
|
+
ns(options[:ns], options).get(key, options)
|
94
84
|
end
|
95
85
|
|
96
86
|
def set(key, value = nil, options = {})
|
97
87
|
options.symbolize_keys!
|
98
|
-
|
99
|
-
if options[:ns].nil? || options[:ns].to_s == 'main'
|
100
|
-
get_default_ns.set(key, value, options)
|
101
|
-
else
|
102
|
-
ns(options[:ns]).set(key, value, options)
|
103
|
-
end
|
88
|
+
ns(options[:ns], options).set(key, value, options)
|
104
89
|
end
|
105
90
|
|
106
91
|
def save_default(key, value, options = {})
|
data/spec/namespaced_spec.rb
CHANGED
@@ -38,4 +38,13 @@ describe 'Namespaced settings' do
|
|
38
38
|
ns.get(:phone).val.city.should eq '906'
|
39
39
|
ns.get(:phone).val.formatted_subscriber.should eq '111-11-11'
|
40
40
|
end
|
41
|
+
|
42
|
+
it 'works with custom defaults' do
|
43
|
+
Settings.ns_default = 'hitfood'
|
44
|
+
Settings.ns_fallback = 'main'
|
45
|
+
Settings.test.should eq ''
|
46
|
+
Settings.test = 'zzz'
|
47
|
+
Settings.get(:test, ns: 'hitfood').raw.should eq 'zzz'
|
48
|
+
Settings.get(:test, ns: 'main').raw.should eq ''
|
49
|
+
end
|
41
50
|
end
|