eventifier 0.0.14 → 0.1.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.
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