rails_admin_settings 0.6.8 → 0.7.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: 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