emotions 0.3 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b3ae5e838c6776b24d5c8f2cfaacc928561feb1d
4
- data.tar.gz: 68c6d7912a1b2ac6ae002620738d54e9779bb824
3
+ metadata.gz: 6b63d3b7d828f862c2826496b55366c15185ad19
4
+ data.tar.gz: 14d555b43d50e343a58b5ac5e954bda1cb7c3dc5
5
5
  SHA512:
6
- metadata.gz: 18c67e3d42f3651fc1b93a81bc9929e615baa0f4dac1f28ca29e705c215c9e511c8491cf247cd857ce79b67b7ce5bd434b7f2949f3b4efb62bebe1b606f4bbc4
7
- data.tar.gz: 04abf2116166994f2e5198b39b12403b9066bac12d208416da9ba345d83c3a84de5e94c87f31e7f98045585c3b2726000681217e363543b09e232a533b3db17e
6
+ metadata.gz: 6462ae7e461615499b461e71f2cc93c29701e5961719090339116a1a53e219b305a1e9a81576df289ba40ba90849004544b943f323418fc2ef8a84f6b374e71a
7
+ data.tar.gz: 4618ff14f5a8dc019a9c9c0269b3cecc68d403d0f5a44e969a7601632d68dba7cd6f0352857ad649f7b78afaed7334b18262ce22e59213f04a07b31c94e4b6bf
@@ -0,0 +1,56 @@
1
+ AllCops:
2
+ Include:
3
+ - emotions.gemspec
4
+
5
+ Documentation:
6
+ Enabled: false
7
+
8
+ Encoding:
9
+ Enabled: false
10
+
11
+ LineLength:
12
+ Max: 200
13
+
14
+ ClassLength:
15
+ Max: 200
16
+
17
+ AccessModifierIndentation:
18
+ EnforcedStyle: outdent
19
+
20
+ IfUnlessModifier:
21
+ Enabled: false
22
+
23
+ CaseIndentation:
24
+ IndentWhenRelativeTo: case
25
+ IndentOneStep: true
26
+
27
+ MethodLength:
28
+ CountComments: false
29
+ Max: 20
30
+
31
+ SignalException:
32
+ Enabled: false
33
+
34
+ ColonMethodCall:
35
+ Enabled: false
36
+
37
+ AsciiComments:
38
+ Enabled: false
39
+
40
+ Lambda:
41
+ Enabled: false
42
+
43
+ RegexpLiteral:
44
+ Enabled: false
45
+
46
+ RaiseArgs:
47
+ Enabled: false
48
+
49
+ AssignmentInCondition:
50
+ Enabled: false
51
+
52
+ ClassAndModuleChildren:
53
+ Enabled: false
54
+
55
+ GuardClause:
56
+ Enabled: false
@@ -1,9 +1,12 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.0.0
4
+ - 2.1
5
+ - 2.0
5
6
  - 1.9.3
6
7
 
8
+ sudo: false
9
+
7
10
  script: "echo 'DO IT' && bundle exec rake spec"
8
11
 
9
12
  notifications:
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013, Mirego
1
+ Copyright (c) 2013-2014, Mirego
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without
data/README.md CHANGED
@@ -110,7 +110,7 @@ user.happy_emotions_count
110
110
 
111
111
  ## License
112
112
 
113
- `Emotions` is © 2013 [Mirego](http://www.mirego.com) and may be freely distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the [`LICENSE.md`](https://github.com/mirego/emotions/blob/master/LICENSE.md) file.
113
+ `Emotions` is © 2013-2014 [Mirego](http://www.mirego.com) and may be freely distributed under the [New BSD license](http://opensource.org/licenses/BSD-3-Clause). See the [`LICENSE.md`](https://github.com/mirego/emotions/blob/master/LICENSE.md) file.
114
114
 
115
115
  ## About Mirego
116
116
 
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = 'https://github.com/mirego/emotions'
14
14
  spec.license = 'BSD 3-Clause'
15
15
 
16
- spec.files = `git ls-files`.split($/)
16
+ spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
@@ -22,6 +22,8 @@ Gem::Specification.new do |spec|
22
22
 
23
23
  spec.add_development_dependency 'rake'
24
24
  spec.add_development_dependency 'bundler', '~> 1.3'
25
- spec.add_development_dependency 'rspec', '~> 2.13'
25
+ spec.add_development_dependency 'rspec', '~> 3.1'
26
26
  spec.add_development_dependency 'sqlite3', '~> 1.3'
27
+ spec.add_development_dependency 'phare', '~> 0.7'
28
+ spec.add_development_dependency 'rubocop', '0.31'
27
29
  end
@@ -18,25 +18,25 @@ module Emotions
18
18
  end
19
19
 
20
20
  def self.inject_into_active_record
21
- @inject_into_active_record ||= Proc.new do
21
+ @inject_into_active_record ||= proc do
22
22
  def self.acts_as_emotive
23
- self.send :include, Emotions::Emotive
23
+ send :include, Emotions::Emotive
24
24
  end
25
25
 
26
26
  def self.acts_as_emotional
27
- self.send :include, Emotions::Emotional
27
+ send :include, Emotions::Emotional
28
28
  end
29
29
 
30
30
  def self.acts_as_emotion
31
- self.send :include, Emotions::Emotion
31
+ send :include, Emotions::Emotion
32
32
  end
33
33
 
34
34
  def self.emotional?
35
- @emotional ||= self.ancestors.include?(Emotions::Emotional)
35
+ @emotional ||= ancestors.include?(Emotions::Emotional)
36
36
  end
37
37
 
38
38
  def self.emotive?
39
- @emotive ||= self.ancestors.include?(Emotions::Emotive)
39
+ @emotive ||= ancestors.include?(Emotions::Emotive)
40
40
  end
41
41
  end
42
42
  end
@@ -25,13 +25,13 @@ module Emotions
25
25
 
26
26
  # Update the `<emotion>_emotions_counter` for the emotive record
27
27
  def update_emotion_counter
28
- self.emotive.update_emotion_counter(self.emotion)
29
- self.emotional.update_emotion_counter(self.emotion)
28
+ emotive.update_emotion_counter(emotion)
29
+ emotional.update_emotion_counter(emotion)
30
30
  end
31
31
 
32
32
  # Make sure we're using an allowed emotion name
33
33
  def ensure_valid_emotion_name
34
- unless Emotions.emotions.include?(self.emotion.try(:to_sym))
34
+ unless Emotions.emotions.include?(emotion.try(:to_sym))
35
35
  errors.add :emotion, I18n.t(:invalid, scope: [:errors, :messages])
36
36
  end
37
37
  end
@@ -12,7 +12,7 @@ module Emotions
12
12
 
13
13
  # @private
14
14
  def _emotions_about(emotive)
15
- self.emotions.where(emotive_id: emotive.id, emotive_type: emotive.class.name)
15
+ emotions.where(emotive_id: emotive.id, emotive_type: emotive.class.name)
16
16
  end
17
17
 
18
18
  # Return all emotions expressed by the emotional record
@@ -58,11 +58,21 @@ module Emotions
58
58
  def update_emotion_counter(emotion)
59
59
  attribute = "#{emotion}_emotions_count"
60
60
 
61
- if self.respond_to?(attribute)
62
- self.update_attribute(attribute, send("#{emotion}_about").count)
61
+ if respond_to?(attribute)
62
+ update_attribute(attribute, send("#{emotion}_about").count)
63
63
  end
64
64
  end
65
65
 
66
+ # Find if an emotion is expressed towards another record
67
+ #
68
+ # @example
69
+ # user = User.first
70
+ # picture = Picture.first
71
+ # user.express? :happy, picture
72
+ def express?(emotion, emotive)
73
+ _emotions_about(emotive).where(emotion: emotion).any?
74
+ end
75
+
66
76
  module ClassMethods
67
77
  # Return an `ActiveRecord::Relation` containing the emotional records
68
78
  # that expressed a specific emotion towards an emotive record
@@ -75,7 +85,7 @@ module Emotions
75
85
  # # => #<ActiveRecord::Relation [#<User id=1>]>
76
86
  def emotional_about(emotion, emotive)
77
87
  if emotive.class.emotive?
78
- emotional_ids = emotive.emotions.where(emotion: emotion).where(emotional_type: self.name).pluck(:emotional_id)
88
+ emotional_ids = emotive.emotions.where(emotion: emotion).where(emotional_type: name).pluck(:emotional_id)
79
89
  where(id: emotional_ids)
80
90
  else
81
91
  # ActiveRecord 4 supports `.none`, not ActiveRecord 3
@@ -83,6 +93,7 @@ module Emotions
83
93
  end
84
94
  end
85
95
 
96
+ # rubocop:disable MethodLength
86
97
  def define_emotion_methods(emotion)
87
98
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
88
99
  def #{emotion}_about?(emotive)
@@ -98,7 +109,7 @@ module Emotions
98
109
  end
99
110
 
100
111
  def #{emotion}_about(emotive = nil)
101
- relation = emotive.nil? ? self.emotions : _emotions_about(emotive)
112
+ relation = emotive.nil? ? emotions : _emotions_about(emotive)
102
113
  relation.where(emotion: #{emotion.to_s.inspect})
103
114
  end
104
115
 
@@ -125,6 +136,7 @@ module Emotions
125
136
  alias #{emotion}_over #{emotion}_about
126
137
  RUBY
127
138
  end
139
+ # rubocop:enable MethodLength
128
140
  end
129
141
  end
130
142
  end
@@ -14,8 +14,8 @@ module Emotions
14
14
  def update_emotion_counter(emotion)
15
15
  attribute = "#{emotion}_emotions_count"
16
16
 
17
- if self.respond_to?(attribute)
18
- self.update_attribute(attribute, self.send("#{emotion}_about").count)
17
+ if respond_to?(attribute)
18
+ update_attribute(attribute, send("#{emotion}_about").count)
19
19
  end
20
20
  end
21
21
 
@@ -24,7 +24,7 @@ module Emotions
24
24
  def define_emotion_methods(emotion)
25
25
  class_eval <<-RUBY, __FILE__, __LINE__ + 1
26
26
  def #{emotion}_about
27
- self.emotions.where(emotion: #{emotion.to_s.inspect})
27
+ emotions.where(emotion: #{emotion.to_s.inspect})
28
28
  end
29
29
  alias #{emotion}_with #{emotion}_about
30
30
  alias #{emotion}_over #{emotion}_about
@@ -3,7 +3,7 @@ require 'rails'
3
3
 
4
4
  module Emotions
5
5
  class Railtie < Rails::Railtie
6
- initializer 'emotions.active_record' do |app|
6
+ initializer 'emotions.active_record' do
7
7
  ActiveSupport.on_load :active_record, {}, &Emotions.inject_into_active_record
8
8
  end
9
9
  end
@@ -1,3 +1,3 @@
1
1
  module Emotions
2
- VERSION = '0.3'
2
+ VERSION = '0.3.1'
3
3
  end
@@ -13,7 +13,7 @@ module Emotions
13
13
  if ActiveRecord::Base.timestamped_migrations
14
14
  Time.now.utc.strftime('%Y%m%d%H%M%S')
15
15
  else
16
- '%.3d' % (current_migration_number(dirname) + 1)
16
+ '%.3d'.format(current_migration_number(dirname) + 1)
17
17
  end
18
18
  end
19
19
 
@@ -22,7 +22,7 @@ module Emotions
22
22
  end
23
23
 
24
24
  def create_model_file
25
- template "model.rb", "app/models/emotion.rb"
25
+ template 'model.rb', 'app/models/emotion.rb'
26
26
  end
27
27
  end
28
28
  end
@@ -10,7 +10,7 @@ class AddEmotions < ActiveRecord::Migration
10
10
  # The type of emotion
11
11
  t.string :emotion
12
12
 
13
- t.timestamps
13
+ t.timestamps null: false
14
14
  end
15
15
 
16
16
  add_index :emotions, [:emotional_type, :emotional_id, :emotive_type, :emotive_id, :emotion], unique: true, name: 'index_emotions_by_emotional_emotive_and_emotion'
@@ -21,40 +21,40 @@ describe Emotions::Emotion do
21
21
  subject { Emotion.new(emotion: 'happy', emotive: Picture.create) }
22
22
  before { subject.valid? }
23
23
 
24
- it { should_not be_valid }
25
- it { expect(subject.errors.full_messages).to eql ["Emotional can't be blank", "Emotional is invalid"] }
24
+ it { expect(subject).not_to be_valid }
25
+ it { expect(subject.errors.full_messages).to eql ['Emotional can\'t be blank', 'Emotional is invalid'] }
26
26
  end
27
27
 
28
28
  describe :validate_presence_of_emotive do
29
29
  subject { Emotion.new(emotion: 'happy', emotional: User.create) }
30
30
  before { subject.valid? }
31
31
 
32
- it { should_not be_valid }
33
- it { expect(subject.errors.full_messages).to eql ["Emotive can't be blank", "Emotive is invalid"] }
32
+ it { expect(subject).not_to be_valid }
33
+ it { expect(subject.errors.full_messages).to eql ['Emotive can\'t be blank', 'Emotive is invalid'] }
34
34
  end
35
35
 
36
36
  describe :validate_inclusion_of_emotion do
37
37
  subject { Emotion.new(emotion: 'mad', emotional: User.create, emotive: Picture.create) }
38
38
  before { subject.valid? }
39
39
 
40
- it { should_not be_valid }
41
- it { expect(subject.errors.full_messages).to eql ["Emotion is invalid"] }
40
+ it { expect(subject).not_to be_valid }
41
+ it { expect(subject.errors.full_messages).to eql ['Emotion is invalid'] }
42
42
  end
43
43
 
44
44
  describe :validate_class_of_emotive do
45
45
  subject { Emotion.new(emotion: 'happy', emotional: User.create, emotive: User.create) }
46
46
  before { subject.valid? }
47
47
 
48
- it { should_not be_valid }
49
- it { expect(subject.errors.full_messages).to eql ["Emotive is invalid"] }
48
+ it { expect(subject).not_to be_valid }
49
+ it { expect(subject.errors.full_messages).to eql ['Emotive is invalid'] }
50
50
  end
51
51
 
52
52
  describe :validate_class_of_emotional do
53
53
  subject { Emotion.new(emotion: 'happy', emotional: Picture.create, emotive: Picture.create) }
54
54
  before { subject.valid? }
55
55
 
56
- it { should_not be_valid }
57
- it { expect(subject.errors.full_messages).to eql ["Emotional is invalid"] }
56
+ it { expect(subject).not_to be_valid }
57
+ it { expect(subject.errors.full_messages).to eql ['Emotional is invalid'] }
58
58
  end
59
59
  end
60
60
 
@@ -65,9 +65,9 @@ describe Emotions::Emotion do
65
65
  let(:emotion) { Emotion.new(emotion: 'happy', emotional: user, emotive: picture) }
66
66
 
67
67
  before do
68
- picture.should_receive(:update_emotion_counter).with('happy').once
69
- user.should_receive(:update_emotion_counter).with('happy').once
70
- emotion.should_receive(:update_emotion_counter).once.and_call_original
68
+ expect(picture).to receive(:update_emotion_counter).with('happy').once
69
+ expect(user).to receive(:update_emotion_counter).with('happy').once
70
+ expect(emotion).to receive(:update_emotion_counter).once.and_call_original
71
71
  end
72
72
 
73
73
  it { emotion.save! }
@@ -80,9 +80,9 @@ describe Emotions::Emotion do
80
80
 
81
81
  before do
82
82
  emotion.save!
83
- picture.should_receive(:update_emotion_counter).with('happy').once
84
- user.should_receive(:update_emotion_counter).with('happy').once
85
- emotion.should_receive(:update_emotion_counter).once.and_call_original
83
+ expect(picture).to receive(:update_emotion_counter).with('happy').once
84
+ expect(user).to receive(:update_emotion_counter).with('happy').once
85
+ expect(emotion).to receive(:update_emotion_counter).once.and_call_original
86
86
  end
87
87
 
88
88
  it { emotion.destroy }
@@ -22,23 +22,23 @@ describe Emotions::Emotional do
22
22
  describe :Aliases do
23
23
  subject { user }
24
24
 
25
- it { should respond_to :happy? }
25
+ it { expect(subject).to respond_to :happy? }
26
26
 
27
- it { should respond_to :happy_about? }
28
- it { should respond_to :happy_with? }
29
- it { should respond_to :happy_over? }
27
+ it { expect(subject).to respond_to :happy_about? }
28
+ it { expect(subject).to respond_to :happy_with? }
29
+ it { expect(subject).to respond_to :happy_over? }
30
30
 
31
- it { should respond_to :happy_about! }
32
- it { should respond_to :happy_with! }
33
- it { should respond_to :happy_over! }
31
+ it { expect(subject).to respond_to :happy_about! }
32
+ it { expect(subject).to respond_to :happy_with! }
33
+ it { expect(subject).to respond_to :happy_over! }
34
34
 
35
- it { should respond_to :no_longer_happy_about! }
36
- it { should respond_to :no_longer_happy_with! }
37
- it { should respond_to :no_longer_happy_over! }
35
+ it { expect(subject).to respond_to :no_longer_happy_about! }
36
+ it { expect(subject).to respond_to :no_longer_happy_with! }
37
+ it { expect(subject).to respond_to :no_longer_happy_over! }
38
38
 
39
- it { should respond_to :happy_about }
40
- it { should respond_to :happy_with }
41
- it { should respond_to :happy_over }
39
+ it { expect(subject).to respond_to :happy_about }
40
+ it { expect(subject).to respond_to :happy_with }
41
+ it { expect(subject).to respond_to :happy_over }
42
42
  end
43
43
 
44
44
  describe :emotions_about do
@@ -59,7 +59,7 @@ describe Emotions::Emotional do
59
59
 
60
60
  context 'for invalid emotive' do
61
61
  it { expect(user.emotions_about(user)).to be_empty }
62
- it { expect{ user.emotions_about(user) }.to_not raise_error }
62
+ it { expect { user.emotions_about(user) }.to_not raise_error }
63
63
  end
64
64
  end
65
65
 
@@ -67,16 +67,16 @@ describe Emotions::Emotional do
67
67
  let(:picture) { Picture.create }
68
68
 
69
69
  context 'with valid emotive and emotion' do
70
- it { expect{ user.express! :happy, picture }.to change{ Emotion.count }.from(0).to(1) }
71
- it { expect{ user.express! :happy, picture }.to change{ user.happy_about? picture }.from(false).to(true) }
70
+ it { expect { user.express! :happy, picture }.to change { Emotion.count }.from(0).to(1) }
71
+ it { expect { user.express! :happy, picture }.to change { user.happy_about? picture }.from(false).to(true) }
72
72
  end
73
73
 
74
74
  context 'with invalid emotive' do
75
- it { expect{ user.express! :happy, user }.to raise_error(Emotions::InvalidEmotion) }
75
+ it { expect { user.express! :happy, user }.to raise_error(Emotions::InvalidEmotion) }
76
76
  end
77
77
 
78
78
  context 'with invalid emotion' do
79
- it { expect{ user.express! :mad, picture }.to raise_error(Emotions::InvalidEmotion) }
79
+ it { expect { user.express! :mad, picture }.to raise_error(Emotions::InvalidEmotion) }
80
80
  end
81
81
  end
82
82
 
@@ -85,16 +85,30 @@ describe Emotions::Emotional do
85
85
  before { user.happy_about!(picture) }
86
86
 
87
87
  context 'with valid emotive and emotion' do
88
- it { expect{ user.no_longer_express! :happy, picture }.to change{ Emotion.count }.from(1).to(0) }
89
- it { expect{ user.no_longer_express! :happy, picture }.to change{ user.happy_about? picture }.from(true).to(false) }
88
+ it { expect { user.no_longer_express! :happy, picture }.to change { Emotion.count }.from(1).to(0) }
89
+ it { expect { user.no_longer_express! :happy, picture }.to change { user.happy_about? picture }.from(true).to(false) }
90
90
  end
91
91
 
92
92
  context 'with invalid emotive' do
93
- it { expect{ user.no_longer_express! :happy, user }.to_not raise_error }
93
+ it { expect { user.no_longer_express! :happy, user }.to_not raise_error }
94
94
  end
95
95
 
96
96
  context 'with invalid emotion' do
97
- it { expect{ user.no_longer_express! :mad, user }.to_not raise_error }
97
+ it { expect { user.no_longer_express! :mad, user }.to_not raise_error }
98
+ end
99
+ end
100
+
101
+ describe :express? do
102
+ let(:picture) { Picture.create }
103
+
104
+ context 'when expressed' do
105
+ before { user.happy_about!(picture) }
106
+
107
+ it { expect(user.express? :happy, picture).to be_truthy }
108
+ end
109
+
110
+ context 'when not expressed' do
111
+ it { expect(user.express? :happy, picture).to be_falsey }
98
112
  end
99
113
  end
100
114
 
@@ -105,12 +119,12 @@ describe Emotions::Emotional do
105
119
  let(:other_picture) { Picture.create }
106
120
 
107
121
  context 'with valid emotive' do
108
- it { expect(user.happy_about? picture).to be_true }
109
- it { expect(user.happy_about? other_picture).to be_false }
122
+ it { expect(user.happy_about? picture).to be_truthy }
123
+ it { expect(user.happy_about? other_picture).to be_falsey }
110
124
  end
111
125
 
112
126
  context 'with invalid emotive' do
113
- it { expect{ user.happy_about? user }.to_not raise_error }
127
+ it { expect { user.happy_about? user }.to_not raise_error }
114
128
  end
115
129
  end
116
130
 
@@ -118,12 +132,12 @@ describe Emotions::Emotional do
118
132
  let(:picture) { Picture.create }
119
133
 
120
134
  context 'with valid emotive' do
121
- it { expect{ user.happy_about! picture }.to change{ Emotion.count }.from(0).to(1) }
122
- it { expect{ user.happy_about! picture }.to change{ user.happy_about? picture }.from(false).to(true) }
135
+ it { expect { user.happy_about! picture }.to change { Emotion.count }.from(0).to(1) }
136
+ it { expect { user.happy_about! picture }.to change { user.happy_about? picture }.from(false).to(true) }
123
137
  end
124
138
 
125
139
  context 'with invalid emotive' do
126
- it { expect{ user.happy_about! user }.to raise_error(Emotions::InvalidEmotion) }
140
+ it { expect { user.happy_about! user }.to raise_error(Emotions::InvalidEmotion) }
127
141
  end
128
142
  end
129
143
 
@@ -132,24 +146,22 @@ describe Emotions::Emotional do
132
146
  let(:picture) { Picture.create }
133
147
 
134
148
  context 'with valid emotive' do
135
- it { expect{ user.no_longer_happy_about! picture }.to change{ Emotion.count }.from(1).to(0) }
136
- it { expect{ user.no_longer_happy_about! picture }.to change{ user.happy_about? picture }.from(true).to(false) }
149
+ it { expect { user.no_longer_happy_about! picture }.to change { Emotion.count }.from(1).to(0) }
150
+ it { expect { user.no_longer_happy_about! picture }.to change { user.happy_about? picture }.from(true).to(false) }
137
151
  end
138
152
 
139
153
  context 'with invalid emotive' do
140
154
  it { expect(user.no_longer_happy_about! user).to be_nil }
141
- it { expect{ user.no_longer_happy_about! user }.to_not raise_error }
155
+ it { expect { user.no_longer_happy_about! user }.to_not raise_error }
142
156
  end
143
157
  end
144
158
 
145
159
  describe :update_emotion_counter do
146
160
  let(:user) { User.create }
147
- let(:relation) do
148
- double.tap { |double| double.stub(:count).and_return(42) }
149
- end
161
+ let(:relation) { double(count: 42) }
150
162
 
151
163
  before do
152
- User.any_instance.stub(:happy_about).and_return(relation)
164
+ allow_any_instance_of(User).to receive(:happy_about).and_return(relation)
153
165
  user.update_emotion_counter(:happy)
154
166
  end
155
167
 
@@ -162,9 +174,9 @@ describe Emotions::Emotional do
162
174
  describe :Aliases do
163
175
  subject { user.class }
164
176
 
165
- it { should respond_to :happy_about }
166
- it { should respond_to :happy_with }
167
- it { should respond_to :happy_over }
177
+ it { expect(subject).to respond_to :happy_about }
178
+ it { expect(subject).to respond_to :happy_with }
179
+ it { expect(subject).to respond_to :happy_over }
168
180
  end
169
181
 
170
182
  describe :DynamicMethods do
@@ -185,7 +197,7 @@ describe Emotions::Emotional do
185
197
 
186
198
  context 'with invalid emotive' do
187
199
  it { expect(User.happy_about(user).to_a).to be_empty }
188
- it { expect{ User.happy_about(user).to_a }.to_not raise_error }
200
+ it { expect { User.happy_about(user).to_a }.to_not raise_error }
189
201
  end
190
202
  end
191
203
  end
@@ -20,12 +20,10 @@ describe Emotions::Emotive do
20
20
 
21
21
  describe :InstanceMethods do
22
22
  describe :update_emotion_counter do
23
- let(:relation) do
24
- double.tap { |double| double.stub(:count).and_return(42) }
25
- end
23
+ let(:relation) { double(count: 42) }
26
24
 
27
25
  before do
28
- Picture.any_instance.stub(:happy_about).and_return(relation)
26
+ allow_any_instance_of(Picture).to receive(:happy_about).and_return(relation)
29
27
  picture.update_emotion_counter(:happy)
30
28
  end
31
29
 
@@ -1,4 +1,4 @@
1
- $:.unshift File.expand_path('../../lib', __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
2
 
3
3
  require 'rspec'
4
4
  require 'sqlite3'
@@ -16,6 +16,11 @@ RSpec.configure do |config|
16
16
  config.include DatabaseMacros
17
17
  config.include ModelMacros
18
18
 
19
+ # Disable `should` syntax
20
+ config.expect_with :rspec do |c|
21
+ c.syntax = :expect
22
+ end
23
+
19
24
  config.before(:each) do
20
25
  # Create the SQLite database
21
26
  setup_database
@@ -5,7 +5,7 @@ module DatabaseMacros
5
5
  klass = Class.new(ActiveRecord::Migration)
6
6
 
7
7
  # Create a new `up` that executes the argument
8
- klass.send(:define_method, :up) { self.instance_exec(&block) }
8
+ klass.send(:define_method, :up) { instance_exec(&block) }
9
9
 
10
10
  # Create a new instance of it and execute its `up` method
11
11
  klass.new.up
@@ -28,7 +28,7 @@ module DatabaseMacros
28
28
  end
29
29
 
30
30
  def cleanup_database
31
- FileUtils.rm(DatabaseMacros.database_file) if File.exists?(DatabaseMacros.database_file)
31
+ FileUtils.rm(DatabaseMacros.database_file) if File.exist?(DatabaseMacros.database_file)
32
32
  end
33
33
 
34
34
  # Run the built-in migration
metadata CHANGED
@@ -1,85 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emotions
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.3'
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rémi Prévost
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-17 00:00:00.000000000 Z
11
+ date: 2015-05-22 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.0.0
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.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
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: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.3'
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: '1.3'
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
- version: '2.13'
61
+ version: '3.1'
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
- version: '2.13'
68
+ version: '3.1'
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'
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'
83
+ - !ruby/object:Gem::Dependency
84
+ name: phare
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: '0.7'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '0.7'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: '0.31'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: '0.31'
83
111
  description: Emotions is a Ruby library that allows ActiveRecord records to express
84
112
  (and hopefully store) emotions about other records.
85
113
  email:
@@ -88,9 +116,10 @@ executables: []
88
116
  extensions: []
89
117
  extra_rdoc_files: []
90
118
  files:
91
- - ".gitignore"
92
- - ".rspec"
93
- - ".travis.yml"
119
+ - .gitignore
120
+ - .rspec
121
+ - .rubocop.yml
122
+ - .travis.yml
94
123
  - Gemfile
95
124
  - LICENSE.md
96
125
  - README.md
@@ -123,17 +152,17 @@ require_paths:
123
152
  - lib
124
153
  required_ruby_version: !ruby/object:Gem::Requirement
125
154
  requirements:
126
- - - ">="
155
+ - - '>='
127
156
  - !ruby/object:Gem::Version
128
157
  version: '0'
129
158
  required_rubygems_version: !ruby/object:Gem::Requirement
130
159
  requirements:
131
- - - ">="
160
+ - - '>='
132
161
  - !ruby/object:Gem::Version
133
162
  version: '0'
134
163
  requirements: []
135
164
  rubyforge_project:
136
- rubygems_version: 2.2.2
165
+ rubygems_version: 2.0.14
137
166
  signing_key:
138
167
  specification_version: 4
139
168
  summary: Emotions is a Ruby library that allows ActiveRecord records to express (and