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: 79581ee6690bb33c78f3a779cf07970c19e4ca63
4
- data.tar.gz: 3d3e9f23b0d566dc74d350354c36d2baae35f0e6
3
+ metadata.gz: 2706c7ab6b92fd874b54a1ca1c905d7c045170d6
4
+ data.tar.gz: 16f77c93bb7ee6ff47b510f9e0eccb4d72d8502b
5
5
  SHA512:
6
- metadata.gz: 4fc1572a97b6a298af4a5a87c6eb43190b2e4b19f1d81b3d725543472773a1803ec4f25e182fa1258e34f3326567540c89434042cf4e67aa2cbf1376c4aba8db
7
- data.tar.gz: 5fd5e9e887be12cf47c124161994891f8cb2e0d23dfcb26014d708192677c0c71b843d8b9d1586ad5af982b2d7a91cd1b0e38257cf5f3d5e21cdbb9f103e6990
6
+ metadata.gz: dbc51040c4ab7243f58cf79078c3fd098e1cf5931f7c1b829dc4c64fce0a6553245e12987e11d8b94ed308a2d281ac2591b2a4d12d33025494fa71ad1d52a907
7
+ data.tar.gz: 18abefda74697ac17b27995f065f7f8266af434316c69e49fc85632a99b1eddf2d91c24362e563a72203a1ddbcc5ae36fca10e59b06d56f72a1d00e1e609e256
@@ -12,8 +12,10 @@ module RailsAdminSettings
12
12
  end
13
13
 
14
14
  def method_missing(*args)
15
- @ns.fallback = @fb
16
- @ns.__send__(*args)
15
+ @ns.ns_mutex.synchronize do
16
+ @ns.fallback = @fb
17
+ @ns.__send__(*args)
18
+ end
17
19
  end
18
20
  end
19
21
  end
@@ -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 == 'main'
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
- if options[:fallback].nil?
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(@@ns_default, fallback: @@ns_fallback)
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 = {})
@@ -1,3 +1,3 @@
1
1
  module RailsAdminSettings
2
- VERSION = "0.6.8"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_admin_settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.8
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gleb Tv