flavors 0.3.0 → 0.4.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 +7 -0
- data/.travis.yml +5 -0
- data/README.md +9 -4
- data/flavors.gemspec +6 -6
- data/lib/flavors/preferences/preferences.rb +1 -1
- data/lib/flavors/version.rb +1 -1
- data/spec/preference_spec.rb +1 -1
- data/spec/preferences_spec.rb +15 -15
- data/spec/spec_helper.rb +2 -2
- metadata +49 -52
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2d62b2d0d98f046e7bbb8aeaf9ca22a15c0f1c89
|
4
|
+
data.tar.gz: 5168ee5c701db40892224ffb46894228729d30b9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 149e46c71be96a7d1157a57fc32c1e7a6cd0988d4081993f17bbd74218bf6f708ab91292f3fdbb31d9e655328c173e50c4ef82b660815d5ea308431711c0b451
|
7
|
+
data.tar.gz: fbbcaa05ec027615ceda2764276bce717189d1fc09d62ffa977e503273058f10ef9018eeb9096127cc1ae6735125ea2aa4e2be4b670d6d27e363c43ff4405b68
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -2,6 +2,11 @@
|
|
2
2
|
|
3
3
|
Simple and flexible preferences integration for ActiveRecord models.
|
4
4
|
|
5
|
+
[](http://badge.fury.io/rb/flavors)
|
6
|
+
[](https://travis-ci.org/polydice/flavors)
|
7
|
+
[](https://codeclimate.com/github/polydice/flavors)
|
8
|
+
[](https://coveralls.io/r/polydice/flavors)
|
9
|
+
|
5
10
|
## Installation
|
6
11
|
|
7
12
|
Add this line to your application's Gemfile:
|
@@ -25,7 +30,7 @@ Generate the migration for the preferences table and migrate the database:
|
|
25
30
|
|
26
31
|
To add preferences to your ActiveRecord model, in your model file:
|
27
32
|
|
28
|
-
```
|
33
|
+
```ruby
|
29
34
|
class User < ActiveRecord::Base
|
30
35
|
preference :receive_email, :default => true
|
31
36
|
end
|
@@ -33,7 +38,7 @@ end
|
|
33
38
|
|
34
39
|
Then you can then use the methods provided by flavors to read / write preferences.
|
35
40
|
|
36
|
-
```
|
41
|
+
```ruby
|
37
42
|
Loading development environment (Rails 3.2.12)
|
38
43
|
irb(main):001:0> u = User.create(:email => "foo@bar.com")
|
39
44
|
irb(main):002:0> u.notification
|
@@ -46,7 +51,7 @@ irb(main):004:0> u.notification
|
|
46
51
|
|
47
52
|
From 0.2.0, Flavors also supports callback block for preference setter.
|
48
53
|
|
49
|
-
```
|
54
|
+
```ruby
|
50
55
|
class User < ActiveRecord::Base
|
51
56
|
preference :receive_email, :default => true do |object, value|
|
52
57
|
puts "#{object.name} sets preference to #{value}"
|
@@ -56,7 +61,7 @@ end
|
|
56
61
|
|
57
62
|
When you set preference of instances, the callback block will be invoked.
|
58
63
|
|
59
|
-
```
|
64
|
+
```ruby
|
60
65
|
Loading development environment (Rails 3.2.12)
|
61
66
|
irb(main):001:0> u = User.create(:name => "foo", :email => "foo@bar.com")
|
62
67
|
irb(main):002:0> u.notification = true
|
data/flavors.gemspec
CHANGED
@@ -17,12 +17,12 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_dependency "railties", "
|
21
|
-
gem.add_dependency "activesupport", "
|
22
|
-
gem.add_dependency "activerecord", "
|
20
|
+
gem.add_dependency "railties", [">= 3.2", "< 4.2"]
|
21
|
+
gem.add_dependency "activesupport", [">= 3.2", "< 4.2"]
|
22
|
+
gem.add_dependency "activerecord", [">= 3.2", "< 4.2"]
|
23
23
|
|
24
|
-
gem.add_development_dependency "rspec"
|
25
|
-
gem.add_development_dependency "rake"
|
26
|
-
gem.add_development_dependency "shoulda-matchers"
|
24
|
+
gem.add_development_dependency "rspec"
|
25
|
+
gem.add_development_dependency "rake"
|
26
|
+
gem.add_development_dependency "shoulda-matchers"
|
27
27
|
gem.add_development_dependency "sqlite3"
|
28
28
|
end
|
data/lib/flavors/version.rb
CHANGED
data/spec/preference_spec.rb
CHANGED
data/spec/preferences_spec.rb
CHANGED
@@ -14,38 +14,38 @@ describe Flavors::Preferences do
|
|
14
14
|
|
15
15
|
subject { User.create }
|
16
16
|
|
17
|
-
it "
|
18
|
-
subject.notification.
|
17
|
+
it "has a default value" do
|
18
|
+
expect(subject.notification).to be_truthy
|
19
19
|
end
|
20
20
|
|
21
|
-
it "
|
21
|
+
it "updates preference" do
|
22
22
|
subject.notification = false
|
23
|
-
subject.notification.
|
23
|
+
expect(subject.notification).to be_falsy
|
24
24
|
end
|
25
25
|
|
26
|
-
it "
|
26
|
+
it "scopes preferences for different classes" do
|
27
27
|
expect {
|
28
28
|
subject.sticky
|
29
29
|
}.to raise_error NoMethodError
|
30
30
|
end
|
31
31
|
|
32
|
-
it "
|
32
|
+
it "scopes default value for different classes" do
|
33
33
|
Post.class_eval do
|
34
34
|
preference :notification, :default => false
|
35
35
|
end
|
36
36
|
|
37
|
-
subject.notification.
|
37
|
+
expect(subject.notification).to be_truthy
|
38
38
|
end
|
39
39
|
|
40
|
-
it "
|
40
|
+
it "returns if nil if no default value defined" do
|
41
41
|
User.class_eval do
|
42
42
|
preference :foo
|
43
43
|
end
|
44
44
|
|
45
|
-
subject.foo.
|
45
|
+
expect(subject.foo).to be_nil
|
46
46
|
end
|
47
47
|
|
48
|
-
it "
|
48
|
+
it "invokes callback block" do
|
49
49
|
User.class_eval do
|
50
50
|
def buz; end
|
51
51
|
|
@@ -54,14 +54,14 @@ describe Flavors::Preferences do
|
|
54
54
|
end
|
55
55
|
end
|
56
56
|
|
57
|
-
subject.
|
57
|
+
expect(subject).to receive(:buz)
|
58
58
|
subject.bar = true
|
59
59
|
end
|
60
60
|
|
61
|
-
it "
|
62
|
-
subject.
|
63
|
-
subject.
|
61
|
+
it "responds to the preference name with question mark" do
|
62
|
+
expect(subject).to respond_to(:notification?)
|
63
|
+
expect(subject).to be_notification
|
64
64
|
subject.notification = false
|
65
|
-
subject.
|
65
|
+
expect(subject).not_to be_notification
|
66
66
|
end
|
67
67
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,8 +5,8 @@ require 'shoulda-matchers'
|
|
5
5
|
require "rails/test_unit/railtie"
|
6
6
|
|
7
7
|
RSpec.configure do |config|
|
8
|
-
config.
|
9
|
-
config.formatter
|
8
|
+
config.color = true
|
9
|
+
config.formatter = 'documentation'
|
10
10
|
end
|
11
11
|
|
12
12
|
# Define the application and configuration
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flavors
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- David Yun
|
@@ -10,118 +9,122 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 2014-06-19 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: railties
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - ">="
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: '3.
|
20
|
+
version: '3.2'
|
21
|
+
- - "<"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '4.2'
|
23
24
|
type: :runtime
|
24
25
|
prerelease: false
|
25
26
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
27
|
requirements:
|
28
|
-
- -
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: '3.2'
|
31
|
+
- - "<"
|
29
32
|
- !ruby/object:Gem::Version
|
30
|
-
version: '
|
33
|
+
version: '4.2'
|
31
34
|
- !ruby/object:Gem::Dependency
|
32
35
|
name: activesupport
|
33
36
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
37
|
requirements:
|
36
|
-
- -
|
38
|
+
- - ">="
|
37
39
|
- !ruby/object:Gem::Version
|
38
40
|
version: '3.2'
|
41
|
+
- - "<"
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '4.2'
|
39
44
|
type: :runtime
|
40
45
|
prerelease: false
|
41
46
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
47
|
requirements:
|
44
|
-
- -
|
48
|
+
- - ">="
|
45
49
|
- !ruby/object:Gem::Version
|
46
50
|
version: '3.2'
|
51
|
+
- - "<"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '4.2'
|
47
54
|
- !ruby/object:Gem::Dependency
|
48
55
|
name: activerecord
|
49
56
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
57
|
requirements:
|
52
|
-
- -
|
58
|
+
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: '3.2'
|
61
|
+
- - "<"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '4.2'
|
55
64
|
type: :runtime
|
56
65
|
prerelease: false
|
57
66
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
67
|
requirements:
|
60
|
-
- -
|
68
|
+
- - ">="
|
61
69
|
- !ruby/object:Gem::Version
|
62
70
|
version: '3.2'
|
71
|
+
- - "<"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '4.2'
|
63
74
|
- !ruby/object:Gem::Dependency
|
64
75
|
name: rspec
|
65
76
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
77
|
requirements:
|
68
|
-
- -
|
78
|
+
- - ">="
|
69
79
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
80
|
+
version: '0'
|
71
81
|
type: :development
|
72
82
|
prerelease: false
|
73
83
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
84
|
requirements:
|
76
|
-
- -
|
85
|
+
- - ">="
|
77
86
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
87
|
+
version: '0'
|
79
88
|
- !ruby/object:Gem::Dependency
|
80
89
|
name: rake
|
81
90
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
91
|
requirements:
|
84
|
-
- -
|
92
|
+
- - ">="
|
85
93
|
- !ruby/object:Gem::Version
|
86
|
-
version: '
|
94
|
+
version: '0'
|
87
95
|
type: :development
|
88
96
|
prerelease: false
|
89
97
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
98
|
requirements:
|
92
|
-
- -
|
99
|
+
- - ">="
|
93
100
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
101
|
+
version: '0'
|
95
102
|
- !ruby/object:Gem::Dependency
|
96
103
|
name: shoulda-matchers
|
97
104
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
105
|
requirements:
|
100
|
-
- -
|
106
|
+
- - ">="
|
101
107
|
- !ruby/object:Gem::Version
|
102
|
-
version: '
|
108
|
+
version: '0'
|
103
109
|
type: :development
|
104
110
|
prerelease: false
|
105
111
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
112
|
requirements:
|
108
|
-
- -
|
113
|
+
- - ">="
|
109
114
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
115
|
+
version: '0'
|
111
116
|
- !ruby/object:Gem::Dependency
|
112
117
|
name: sqlite3
|
113
118
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
119
|
requirements:
|
116
|
-
- -
|
120
|
+
- - ">="
|
117
121
|
- !ruby/object:Gem::Version
|
118
122
|
version: '0'
|
119
123
|
type: :development
|
120
124
|
prerelease: false
|
121
125
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
126
|
requirements:
|
124
|
-
- -
|
127
|
+
- - ">="
|
125
128
|
- !ruby/object:Gem::Version
|
126
129
|
version: '0'
|
127
130
|
description: Simple and flexible preferences integration for ActiveRecord models.
|
@@ -132,7 +135,8 @@ executables: []
|
|
132
135
|
extensions: []
|
133
136
|
extra_rdoc_files: []
|
134
137
|
files:
|
135
|
-
- .gitignore
|
138
|
+
- ".gitignore"
|
139
|
+
- ".travis.yml"
|
136
140
|
- Gemfile
|
137
141
|
- LICENSE.txt
|
138
142
|
- README.md
|
@@ -153,33 +157,26 @@ files:
|
|
153
157
|
- spec/support/user.rb
|
154
158
|
homepage: https://github.com/polydice/flavors
|
155
159
|
licenses: []
|
160
|
+
metadata: {}
|
156
161
|
post_install_message:
|
157
162
|
rdoc_options: []
|
158
163
|
require_paths:
|
159
164
|
- lib
|
160
165
|
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
166
|
requirements:
|
163
|
-
- -
|
167
|
+
- - ">="
|
164
168
|
- !ruby/object:Gem::Version
|
165
169
|
version: '0'
|
166
|
-
segments:
|
167
|
-
- 0
|
168
|
-
hash: -172098477842830363
|
169
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
-
none: false
|
171
171
|
requirements:
|
172
|
-
- -
|
172
|
+
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '0'
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
hash: -172098477842830363
|
178
175
|
requirements: []
|
179
176
|
rubyforge_project:
|
180
|
-
rubygems_version:
|
177
|
+
rubygems_version: 2.2.2
|
181
178
|
signing_key:
|
182
|
-
specification_version:
|
179
|
+
specification_version: 4
|
183
180
|
summary: Add preferences to ActiveRecord models.
|
184
181
|
test_files:
|
185
182
|
- spec/preference_spec.rb
|