setler 0.0.4 → 0.0.5
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/setler/active_record.rb +0 -11
- data/lib/setler/settings.rb +16 -3
- data/lib/setler/version.rb +1 -1
- metadata +11 -11
data/lib/setler/active_record.rb
CHANGED
@@ -5,17 +5,6 @@ module Setler
|
|
5
5
|
define_method scopename do
|
6
6
|
Setler::ScopedSettings.for_thing(self)
|
7
7
|
end
|
8
|
-
|
9
|
-
define_method "#{scopename}=" do |hash|
|
10
|
-
hash.each do |key,value|
|
11
|
-
Setler::Settings.find_or_create_by_thing_id_and_thing_type_and_var(
|
12
|
-
self.id,
|
13
|
-
self.class,
|
14
|
-
key,
|
15
|
-
value: value
|
16
|
-
)
|
17
|
-
end
|
18
|
-
end
|
19
8
|
end
|
20
9
|
|
21
10
|
end
|
data/lib/setler/settings.rb
CHANGED
@@ -15,9 +15,22 @@ module Setler
|
|
15
15
|
else
|
16
16
|
method_name = method.to_s
|
17
17
|
if method_name.ends_with?("=")
|
18
|
-
|
18
|
+
# THIS IS BAD
|
19
|
+
# thing_scoped.find_or_create_by_var(method_name[0..-2]) should work but doesnt for some reason
|
20
|
+
# When @object is present, thing_scoped sets the where scope for the polymorphic association
|
21
|
+
# but the find_or_create_by wasn't using the thing_type and thing_id
|
22
|
+
thing_scoped.find_or_create_by_var_and_thing_type_and_thing_id(
|
23
|
+
method_name[0..-2],
|
24
|
+
@object.try(:class).try(:base_class).try(:to_s),
|
25
|
+
@object.try(:id)
|
26
|
+
).update_attribute(:value, args.first)
|
19
27
|
else
|
20
|
-
thing_scoped.find_by_var(method_name)
|
28
|
+
the_setting = thing_scoped.find_by_var(method_name)
|
29
|
+
if the_setting.nil?
|
30
|
+
return @@defaults[method_name]
|
31
|
+
else
|
32
|
+
return the_setting.value
|
33
|
+
end
|
21
34
|
end
|
22
35
|
end
|
23
36
|
end
|
@@ -33,7 +46,7 @@ module Setler
|
|
33
46
|
end
|
34
47
|
|
35
48
|
def self.all
|
36
|
-
Hash[thing_scoped.all.collect{ |s| [s.var, s.value] }]
|
49
|
+
@@defaults.merge(Hash[thing_scoped.all.collect{ |s| [s.var, s.value] }])
|
37
50
|
end
|
38
51
|
|
39
52
|
def self.thing_scoped
|
data/lib/setler/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: setler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-08-09 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &70364807212080 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70364807212080
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &70364807211580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 3.0.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70364807211580
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: sqlite3
|
38
|
-
requirement: &
|
38
|
+
requirement: &70364807211200 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70364807211200
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rake
|
49
|
-
requirement: &
|
49
|
+
requirement: &70364807210740 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70364807210740
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: cover_me
|
60
|
-
requirement: &
|
60
|
+
requirement: &70364807210320 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70364807210320
|
69
69
|
description: Setler is a Gem that lets one easily implement the "Feature Flags" pattern,
|
70
70
|
or add settings to individual models. This is a cleanroom implementation of what
|
71
71
|
the 'rails-settings' gem does. It's been forked all over the place, and my favorite
|