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 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
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
data/README.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  Simple and flexible preferences integration for ActiveRecord models.
4
4
 
5
+ [![Gem Version](https://badge.fury.io/rb/flavors.svg)](http://badge.fury.io/rb/flavors)
6
+ [![Build Status](https://travis-ci.org/polydice/flavors.png?branch=master)](https://travis-ci.org/polydice/flavors)
7
+ [![Code Climate](https://codeclimate.com/github/polydice/flavors.png)](https://codeclimate.com/github/polydice/flavors)
8
+ [![Coverage Status](https://coveralls.io/repos/polydice/flavors/badge.png)](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", "~> 3.1"
21
- gem.add_dependency "activesupport", "~> 3.2"
22
- gem.add_dependency "activerecord", "~> 3.2"
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", "~> 2.12.0"
25
- gem.add_development_dependency "rake", "~> 10.0"
26
- gem.add_development_dependency "shoulda-matchers", "~> 1.4"
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
@@ -34,7 +34,7 @@ module Flavors
34
34
  end
35
35
 
36
36
  def write_preference(name, value)
37
- p = self.preferences.find_or_create_by_name(name)
37
+ p = self.preferences.where(:name => name).first_or_create
38
38
  p.update_attribute(:value, value)
39
39
  end
40
40
  end
@@ -1,3 +1,3 @@
1
1
  module Flavors
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -2,6 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe Flavors::Preference do
4
4
 
5
- it { should belong_to(:prefered) }
5
+ it { is_expected.to belong_to(:prefered) }
6
6
 
7
7
  end
@@ -14,38 +14,38 @@ describe Flavors::Preferences do
14
14
 
15
15
  subject { User.create }
16
16
 
17
- it "should have a default value" do
18
- subject.notification.should == true
17
+ it "has a default value" do
18
+ expect(subject.notification).to be_truthy
19
19
  end
20
20
 
21
- it "should update preference" do
21
+ it "updates preference" do
22
22
  subject.notification = false
23
- subject.notification.should == false
23
+ expect(subject.notification).to be_falsy
24
24
  end
25
25
 
26
- it "should scope preferences for different classes" do
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 "should scope default value for different classes" do
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.should be_true
37
+ expect(subject.notification).to be_truthy
38
38
  end
39
39
 
40
- it "should return if nil if no default value defined" do
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.should be_nil
45
+ expect(subject.foo).to be_nil
46
46
  end
47
47
 
48
- it "should invoke callback block" do
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.should_receive(:buz)
57
+ expect(subject).to receive(:buz)
58
58
  subject.bar = true
59
59
  end
60
60
 
61
- it "should respond to the preference name with question mark" do
62
- subject.should respond_to(:notification?)
63
- subject.notification?.should == true
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.notification?.should == false
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.color_enabled = true
9
- config.formatter = 'documentation'
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.3.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: 2013-03-04 00:00:00.000000000 Z
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.1'
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: '3.1'
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: 2.12.0
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: 2.12.0
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: '10.0'
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: '10.0'
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: '1.4'
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: '1.4'
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: 1.8.23
177
+ rubygems_version: 2.2.2
181
178
  signing_key:
182
- specification_version: 3
179
+ specification_version: 4
183
180
  summary: Add preferences to ActiveRecord models.
184
181
  test_files:
185
182
  - spec/preference_spec.rb