clean_settings 0.1.1 → 0.1.3
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 +4 -4
- data/.gitignore +1 -0
- data/Gemfile +1 -11
- data/README.md +8 -2
- data/clean_settings.gemspec +3 -2
- data/lib/clean_settings/has_settings.rb +2 -2
- data/lib/clean_settings/setting.rb +20 -11
- data/lib/clean_settings/version.rb +1 -1
- metadata +23 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 65571054c1a86c8861c591aaedface2084c29f0a
|
4
|
+
data.tar.gz: 3569a61c592d30fc87baf2837aeaf0b74bbcb452
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2bd1232969ddc7c60feb46378e8f6865f3443f93793acb3371de0c6d5c23942546252e2a055f27d9d5473dafc11d08614ff5e352b6ffa5aa8bd569bb446a7eac
|
7
|
+
data.tar.gz: 30841e5c74a52436961d450edde4626112a123b55312eca0d2745119bd34f8ee4621a754a1f405120ad5d0fc50597a1987ff41293f4b5e4cc19a8f1513f3dbd4
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -1,14 +1,4 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
gemspec
|
3
3
|
|
4
|
-
gem 'rails', '~>
|
5
|
-
|
6
|
-
group :development do
|
7
|
-
gem 'pry', '~> 0.10.1'
|
8
|
-
gem 'pry-byebug', '~> 3.1.0'
|
9
|
-
end
|
10
|
-
|
11
|
-
group :test do
|
12
|
-
gem 'rspec', '~> 3.3.0'
|
13
|
-
gem 'sqlite3', '~> 1.3.10'
|
14
|
-
end
|
4
|
+
gem 'rails', '~> 3.2.22'
|
data/README.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
CleanSettings - it's simple and clean settings for your Rails project.
|
4
4
|
|
5
|
+
## Requirements
|
6
|
+
For version 1.1.2:
|
7
|
+
* Ruby 1.9.3
|
8
|
+
* Rails 3.2.22
|
9
|
+
|
10
|
+
For version 1.1.1:
|
11
|
+
* Ruby 2.0.0
|
12
|
+
* Rails 4.0.0
|
5
13
|
|
6
14
|
## Installation
|
7
15
|
|
@@ -124,8 +132,6 @@ And use it:
|
|
124
132
|
@user.settings.subscribe_to_notifications = true
|
125
133
|
@user.settings.subscribe_to_notifications # => true
|
126
134
|
```
|
127
|
-
|
128
135
|
## Contributing
|
129
136
|
|
130
137
|
Bug reports and pull requests are welcome on GitHub at https://github.com/ashlinchak/clean_settings.
|
131
|
-
|
data/clean_settings.gemspec
CHANGED
@@ -17,10 +17,11 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.bindir = "exe"
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
|
+
spec.required_ruby_version = '>= 1.9.3'
|
20
21
|
|
21
|
-
spec.add_dependency("rails", [">=
|
22
|
+
spec.add_dependency("rails", [">= 3.2.22"])
|
22
23
|
|
23
|
-
spec.add_development_dependency "bundler"
|
24
|
+
spec.add_development_dependency "bundler"
|
24
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
26
|
spec.add_development_dependency "rspec", "~> 3.3.0"
|
26
27
|
spec.add_development_dependency "sqlite3", "~> 1.3.10"
|
@@ -3,7 +3,7 @@ module CleanSettings
|
|
3
3
|
def has_settings
|
4
4
|
send :include, HasSettings::InstanceMethods
|
5
5
|
|
6
|
-
scope :with_setting,
|
6
|
+
scope :with_setting, lambda { |var|
|
7
7
|
joins("JOIN clean_settings ON (clean_settings.owner_id = #{self.table_name}.#{self.primary_key} AND
|
8
8
|
clean_settings.owner_type = '#{self.base_class.name}') AND clean_settings.var = '#{var}'")
|
9
9
|
}
|
@@ -15,4 +15,4 @@ module CleanSettings
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
|
-
end
|
18
|
+
end
|
@@ -3,8 +3,17 @@ module CleanSettings
|
|
3
3
|
self.table_name = "clean_settings"
|
4
4
|
|
5
5
|
class SettingNotFound < RuntimeError; end
|
6
|
+
class Defaults < OpenStruct
|
7
|
+
def [](name)
|
8
|
+
send name.to_sym
|
9
|
+
end
|
6
10
|
|
7
|
-
|
11
|
+
def []=(name, value)
|
12
|
+
send "#{name.to_sym}=", value
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
@@defaults = Defaults.new
|
8
17
|
|
9
18
|
def value
|
10
19
|
YAML::load(self[:value])
|
@@ -16,27 +25,27 @@ module CleanSettings
|
|
16
25
|
|
17
26
|
class << self
|
18
27
|
def defaults
|
19
|
-
@@defaults ||=
|
28
|
+
@@defaults ||= Defaults.new
|
20
29
|
end
|
21
30
|
|
22
31
|
def fetch_defaults
|
23
|
-
@@defaults.
|
32
|
+
@@defaults.marshal_dump.with_indifferent_access
|
24
33
|
end
|
25
34
|
alias_method :all_defaults, :fetch_defaults
|
26
35
|
|
27
36
|
def defaults=(key, value)
|
28
|
-
@@defaults
|
37
|
+
@@defaults.send("#{key}=", value)
|
29
38
|
end
|
30
39
|
|
31
40
|
def clear_defaults
|
32
|
-
@@defaults =
|
41
|
+
@@defaults = Defaults.new
|
33
42
|
end
|
34
43
|
|
35
44
|
def [](var_name)
|
36
45
|
if var = object(var_name)
|
37
46
|
var.value
|
38
|
-
elsif @@defaults
|
39
|
-
@@defaults
|
47
|
+
elsif @@defaults.send(var_name.to_sym)
|
48
|
+
@@defaults.send(var_name.to_sym)
|
40
49
|
else
|
41
50
|
nil
|
42
51
|
end
|
@@ -54,7 +63,7 @@ module CleanSettings
|
|
54
63
|
|
55
64
|
def destroy(var_name)
|
56
65
|
var_name = var_name.to_s
|
57
|
-
|
66
|
+
|
58
67
|
if obj = object(var_name)
|
59
68
|
obj.destroy
|
60
69
|
true
|
@@ -64,7 +73,7 @@ module CleanSettings
|
|
64
73
|
end
|
65
74
|
|
66
75
|
def fetch_globals
|
67
|
-
vars = with_owner.select(:var, :value)
|
76
|
+
vars = with_owner.select([:var, :value])
|
68
77
|
|
69
78
|
result = {}
|
70
79
|
vars.each { |record| result[record.var] = record.value }
|
@@ -88,7 +97,7 @@ module CleanSettings
|
|
88
97
|
end
|
89
98
|
|
90
99
|
def object(var_name)
|
91
|
-
with_owner.
|
100
|
+
with_owner.where(var: var_name).first
|
92
101
|
end
|
93
102
|
|
94
103
|
def method_missing(method, *args, &block)
|
@@ -107,4 +116,4 @@ module CleanSettings
|
|
107
116
|
end
|
108
117
|
end
|
109
118
|
end
|
110
|
-
end
|
119
|
+
end
|
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clean_settings
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Shlinchak
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.2.22
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.2.22
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '10.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '10.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 3.3.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ~>
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 3.3.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sqlite3
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ~>
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: 1.3.10
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 1.3.10
|
83
83
|
description: Storing global and object's settings in DB. Simple for using in Rails
|
@@ -88,9 +88,9 @@ executables: []
|
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
-
-
|
92
|
-
-
|
93
|
-
-
|
91
|
+
- .gitignore
|
92
|
+
- .rspec
|
93
|
+
- .travis.yml
|
94
94
|
- CHANGELOG.md
|
95
95
|
- Gemfile
|
96
96
|
- README.md
|
@@ -114,17 +114,17 @@ require_paths:
|
|
114
114
|
- lib
|
115
115
|
required_ruby_version: !ruby/object:Gem::Requirement
|
116
116
|
requirements:
|
117
|
-
- -
|
117
|
+
- - '>='
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version:
|
119
|
+
version: 1.9.3
|
120
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
requirements: []
|
126
126
|
rubyforge_project:
|
127
|
-
rubygems_version: 2.
|
127
|
+
rubygems_version: 2.0.14
|
128
128
|
signing_key:
|
129
129
|
specification_version: 4
|
130
130
|
summary: Simple and clean settings for your Rails project.
|