clean_settings 0.1.3 → 0.2.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: 65571054c1a86c8861c591aaedface2084c29f0a
4
- data.tar.gz: 3569a61c592d30fc87baf2837aeaf0b74bbcb452
3
+ metadata.gz: a3d3380cddbbd38ef5b59f4621914d522fbe4647
4
+ data.tar.gz: 99434bf2745785923cfa63580cad5db3b6439946
5
5
  SHA512:
6
- metadata.gz: 2bd1232969ddc7c60feb46378e8f6865f3443f93793acb3371de0c6d5c23942546252e2a055f27d9d5473dafc11d08614ff5e352b6ffa5aa8bd569bb446a7eac
7
- data.tar.gz: 30841e5c74a52436961d450edde4626112a123b55312eca0d2745119bd34f8ee4621a754a1f405120ad5d0fc50597a1987ff41293f4b5e4cc19a8f1513f3dbd4
6
+ metadata.gz: 1917cae6d3d7db26588e69e1b8a7afaf207d2c0ffd4eac613218e53505347299956725df543c9378242faac29a0e41f4d45f0c04d33fbb6b8be2f617e10e0c88
7
+ data.tar.gz: 0ee21704dc50eff998053594e2436a688a99e23480d5b416ee63a74dcf34c1bc95682c78d80a0adfa72865795855c2bdcb16affa3140a17863eaeceaa69daea3
data/README.md CHANGED
@@ -42,32 +42,32 @@ rails g clean_settings:install
42
42
  After installattion you will have a CleanSettings::Setting active_record model. If you want to extend this model you can use inheritance:
43
43
 
44
44
  ```ruby
45
- class CleanSettings < CleanSettings::Setting
45
+ class Settings < CleanSettings::Setting
46
46
  ```
47
47
 
48
48
  #### Default settings
49
49
 
50
50
  If you need default settings for your Rails project you can add ruby file to config/initializers folder. Personally I prefer to name it as **default_settings.rb**. And fill this file with settings that you need:
51
51
  ```ruby
52
- CleanSettings.defaults.project_name = "name"
53
- CleanSettings.defaults.project_key = 123456789
54
- CleanSettings.defaults.configs = { time: "UTC", currency_code: 980 }
52
+ Settings.defaults.project_name = "name"
53
+ Settings.defaults.project_key = 123456789
54
+ Settings.defaults.configs = { time: "UTC", currency_code: 980 }
55
55
  ```
56
56
  After restart your project you will be able to get you defaults settings:
57
57
  ```ruby
58
- CleanSettings.defaults.project_name # => "name"
59
- CleanSettings.project_name # => "name"
58
+ Settings.defaults.project_name # => "name"
59
+ Settings.project_name # => "name"
60
60
  ```
61
61
  Get all defaults settings in hash with indifferent access :
62
62
 
63
63
  ```ruby
64
- CleanSettings.all_defaults
64
+ Settings.all_defaults
65
65
  ```
66
66
 
67
67
  Clearing default settings.
68
68
 
69
69
  ```ruby
70
- CleanSettings.clear_defaults
70
+ Settings.clear_defaults
71
71
  ```
72
72
 
73
73
  Default settings are not saved to DB. Because they are 'defaults'. That's why when you clear default settings it will clear them only for current session. When your app is restarted, your default settings will be returned according your **default_settings.rb** file.
@@ -77,42 +77,42 @@ Default settings are not saved to DB. Because they are 'defaults'. That's why wh
77
77
  For adding and getting settings that will be available anywhere in your project you can write like this:
78
78
  ```ruby
79
79
  # set
80
- CleanSettings.project_name = "name"
80
+ Settings.project_name = "name"
81
81
 
82
82
  # get
83
- CleanSettings.project_name # => "name"
83
+ Settings.project_name # => "name"
84
84
  ```
85
85
  If you prefer an array notation:
86
86
  ```ruby
87
87
  # set
88
- CleanSettings[:project_name] = "name"
88
+ Settings[:project_name] = "name"
89
89
 
90
90
  # get
91
- CleanSettings[:project_name] # => "name"
91
+ Settings[:project_name] # => "name"
92
92
  ```
93
93
  When you adding a setting with the name that was used for default setting you override default setting:
94
94
 
95
95
  ```ruby
96
- CleanSettings.defaults[:name] = "default name"
97
- CleanSettings.name # => "default name"
96
+ Settings.defaults[:name] = "default name"
97
+ Settings.name # => "default name"
98
98
 
99
- CleanSettings.name = "another name"
100
- CleanSettings.name # => "another name"
99
+ Settings.name = "another name"
100
+ Settings.name # => "another name"
101
101
  ```
102
102
 
103
103
  Get all global settings in hash with indifferent access
104
104
 
105
105
  ```ruby
106
- CleanSettings.all_globals
106
+ Settings.all_globals
107
107
  ```
108
108
 
109
109
  ##### Get all settings
110
110
  All settings (default and global) you can get through any of these methods:
111
111
 
112
112
  ```ruby
113
- CleanSettings.all_settings
113
+ Settings.all_settings
114
114
  # or
115
- CleanSettings.fetch
115
+ Settings.fetch
116
116
  ```
117
117
  Global settings will be merged with default settings.
118
118
 
@@ -125,6 +125,9 @@ class User < ActiveRecord::Base
125
125
  has_settings
126
126
  end
127
127
  ```
128
+ Method `has_settings` has this option:
129
+ - **method_name**. Default value is `settings`.
130
+
128
131
  And use it:
129
132
 
130
133
  ```ruby
@@ -132,6 +135,7 @@ And use it:
132
135
  @user.settings.subscribe_to_notifications = true
133
136
  @user.settings.subscribe_to_notifications # => true
134
137
  ```
138
+
135
139
  ## Contributing
136
140
 
137
141
  Bug reports and pull requests are welcome on GitHub at https://github.com/ashlinchak/clean_settings.
@@ -1,18 +1,18 @@
1
1
  module CleanSettings
2
2
  module HasSettings
3
- def has_settings
4
- send :include, HasSettings::InstanceMethods
3
+ def has_settings(opts = {})
4
+ opts[:method_name] = :settings unless opts.key?(:method_name)
5
+
6
+ instance_eval do
7
+ define_method opts[:method_name].to_sym do
8
+ CleanSettings::Ownerable.for_thing(self)
9
+ end
10
+ end
5
11
 
6
12
  scope :with_setting, lambda { |var|
7
13
  joins("JOIN clean_settings ON (clean_settings.owner_id = #{self.table_name}.#{self.primary_key} AND
8
14
  clean_settings.owner_type = '#{self.base_class.name}') AND clean_settings.var = '#{var}'")
9
15
  }
10
16
  end
11
-
12
- module InstanceMethods
13
- def settings
14
- CleanSettings::Ownerable.for_thing(self)
15
- end
16
- end
17
17
  end
18
18
  end
@@ -1,3 +1,3 @@
1
1
  module CleanSettings
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
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.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Shlinchak
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-06-02 00:00:00.000000000 Z
11
+ date: 2016-10-19 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
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
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
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
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,19 +114,18 @@ 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
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.0.14
127
+ rubygems_version: 2.5.1
128
128
  signing_key:
129
129
  specification_version: 4
130
130
  summary: Simple and clean settings for your Rails project.
131
131
  test_files: []
132
- has_rdoc: