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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 314b09f91293d42a0eb8f8546cb207096554694c
4
- data.tar.gz: aaba98308de129108dc800c12508d55f2d021eba
3
+ metadata.gz: 65571054c1a86c8861c591aaedface2084c29f0a
4
+ data.tar.gz: 3569a61c592d30fc87baf2837aeaf0b74bbcb452
5
5
  SHA512:
6
- metadata.gz: ed24d4b4d082cc79936a798412ad6b6550b8379e8c3f4293461d68cee11bcf870f68c607d7489a3ebe5826c4fbbcd1992f5b059bee6f3aa138c0b2b940ef6593
7
- data.tar.gz: 9021183733a416e74fc170dd672e5945233fb5535efab3820110a0d1a6aa0a76a57778ac81f3183bb3cf8c34c03da75454c65234c9e0fd3cfc89a29e3f11a0b8
6
+ metadata.gz: 2bd1232969ddc7c60feb46378e8f6865f3443f93793acb3371de0c6d5c23942546252e2a055f27d9d5473dafc11d08614ff5e352b6ffa5aa8bd569bb446a7eac
7
+ data.tar.gz: 30841e5c74a52436961d450edde4626112a123b55312eca0d2745119bd34f8ee4621a754a1f405120ad5d0fc50597a1987ff41293f4b5e4cc19a8f1513f3dbd4
data/.gitignore CHANGED
@@ -11,3 +11,4 @@
11
11
  .travis.yml
12
12
  *.gem
13
13
  /dummy/
14
+ .ruby-version
data/Gemfile CHANGED
@@ -1,14 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
  gemspec
3
3
 
4
- gem 'rails', '~> 4.2.3'
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
-
@@ -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", [">= 4.0.0"])
22
+ spec.add_dependency("rails", [">= 3.2.22"])
22
23
 
23
- spec.add_development_dependency "bundler", "~> 1.10"
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, -> (var) {
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
- @@defaults = OpenStruct.new
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 ||= OpenStruct.new
28
+ @@defaults ||= Defaults.new
20
29
  end
21
30
 
22
31
  def fetch_defaults
23
- @@defaults.to_h.with_indifferent_access
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[:key] = value
37
+ @@defaults.send("#{key}=", value)
29
38
  end
30
39
 
31
40
  def clear_defaults
32
- @@defaults = OpenStruct.new
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[var_name.to_s]
39
- @@defaults[var_name.to_s]
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.find_by(var: var_name)
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
@@ -1,3 +1,3 @@
1
1
  module CleanSettings
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  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.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: 2015-08-22 00:00:00.000000000 Z
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: 4.0.0
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: 4.0.0
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: '1.10'
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: '1.10'
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
- - ".gitignore"
92
- - ".rspec"
93
- - ".travis.yml"
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: '0'
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.4.8
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.