eventifier 0.0.14 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/README.textile +32 -4
  4. data/app/assets/javascripts/eventifier/notifications.coffee +29 -5
  5. data/app/assets/javascripts/eventifier/templates/dropdown.hamlc +1 -1
  6. data/app/assets/stylesheets/eventifier/notifications.scss +1 -1
  7. data/app/controllers/eventifier/preferences_controller.rb +7 -9
  8. data/app/helpers/eventifier/notification_helper.rb +1 -1
  9. data/app/helpers/eventifier/path_helper.rb +2 -2
  10. data/app/models/eventifier/event.rb +1 -3
  11. data/app/models/eventifier/notification.rb +0 -2
  12. data/app/models/eventifier/notification_setting.rb +0 -2
  13. data/app/views/eventifier/notifications/index.jbuilder +2 -2
  14. data/db/migrate/5_system_events.rb +9 -0
  15. data/eventifier.gemspec +7 -5
  16. data/lib/eventifier.rb +2 -0
  17. data/lib/eventifier/event_builder.rb +4 -1
  18. data/lib/eventifier/notification_translator.rb +27 -5
  19. data/lib/eventifier/notifier/notification_subscriber.rb +6 -6
  20. data/lib/eventifier/notifier/notifier.rb +5 -5
  21. data/lib/eventifier/preferences.rb +14 -0
  22. data/lib/eventifier/tracker.rb +7 -0
  23. data/lib/generators/eventifier/install/install_generator.rb +1 -1
  24. data/lib/generators/eventifier/install/templates/{events.en.yaml → events.en.yml} +3 -0
  25. data/spec/controllers/eventifier/notifications_controller_spec.rb +3 -1
  26. data/spec/controllers/eventifier/preferences_controller_spec.rb +5 -23
  27. data/spec/event_tracking_spec.rb +2 -2
  28. data/spec/eventifier/notification_translator_spec.rb +118 -0
  29. data/spec/eventifier/preferences_spec.rb +47 -10
  30. data/spec/eventifier/relationship_spec.rb +8 -8
  31. data/spec/eventifier_spec.rb +14 -10
  32. data/spec/helpers/eventifier/notification_helper_spec.rb +13 -13
  33. data/spec/helpers/eventifier/path_helper_spec.rb +3 -3
  34. data/spec/integration/eventifier_spec.rb +11 -11
  35. data/spec/integration/internationalisation_spec.rb +4 -4
  36. data/spec/integration/system_events_spec.rb +40 -0
  37. data/spec/models/eventifier/event_spec.rb +1 -1
  38. data/spec/models/eventifier/ghost_spec.rb +3 -4
  39. data/spec/models/eventifier/notification_spec.rb +3 -3
  40. data/spec/notifier/notification_mapping_spec.rb +3 -3
  41. metadata +61 -41
@@ -20,21 +20,21 @@ describe Eventifier::NotificationHelper do
20
20
  describe "#notification_message" do
21
21
  it "should return the I18n message for that event" do
22
22
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :create)
23
- helper.notification_message(event).should == "<strong class='user'>#{event.user.name}</strong> just created an Post - you should check it out"
23
+ expect(helper.notification_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> just created an Post - you should check it out"
24
24
  end
25
25
 
26
26
  it "should return a message specific to a single change if only 1 change has been made" do
27
27
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :update, :change_data => { :name => ["Fred", "Mike"] })
28
- helper.notification_message(event).should == "<strong class='user'>#{event.user.name}</strong> made a change to their Post"
28
+ expect(helper.notification_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> made a change to their Post"
29
29
  end
30
30
  it "should return a message specific to a particular field change if configuration is present" do
31
31
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :update, :change_data => { :deleted_at => [nil, Time.now] })
32
- helper.notification_message(event).should == "<strong class='user'>#{event.user.name}</strong> deleted their Post"
32
+ expect(helper.notification_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> deleted their Post"
33
33
  end
34
34
 
35
35
  it "should return a message specific to multiple changes if more than 1 change has been made" do
36
36
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :update, :change_data => { :name => ["Fred", "Mike"], :age => [55, 65] })
37
- helper.notification_message(event).should == "<strong class='user'>#{event.user.name}</strong> made some changes to their Post"
37
+ expect(helper.notification_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> made some changes to their Post"
38
38
  end
39
39
 
40
40
  it "should return the default I18n message if one doesn't exist" do
@@ -48,7 +48,7 @@ describe Eventifier::NotificationHelper do
48
48
  I18n.backend.store_translations :test, :notifications => @notification_strings
49
49
  I18n.with_locale("test") do
50
50
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :create)
51
- helper.notification_message(event).should == "<strong class='user'>#{event.user.name}</strong> created a <strong>Post</strong>"
51
+ expect(helper.notification_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> created a <strong>Post</strong>"
52
52
  end
53
53
  end
54
54
  end
@@ -67,12 +67,12 @@ describe Eventifier::NotificationHelper do
67
67
 
68
68
  it "should replace {{stuff}} with awesome" do
69
69
  message = "I'm really loving {{eventable.title}}"
70
- helper.replace_vars(message, event).should == "I'm really loving <strong>#{event.eventable.title}</strong>"
70
+ expect(helper.replace_vars(message, event)).to eq "I'm really loving <strong>#{event.eventable.title}</strong>"
71
71
  end
72
72
 
73
73
  it "should replace multiple {{stuff}} with multiple awesome" do
74
74
  message = "I'm really loving {{eventable.title}} and all {{eventable.class.name}}s"
75
- helper.replace_vars(message, event).should == "I'm really loving <strong>#{event.eventable.title}</strong> and all <strong>Post</strong>s"
75
+ expect(helper.replace_vars(message, event)).to eq "I'm really loving <strong>#{event.eventable.title}</strong> and all <strong>Post</strong>s"
76
76
  end
77
77
  end
78
78
 
@@ -81,8 +81,8 @@ describe Eventifier::NotificationHelper do
81
81
  it "should add some handy methods to an event instance" do
82
82
  event = Fabricate(:event)
83
83
  event = helper.load_event_for_template event
84
- event.object.should == event.eventable
85
- event.object_type.should == event.eventable_type
84
+ expect(event.object).to eq event.eventable
85
+ expect(event.object_type).to eq event.eventable_type
86
86
  end
87
87
 
88
88
  end
@@ -148,12 +148,12 @@ describe Eventifier::NotificationHelper do
148
148
 
149
149
  it "should replace {{stuff}} with awesome" do
150
150
  message = "I'm really loving {{eventable.title}}"
151
- helper.replace_vars(message, event).should == "I'm really loving <strong>#{event.eventable.title}</strong>"
151
+ expect(helper.replace_vars(message, event)).to eq "I'm really loving <strong>#{event.eventable.title}</strong>"
152
152
  end
153
153
 
154
154
  it "should replace multiple {{stuff}} with multiple awesome" do
155
155
  message = "I'm really loving {{eventable.title}} and all {{eventable.class.name}}s"
156
- helper.replace_vars(message, event).should == "I'm really loving <strong>#{event.eventable.title}</strong> and all <strong>Post</strong>s"
156
+ expect(helper.replace_vars(message, event)).to eq "I'm really loving <strong>#{event.eventable.title}</strong> and all <strong>Post</strong>s"
157
157
  end
158
158
  end
159
159
 
@@ -161,8 +161,8 @@ describe Eventifier::NotificationHelper do
161
161
  it "should add some handy methods to an event instance" do
162
162
  event = Fabricate(:event)
163
163
  event = helper.load_event_for_template event
164
- event.object.should == event.eventable
165
- event.object_type.should == event.eventable_type
164
+ expect(event.object).to eq event.eventable
165
+ expect(event.object_type).to eq event.eventable_type
166
166
  end
167
167
  end
168
168
  end
@@ -5,15 +5,15 @@ describe Eventifier::PathHelper do
5
5
 
6
6
  describe "partial_path" do
7
7
  it "returns an app view path with context in the path" do
8
- helper.partial_path(notification, :donkey).should == 'eventifier/donkey/notification'
8
+ expect( helper.partial_path(notification, :donkey)).to eq'eventifier/donkey/notification'
9
9
  end
10
10
 
11
11
  it "returns an app view if it's defined" do
12
- helper.partial_path(notification, :dropdown).should == 'eventifier/dropdown/awesome_object'
12
+ expect( helper.partial_path(notification, :dropdown)).to eq'eventifier/dropdown/awesome_object'
13
13
  end
14
14
 
15
15
  it "returns the default view if not defined" do
16
- helper.partial_path(notification).should == 'eventifier/notification'
16
+ expect( helper.partial_path(notification)).to eq'eventifier/notification'
17
17
  end
18
18
  end
19
19
  end
@@ -7,7 +7,7 @@ describe Eventifier do
7
7
  notify :readers, :on => [:create, :update]
8
8
  end
9
9
 
10
- Eventifier.tracked_classes.should == [Post]
10
+ expect(Eventifier.tracked_classes).to eq [Post]
11
11
  end
12
12
  end
13
13
 
@@ -45,18 +45,18 @@ describe 'event tracking' do
45
45
  it "does not store a notification for the post creator" do
46
46
  post.save
47
47
 
48
- Eventifier::Notification.where(
48
+ expect(Eventifier::Notification.where(
49
49
  :event_id => event.id, :user_id => owner.id
50
- ).count.should == 0
50
+ ).count).to eq 0
51
51
  end
52
52
 
53
53
  it "stores notifications for the reader" do
54
54
  post.save
55
55
 
56
56
  [reader1, reader2].each do |reader|
57
- Eventifier::Notification.where(
57
+ expect(Eventifier::Notification.where(
58
58
  :event_id => event.id, :user_id => reader.id
59
- ).count.should == 1
59
+ ).count).to eq 1
60
60
  end
61
61
  end
62
62
 
@@ -76,7 +76,7 @@ describe 'event tracking' do
76
76
  it "stores the post as the groupable object" do
77
77
  post.save
78
78
 
79
- event.groupable.should == post
79
+ expect(event.groupable).to eq post
80
80
  end
81
81
 
82
82
  it "deletes the event when the post is destroyed" do
@@ -112,18 +112,18 @@ describe 'event tracking' do
112
112
  it "does not store a notification for the post creator" do
113
113
  post.update_attribute(:title, 'something else')
114
114
 
115
- Eventifier::Notification.where(
115
+ expect(Eventifier::Notification.where(
116
116
  :event_id => event.id, :user_id => owner.id
117
- ).count.should == 0
117
+ ).count).to eq 0
118
118
  end
119
119
 
120
120
  it "stores notifications for the reader" do
121
121
  post.update_attribute(:title, 'something else')
122
122
 
123
123
  [reader1, reader2].each do |reader|
124
- Eventifier::Notification.where(
124
+ expect(Eventifier::Notification.where(
125
125
  :event_id => event.id, :user_id => reader.id
126
- ).count.should == 1
126
+ ).count).to eq 1
127
127
  end
128
128
  end
129
129
 
@@ -131,7 +131,7 @@ describe 'event tracking' do
131
131
  post.update_attribute(:title, 'somethang')
132
132
 
133
133
  [reader1, reader2].each do |reader|
134
- reader.notifications.count.should == 1
134
+ expect(reader.notifications.count).to eq 1
135
135
  end
136
136
  end
137
137
 
@@ -9,17 +9,17 @@ describe "Internationalisation" do
9
9
 
10
10
  it "should return the I18n message for that event" do
11
11
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :create)
12
- helper.event_message(event).should == "<strong class='user'>#{event.user.name}</strong> just created a new post - you should check it out"
12
+ expect(helper.event_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> just created a new post - you should check it out"
13
13
  end
14
14
 
15
15
  it "should return a message specific to a single change if only 1 change has been made" do
16
16
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :update, :change_data => { :name => ["Fred", "Mike"] })
17
- helper.event_message(event).should == "<strong class='user'>#{event.user.name}</strong> made a change to their post"
17
+ expect(helper.event_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> made a change to their post"
18
18
  end
19
19
 
20
20
  it "should return a message specific to multiple changes if more than 1 change has been made" do
21
21
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :update, :change_data => { :name => ["Fred", "Mike"], :age => [55, 65] })
22
- helper.event_message(event).should == "<strong class='user'>#{event.user.name}</strong> made some changes to their post"
22
+ expect(helper.event_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> made some changes to their post"
23
23
  end
24
24
 
25
25
  it "should return the default I18n message if one doesn't exist" do
@@ -33,7 +33,7 @@ describe "Internationalisation" do
33
33
 
34
34
  I18n.with_locale("test") do
35
35
  event = Fabricate(:event, :eventable => Fabricate(:post), :verb => :create)
36
- helper.event_message(event).should == "<strong class='user'>#{event.user.name}</strong> created a <strong>Post</strong>"
36
+ expect(helper.event_message(event)).to eq "<strong class='user'>#{event.user.name}</strong> created a <strong>Post</strong>"
37
37
  end
38
38
  end
39
39
  end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'System Events' do
4
+ let(:owner) { Fabricate(:user) }
5
+ let(:reader) { Fabricate(:user) }
6
+ let(:post) { Fabricate(:post, :author => owner) }
7
+ let(:event) {
8
+ Eventifier::Event.where(
9
+ :verb => :log, :system => true, user_id: nil,
10
+ :eventable_type => 'Post', :eventable_id => post.id
11
+ ).first
12
+ }
13
+
14
+ before do
15
+ Subscription.create! user: owner, post: post
16
+ Subscription.create! user: reader, post: post
17
+
18
+ Eventifier::Notifier.new [Post], :readers, on: :log
19
+ end
20
+
21
+ it "logs an event" do
22
+ Eventifier::EventBuilder.store post, nil, :log, nil, system: true
23
+
24
+ event.should be_present
25
+ end
26
+
27
+ it "stores notifications for the readers" do
28
+ Eventifier::EventBuilder.store post, nil, :log, nil, system: true
29
+ ActiveSupport::Notifications.instrument(
30
+ "log.posts.notification.eventifier",
31
+ verb: :log, event: event, object: post
32
+ )
33
+
34
+ [owner, reader].each do |user|
35
+ expect(Eventifier::Notification.where(
36
+ :event_id => event.id, :user_id => user.id
37
+ ).count).to eq 1
38
+ end
39
+ end
40
+ end
@@ -17,7 +17,7 @@ describe Eventifier::Event do
17
17
  alpha = Fabricate :event, :eventable => eventable
18
18
  beta = Fabricate :event, :eventable => Fabricate(:user)
19
19
 
20
- Eventifier::Event.find_all_by_eventable(eventable).should == [alpha]
20
+ expect(Eventifier::Event.find_all_by_eventable(eventable)).to eq [alpha]
21
21
  end
22
22
  end
23
23
  end
@@ -21,10 +21,9 @@ describe Eventifier::Ghost do
21
21
  subject { Fabricate.build(:ghost, :data_hash => post.serializable_hash) }
22
22
 
23
23
  it "should be an object with the attributes of the undeleted object" do
24
- pending
25
-
26
- subject.ghost.class.should == Post
27
- subject.ghost.attributes.except("_type").should == post.serializable_hash
24
+ expect(subject.ghost.class).to eq Post
25
+ expect(subject.ghost.attributes.except("_type")).
26
+ to eq post.serializable_hash
28
27
  end
29
28
  end
30
29
  end
@@ -53,7 +53,7 @@ describe Eventifier::Notification do
53
53
  context 'when the user has never read notifications' do
54
54
  let(:last_read) { nil }
55
55
  it 'should return true' do
56
- subject.should be_true
56
+ subject.should be_truthy
57
57
  end
58
58
  end
59
59
  context 'when the user has read notifications before' do
@@ -61,12 +61,12 @@ describe Eventifier::Notification do
61
61
  describe 'notificication newer than that time' do
62
62
  let(:last_read) { Time.now - 1.day }
63
63
 
64
- it { should be_true }
64
+ it { should be_truthy }
65
65
  end
66
66
  describe 'notificication older than that time' do
67
67
  let(:last_read) { Time.now + 1.day }
68
68
 
69
- it { should be_false }
69
+ it { should be_falsey }
70
70
  end
71
71
  end
72
72
  end
@@ -6,7 +6,7 @@ describe Eventifier::NotificationMapping do
6
6
  it 'acts like a datasource' do
7
7
  Eventifier::NotificationMapping.add 'test', :relation
8
8
 
9
- Eventifier::NotificationMapping.find('test').should == [:relation]
9
+ expect(Eventifier::NotificationMapping.find('test')).to eq [:relation]
10
10
  end
11
11
 
12
12
  it "appends further relations" do
@@ -15,8 +15,8 @@ describe Eventifier::NotificationMapping do
15
15
  Eventifier::NotificationMapping.add 'test', :relation_a
16
16
  Eventifier::NotificationMapping.add 'test', :relation_b
17
17
 
18
- Eventifier::NotificationMapping.find('test').
19
- should == [:relation_a, :relation_b]
18
+ expect(Eventifier::NotificationMapping.find('test')).
19
+ to eq [:relation_a, :relation_b]
20
20
  end
21
21
  end
22
22
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Sampimon
@@ -10,176 +10,190 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-09-24 00:00:00.000000000 Z
13
+ date: 2014-04-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - ~>
19
+ - - "~>"
20
20
  - !ruby/object:Gem::Version
21
- version: 3.2.0
21
+ version: 4.0.3
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - ~>
26
+ - - "~>"
27
27
  - !ruby/object:Gem::Version
28
- version: 3.2.0
28
+ version: 4.0.3
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: bson_ext
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - '>='
33
+ - - ">="
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - '>='
40
+ - - ">="
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: haml-rails
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - "~>"
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0.4'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ~>
54
+ - - "~>"
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0.4'
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: haml_coffee_assets
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - '>='
68
+ - - ">="
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: coffee-rails
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - ~>
75
+ - - "~>"
76
76
  - !ruby/object:Gem::Version
77
- version: 3.2.1
77
+ version: 4.0.0
78
78
  type: :runtime
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - ~>
82
+ - - "~>"
83
83
  - !ruby/object:Gem::Version
84
- version: 3.2.1
84
+ version: 4.0.0
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: compass-rails
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - '>='
89
+ - - ">="
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - '>='
96
+ - - ">="
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: multi_json
101
101
  requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
- - - ~>
103
+ - - "~>"
104
104
  - !ruby/object:Gem::Version
105
105
  version: 1.7.4
106
106
  type: :runtime
107
107
  prerelease: false
108
108
  version_requirements: !ruby/object:Gem::Requirement
109
109
  requirements:
110
- - - ~>
110
+ - - "~>"
111
111
  - !ruby/object:Gem::Version
112
112
  version: 1.7.4
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: jbuilder
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - ~>
117
+ - - "~>"
118
118
  - !ruby/object:Gem::Version
119
119
  version: 1.4.2
120
120
  type: :runtime
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
- - - ~>
124
+ - - "~>"
125
125
  - !ruby/object:Gem::Version
126
126
  version: 1.4.2
127
+ - !ruby/object:Gem::Dependency
128
+ name: rails-observers
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 0.1.2
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 0.1.2
127
141
  - !ruby/object:Gem::Dependency
128
142
  name: combustion
129
143
  requirement: !ruby/object:Gem::Requirement
130
144
  requirements:
131
- - - ~>
145
+ - - "~>"
132
146
  - !ruby/object:Gem::Version
133
147
  version: 0.5.0
134
148
  type: :development
135
149
  prerelease: false
136
150
  version_requirements: !ruby/object:Gem::Requirement
137
151
  requirements:
138
- - - ~>
152
+ - - "~>"
139
153
  - !ruby/object:Gem::Version
140
154
  version: 0.5.0
141
155
  - !ruby/object:Gem::Dependency
142
156
  name: fabrication
143
157
  requirement: !ruby/object:Gem::Requirement
144
158
  requirements:
145
- - - ~>
159
+ - - "~>"
146
160
  - !ruby/object:Gem::Version
147
- version: 2.7.1
161
+ version: 2.11.0
148
162
  type: :development
149
163
  prerelease: false
150
164
  version_requirements: !ruby/object:Gem::Requirement
151
165
  requirements:
152
- - - ~>
166
+ - - "~>"
153
167
  - !ruby/object:Gem::Version
154
- version: 2.7.1
168
+ version: 2.11.0
155
169
  - !ruby/object:Gem::Dependency
156
170
  name: pg
157
171
  requirement: !ruby/object:Gem::Requirement
158
172
  requirements:
159
- - - '>='
173
+ - - ">="
160
174
  - !ruby/object:Gem::Version
161
175
  version: '0'
162
176
  type: :development
163
177
  prerelease: false
164
178
  version_requirements: !ruby/object:Gem::Requirement
165
179
  requirements:
166
- - - '>='
180
+ - - ">="
167
181
  - !ruby/object:Gem::Version
168
182
  version: '0'
169
183
  - !ruby/object:Gem::Dependency
170
184
  name: rspec-rails
171
185
  requirement: !ruby/object:Gem::Requirement
172
186
  requirements:
173
- - - ~>
187
+ - - "~>"
174
188
  - !ruby/object:Gem::Version
175
- version: 2.13.2
189
+ version: 3.0.0.beta2
176
190
  type: :development
177
191
  prerelease: false
178
192
  version_requirements: !ruby/object:Gem::Requirement
179
193
  requirements:
180
- - - ~>
194
+ - - "~>"
181
195
  - !ruby/object:Gem::Version
182
- version: 2.13.2
196
+ version: 3.0.0.beta2
183
197
  description: Tracks and logs events and sends notifications of events on Active Record
184
198
  models.
185
199
  email:
@@ -188,8 +202,8 @@ executables: []
188
202
  extensions: []
189
203
  extra_rdoc_files: []
190
204
  files:
191
- - .gitignore
192
- - .travis.yml
205
+ - ".gitignore"
206
+ - ".travis.yml"
193
207
  - Gemfile
194
208
  - README.textile
195
209
  - Rakefile
@@ -221,6 +235,7 @@ files:
221
235
  - db/migrate/2_eventifier_notification_settings.rb
222
236
  - db/migrate/3_notification_sent_status.rb
223
237
  - db/migrate/4_event_groupable.rb
238
+ - db/migrate/5_system_events.rb
224
239
  - eventifier.gemspec
225
240
  - lib/eventifier.rb
226
241
  - lib/eventifier/delivery.rb
@@ -241,12 +256,13 @@ files:
241
256
  - lib/eventifier/tracker.rb
242
257
  - lib/generators/eventifier/install/install_generator.rb
243
258
  - lib/generators/eventifier/install/templates/event_tracking.rb
244
- - lib/generators/eventifier/install/templates/events.en.yaml
259
+ - lib/generators/eventifier/install/templates/events.en.yml
245
260
  - lib/tasks/email.rake
246
261
  - spec/controllers/eventifier/notifications_controller_spec.rb
247
262
  - spec/controllers/eventifier/preferences_controller_spec.rb
248
263
  - spec/event_tracking_spec.rb
249
264
  - spec/eventifier/delivery_spec.rb
265
+ - spec/eventifier/notification_translator_spec.rb
250
266
  - spec/eventifier/preferences_spec.rb
251
267
  - spec/eventifier/relationship_spec.rb
252
268
  - spec/eventifier_spec.rb
@@ -255,6 +271,7 @@ files:
255
271
  - spec/helpers/eventifier/path_helper_spec.rb
256
272
  - spec/integration/eventifier_spec.rb
257
273
  - spec/integration/internationalisation_spec.rb
274
+ - spec/integration/system_events_spec.rb
258
275
  - spec/internal/app/controllers/application_controller.rb
259
276
  - spec/internal/app/lib/event_tracking.rb
260
277
  - spec/internal/app/models/category.rb
@@ -279,7 +296,8 @@ files:
279
296
  - spec/support/controller_helpers.rb
280
297
  - spec/support/model_helpers.rb
281
298
  homepage: http://github.com/inspire9/eventifier
282
- licenses: []
299
+ licenses:
300
+ - MIT
283
301
  metadata: {}
284
302
  post_install_message:
285
303
  rdoc_options: []
@@ -287,17 +305,17 @@ require_paths:
287
305
  - lib
288
306
  required_ruby_version: !ruby/object:Gem::Requirement
289
307
  requirements:
290
- - - '>='
308
+ - - ">="
291
309
  - !ruby/object:Gem::Version
292
310
  version: '0'
293
311
  required_rubygems_version: !ruby/object:Gem::Requirement
294
312
  requirements:
295
- - - '>='
313
+ - - ">="
296
314
  - !ruby/object:Gem::Version
297
315
  version: '0'
298
316
  requirements: []
299
317
  rubyforge_project: eventifier
300
- rubygems_version: 2.0.2
318
+ rubygems_version: 2.2.2
301
319
  signing_key:
302
320
  specification_version: 4
303
321
  summary: Event tracking and notifying for active record models
@@ -306,6 +324,7 @@ test_files:
306
324
  - spec/controllers/eventifier/preferences_controller_spec.rb
307
325
  - spec/event_tracking_spec.rb
308
326
  - spec/eventifier/delivery_spec.rb
327
+ - spec/eventifier/notification_translator_spec.rb
309
328
  - spec/eventifier/preferences_spec.rb
310
329
  - spec/eventifier/relationship_spec.rb
311
330
  - spec/eventifier_spec.rb
@@ -314,6 +333,7 @@ test_files:
314
333
  - spec/helpers/eventifier/path_helper_spec.rb
315
334
  - spec/integration/eventifier_spec.rb
316
335
  - spec/integration/internationalisation_spec.rb
336
+ - spec/integration/system_events_spec.rb
317
337
  - spec/internal/app/controllers/application_controller.rb
318
338
  - spec/internal/app/lib/event_tracking.rb
319
339
  - spec/internal/app/models/category.rb