hertz 1.0.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +27 -42
  3. data/Rakefile +5 -3
  4. data/app/models/hertz/delivery.rb +1 -0
  5. data/app/models/hertz/notification.rb +2 -0
  6. data/db/migrate/20160415174901_create_hertz_notifications.rb +1 -1
  7. data/db/migrate/20160627084018_create_hertz_notification_deliveries.rb +1 -1
  8. data/db/migrate/20160628084342_rename_notification_deliveries_to_deliveries.rb +1 -1
  9. data/lib/generators/hertz/install_generator.rb +2 -1
  10. data/lib/generators/hertz/templates/initializer.rb +1 -0
  11. data/lib/hertz.rb +1 -0
  12. data/lib/hertz/engine.rb +1 -0
  13. data/lib/hertz/notifiable.rb +1 -0
  14. data/lib/hertz/notification_deliverer.rb +2 -1
  15. data/lib/hertz/version.rb +2 -1
  16. data/spec/dummy/config/database.travis.yml +4 -0
  17. data/spec/factories/hertz/deliveries.rb +3 -2
  18. data/spec/factories/hertz/notifications.rb +3 -2
  19. data/spec/factories/users.rb +2 -1
  20. data/spec/hertz/hertz_spec.rb +2 -1
  21. data/spec/hertz/notifiable_spec.rb +25 -26
  22. data/spec/hertz/notification_deliverer_spec.rb +40 -47
  23. data/spec/models/hertz/notification_spec.rb +67 -57
  24. data/spec/spec_helper.rb +3 -0
  25. data/spec/support/factory_bot.rb +5 -0
  26. metadata +57 -72
  27. data/app/assets/javascripts/hertz/application.js +0 -13
  28. data/app/assets/stylesheets/hertz/application.css +0 -15
  29. data/app/controllers/hertz/application_controller.rb +0 -6
  30. data/app/helpers/hertz/application_helper.rb +0 -5
  31. data/app/views/layouts/hertz/application.html.erb +0 -14
  32. data/spec/dummy/config/database.yml +0 -19
  33. data/spec/dummy/log/development.log +0 -61
  34. data/spec/dummy/log/test.log +0 -217
  35. data/spec/examples.txt +0 -20
  36. data/spec/models/hertz/delivery_spec.rb +0 -12
  37. data/spec/support/factory_girl.rb +0 -5
  38. data/spec/support/shoulda.rb +0 -8
@@ -1,81 +1,91 @@
1
1
  # frozen_string_literal: true
2
- module Hertz
3
- RSpec.describe Notification do
4
- subject { build(:notification) }
5
-
6
- describe '#read?' do
7
- it 'returns whether read_at is present' do
8
- expect {
9
- subject.read_at = Time.zone.now
10
- }.to change(subject, :read?).from(false).to(true)
11
- end
2
+
3
+ RSpec.describe Hertz::Notification do
4
+ subject { build(:notification) }
5
+
6
+ describe '#read?' do
7
+ it 'returns whether read_at is present' do
8
+ expect {
9
+ subject.read_at = Time.zone.now
10
+ }.to change(subject, :read?).from(false).to(true)
12
11
  end
12
+ end
13
13
 
14
- describe '#unread?' do
15
- it 'returns whether read_at is nil' do
16
- expect {
17
- subject.read_at = Time.zone.now
18
- }.to change(subject, :unread?).from(true).to(false)
19
- end
14
+ describe '#unread?' do
15
+ it 'returns whether read_at is nil' do
16
+ expect {
17
+ subject.read_at = Time.zone.now
18
+ }.to change(subject, :unread?).from(true).to(false)
20
19
  end
20
+ end
21
21
 
22
- describe '#mark_as_read' do
23
- subject { create(:notification) }
22
+ describe '#mark_as_read' do
23
+ subject { create(:notification) }
24
24
 
25
- it 'touches read_at' do
26
- expect {
27
- subject.mark_as_read
28
- }.to change(subject, :read_at).to(
29
- an_instance_of(ActiveSupport::TimeWithZone)
30
- )
31
- end
25
+ it 'touches read_at' do
26
+ expect {
27
+ subject.mark_as_read
28
+ }.to change(subject, :read_at).to(
29
+ an_instance_of(ActiveSupport::TimeWithZone)
30
+ )
32
31
  end
32
+ end
33
33
 
34
- describe '#mark_as_unread' do
35
- subject { create(:notification, :read) }
34
+ describe '#mark_as_unread' do
35
+ subject { create(:notification, :read) }
36
36
 
37
- it 'nullifies read_at' do
38
- expect {
39
- subject.mark_as_unread
40
- }.to change(subject, :read_at).to(nil)
41
- end
37
+ it 'nullifies read_at' do
38
+ expect {
39
+ subject.mark_as_unread
40
+ }.to change(subject, :read_at).to(nil)
42
41
  end
42
+ end
43
43
 
44
- describe '#delivered_with?' do
45
- subject { create(:notification) }
44
+ describe '#delivered_with?' do
45
+ subject { create(:notification) }
46
46
 
47
- it 'returns whether it has been delivered with that courier' do
48
- expect {
49
- create(:delivery, notification: subject, courier: :test)
50
- }.to change { subject.delivered_with?(:test) }.from(false).to(true)
51
- end
47
+ it 'returns whether it has been delivered with that courier' do
48
+ expect {
49
+ create(:delivery, notification: subject, courier: :test)
50
+ }.to change { subject.delivered_with?(:test) }.from(false).to(true)
52
51
  end
52
+ end
53
53
 
54
- describe '#mark_delivered_with' do
55
- subject { create(:notification) }
54
+ describe '#mark_delivered_with' do
55
+ subject { create(:notification) }
56
56
 
57
- it 'creates a delivery for that courier' do
58
- expect {
59
- subject.mark_delivered_with(:test)
60
- }.to change(subject.deliveries, :count).by(1)
61
- end
57
+ it 'creates a delivery for that courier' do
58
+ expect {
59
+ subject.mark_delivered_with(:test)
60
+ }.to change(subject.deliveries, :count).by(1)
62
61
  end
62
+ end
63
+
64
+ describe '.read' do
65
+ before { create(:notification) }
63
66
 
64
- describe '.unread' do
65
- let!(:unread_notification) { create(:notification) }
66
- let!(:read_notification) { create(:notification, :read) }
67
+ let!(:read_notification) { create(:notification, :read) }
67
68
 
68
- it 'returns the unread notifications' do
69
- expect(described_class.unread).to eq([unread_notification])
70
- end
69
+ it 'returns the unread notifications' do
70
+ expect(described_class.read).to eq([read_notification])
71
71
  end
72
+ end
73
+
74
+ describe '.unread' do
75
+ let!(:unread_notification) { create(:notification) }
72
76
 
73
- it 'delivers itself upon creation' do
74
- expect(Hertz::NotificationDeliverer).to receive(:deliver)
75
- .with(subject)
76
- .once
77
+ before { create(:notification, :read) }
77
78
 
78
- subject.save!
79
+ it 'returns the unread notifications' do
80
+ expect(described_class.unread).to eq([unread_notification])
79
81
  end
80
82
  end
83
+
84
+ it 'delivers itself upon creation' do
85
+ expect(Hertz::NotificationDeliverer).to receive(:deliver)
86
+ .with(subject)
87
+ .once
88
+
89
+ subject.save!
90
+ end
81
91
  end
@@ -16,6 +16,9 @@
16
16
  # users commonly want.
17
17
  #
18
18
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
19
+ require 'coveralls'
20
+ Coveralls.wear!
21
+
19
22
  RSpec.configure do |config|
20
23
  # rspec-expectations config goes here. You can use an alternate
21
24
  # assertion/expectation library such as wrong or the stdlib/minitest
@@ -0,0 +1,5 @@
1
+ require 'factory_bot_rails'
2
+
3
+ RSpec.configure do |config|
4
+ config.include FactoryBot::Syntax::Methods
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hertz
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Desantis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-19 00:00:00.000000000 Z
11
+ date: 2018-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -31,7 +31,7 @@ dependencies:
31
31
  - !ruby/object:Gem::Version
32
32
  version: 6.0.0
33
33
  - !ruby/object:Gem::Dependency
34
- name: rubocop
34
+ name: coveralls
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
@@ -45,7 +45,7 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
- name: rubocop-rspec
48
+ name: database_cleaner
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
@@ -59,7 +59,7 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  - !ruby/object:Gem::Dependency
62
- name: rspec-rails
62
+ name: factory_bot_rails
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
@@ -73,7 +73,7 @@ dependencies:
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  - !ruby/object:Gem::Dependency
76
- name: fuubar
76
+ name: faker
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
@@ -87,7 +87,7 @@ dependencies:
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
- name: faker
90
+ name: fuubar
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - ">="
@@ -101,21 +101,21 @@ dependencies:
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  - !ruby/object:Gem::Dependency
104
- name: database_cleaner
104
+ name: pg
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ">="
107
+ - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0'
109
+ version: '0.21'
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ">="
114
+ - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0'
116
+ version: '0.21'
117
117
  - !ruby/object:Gem::Dependency
118
- name: factory_girl_rails
118
+ name: rspec-rails
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - ">="
@@ -129,7 +129,7 @@ dependencies:
129
129
  - !ruby/object:Gem::Version
130
130
  version: '0'
131
131
  - !ruby/object:Gem::Dependency
132
- name: pg
132
+ name: rubocop
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
135
  - - ">="
@@ -143,7 +143,7 @@ dependencies:
143
143
  - !ruby/object:Gem::Version
144
144
  version: '0'
145
145
  - !ruby/object:Gem::Dependency
146
- name: shoulda-matchers
146
+ name: rubocop-rspec
147
147
  requirement: !ruby/object:Gem::Requirement
148
148
  requirements:
149
149
  - - ">="
@@ -166,13 +166,8 @@ files:
166
166
  - MIT-LICENSE
167
167
  - README.md
168
168
  - Rakefile
169
- - app/assets/javascripts/hertz/application.js
170
- - app/assets/stylesheets/hertz/application.css
171
- - app/controllers/hertz/application_controller.rb
172
- - app/helpers/hertz/application_helper.rb
173
169
  - app/models/hertz/delivery.rb
174
170
  - app/models/hertz/notification.rb
175
- - app/views/layouts/hertz/application.html.erb
176
171
  - config/routes.rb
177
172
  - db/migrate/20160415174901_create_hertz_notifications.rb
178
173
  - db/migrate/20160627084018_create_hertz_notification_deliveries.rb
@@ -202,7 +197,7 @@ files:
202
197
  - spec/dummy/config/application.rb
203
198
  - spec/dummy/config/boot.rb
204
199
  - spec/dummy/config/database.example.yml
205
- - spec/dummy/config/database.yml
200
+ - spec/dummy/config/database.travis.yml
206
201
  - spec/dummy/config/environment.rb
207
202
  - spec/dummy/config/environments/development.rb
208
203
  - spec/dummy/config/environments/production.rb
@@ -226,27 +221,22 @@ files:
226
221
  - spec/dummy/db/migrate/20160627084119_create_hertz_notification_deliveries.hertz.rb
227
222
  - spec/dummy/db/migrate/20160628084413_rename_notification_deliveries_to_deliveries.hertz.rb
228
223
  - spec/dummy/db/schema.rb
229
- - spec/dummy/log/development.log
230
- - spec/dummy/log/test.log
231
224
  - spec/dummy/public/404.html
232
225
  - spec/dummy/public/422.html
233
226
  - spec/dummy/public/500.html
234
227
  - spec/dummy/public/favicon.ico
235
- - spec/examples.txt
236
228
  - spec/factories/hertz/deliveries.rb
237
229
  - spec/factories/hertz/notifications.rb
238
230
  - spec/factories/users.rb
239
231
  - spec/hertz/hertz_spec.rb
240
232
  - spec/hertz/notifiable_spec.rb
241
233
  - spec/hertz/notification_deliverer_spec.rb
242
- - spec/models/hertz/delivery_spec.rb
243
234
  - spec/models/hertz/notification_spec.rb
244
235
  - spec/rails_helper.rb
245
236
  - spec/spec_helper.rb
246
237
  - spec/support/database_cleaner.rb
247
- - spec/support/factory_girl.rb
238
+ - spec/support/factory_bot.rb
248
239
  - spec/support/faker.rb
249
- - spec/support/shoulda.rb
250
240
  homepage: https://github.com/alessandro1997/hertz
251
241
  licenses:
252
242
  - MIT
@@ -267,71 +257,66 @@ required_rubygems_version: !ruby/object:Gem::Requirement
267
257
  version: '0'
268
258
  requirements: []
269
259
  rubyforge_project:
270
- rubygems_version: 2.6.8
260
+ rubygems_version: 2.7.7
271
261
  signing_key:
272
262
  specification_version: 4
273
263
  summary: A Rails engine for in-app notifications.
274
264
  test_files:
275
- - spec/support/factory_girl.rb
276
- - spec/support/database_cleaner.rb
277
- - spec/support/faker.rb
278
- - spec/support/shoulda.rb
279
- - spec/dummy/bin/rake
280
- - spec/dummy/bin/bundle
281
- - spec/dummy/bin/setup
282
- - spec/dummy/bin/rails
283
- - spec/dummy/README.rdoc
284
- - spec/dummy/log/test.log
285
- - spec/dummy/log/development.log
286
- - spec/dummy/Rakefile
287
- - spec/dummy/app/assets/javascripts/application.js
288
- - spec/dummy/app/assets/stylesheets/application.css
289
- - spec/dummy/app/helpers/application_helper.rb
265
+ - spec/spec_helper.rb
290
266
  - spec/dummy/app/models/test_notification.rb
291
267
  - spec/dummy/app/models/user.rb
268
+ - spec/dummy/app/controllers/application_controller.rb
292
269
  - spec/dummy/app/views/hertz/notification_mailer/test_notification.html.erb
293
270
  - spec/dummy/app/views/layouts/application.html.erb
294
- - spec/dummy/app/controllers/application_controller.rb
295
- - spec/dummy/config/application.rb
296
- - spec/dummy/config/routes.rb
271
+ - spec/dummy/app/assets/javascripts/application.js
272
+ - spec/dummy/app/assets/stylesheets/application.css
273
+ - spec/dummy/app/helpers/application_helper.rb
274
+ - spec/dummy/bin/rake
275
+ - spec/dummy/bin/setup
276
+ - spec/dummy/bin/bundle
277
+ - spec/dummy/bin/rails
297
278
  - spec/dummy/config/secrets.yml
298
- - spec/dummy/config/database.yml
299
- - spec/dummy/config/initializers/wrap_parameters.rb
300
- - spec/dummy/config/initializers/cookies_serializer.rb
301
- - spec/dummy/config/initializers/session_store.rb
302
- - spec/dummy/config/initializers/hertz.rb
303
- - spec/dummy/config/initializers/assets.rb
304
- - spec/dummy/config/initializers/mime_types.rb
305
- - spec/dummy/config/initializers/backtrace_silencers.rb
306
- - spec/dummy/config/initializers/inflections.rb
307
- - spec/dummy/config/initializers/filter_parameter_logging.rb
308
- - spec/dummy/config/environment.rb
279
+ - spec/dummy/config/routes.rb
309
280
  - spec/dummy/config/locales/en.yml
310
- - spec/dummy/config/environments/development.rb
281
+ - spec/dummy/config/database.example.yml
311
282
  - spec/dummy/config/environments/production.rb
283
+ - spec/dummy/config/environments/development.rb
312
284
  - spec/dummy/config/environments/test.rb
313
- - spec/dummy/config/database.example.yml
285
+ - spec/dummy/config/database.travis.yml
286
+ - spec/dummy/config/environment.rb
287
+ - spec/dummy/config/application.rb
314
288
  - spec/dummy/config/boot.rb
289
+ - spec/dummy/config/initializers/backtrace_silencers.rb
290
+ - spec/dummy/config/initializers/mime_types.rb
291
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
292
+ - spec/dummy/config/initializers/session_store.rb
293
+ - spec/dummy/config/initializers/wrap_parameters.rb
294
+ - spec/dummy/config/initializers/assets.rb
295
+ - spec/dummy/config/initializers/cookies_serializer.rb
296
+ - spec/dummy/config/initializers/hertz.rb
297
+ - spec/dummy/config/initializers/inflections.rb
298
+ - spec/dummy/config.ru
299
+ - spec/dummy/Rakefile
315
300
  - spec/dummy/public/favicon.ico
316
301
  - spec/dummy/public/422.html
317
- - spec/dummy/public/404.html
318
302
  - spec/dummy/public/500.html
303
+ - spec/dummy/public/404.html
304
+ - spec/dummy/db/schema.rb
319
305
  - spec/dummy/db/migrate/20160508094342_remove_email_from_users.rb
320
- - spec/dummy/db/migrate/20160418122437_add_email_to_users.rb
321
- - spec/dummy/db/migrate/20160415175358_create_hertz_notifications.hertz.rb
322
306
  - spec/dummy/db/migrate/20160628084413_rename_notification_deliveries_to_deliveries.hertz.rb
307
+ - spec/dummy/db/migrate/20160418122437_add_email_to_users.rb
323
308
  - spec/dummy/db/migrate/20160415175837_create_users.rb
309
+ - spec/dummy/db/migrate/20160415175358_create_hertz_notifications.hertz.rb
324
310
  - spec/dummy/db/migrate/20160627084119_create_hertz_notification_deliveries.hertz.rb
325
- - spec/dummy/db/schema.rb
326
- - spec/dummy/config.ru
327
- - spec/spec_helper.rb
328
- - spec/factories/hertz/notifications.rb
329
- - spec/factories/hertz/deliveries.rb
330
- - spec/factories/users.rb
331
- - spec/examples.txt
332
- - spec/models/hertz/notification_spec.rb
333
- - spec/models/hertz/delivery_spec.rb
311
+ - spec/dummy/README.rdoc
312
+ - spec/hertz/notifiable_spec.rb
334
313
  - spec/hertz/notification_deliverer_spec.rb
335
314
  - spec/hertz/hertz_spec.rb
336
- - spec/hertz/notifiable_spec.rb
315
+ - spec/models/hertz/notification_spec.rb
316
+ - spec/support/factory_bot.rb
317
+ - spec/support/faker.rb
318
+ - spec/support/database_cleaner.rb
319
+ - spec/factories/hertz/deliveries.rb
320
+ - spec/factories/hertz/notifications.rb
321
+ - spec/factories/users.rb
337
322
  - spec/rails_helper.rb
@@ -1,13 +0,0 @@
1
- // This is a manifest file that'll be compiled into application.js, which will include all the files
2
- // listed below.
3
- //
4
- // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
- // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
- //
7
- // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
- // compiled file.
9
- //
10
- // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
- // about supported directives.
12
- //
13
- //= require_tree .
@@ -1,15 +0,0 @@
1
- /*
2
- * This is a manifest file that'll be compiled into application.css, which will include all the files
3
- * listed below.
4
- *
5
- * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
- * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
- *
8
- * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
- * compiled file so the styles you add here take precedence over styles defined in any styles
10
- * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
- * file per style scope.
12
- *
13
- *= require_tree .
14
- *= require_self
15
- */