cony 1.2.0 → 1.3.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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cony (1.2.0)
4
+ cony (1.3.0)
5
5
  activesupport (>= 3)
6
6
  bunny (~> 1.1.7)
7
7
 
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # :rabbit: Cony [![Build Status](https://travis-ci.org/ninech/cony.svg)](https://travis-ci.org/ninech/cony)
1
+ # :rabbit: Cony [![Build Status](https://travis-ci.org/ninech/cony.svg)](https://travis-ci.org/ninech/cony) [![Code Climate](https://codeclimate.com/github/ninech/cony.png)](https://codeclimate.com/github/ninech/cony)
2
2
 
3
3
  Cony sends notifications about the lifecycle of your models via AMQP.
4
4
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.3.0
@@ -15,20 +15,20 @@ module Cony
15
15
  end
16
16
 
17
17
  def cony_send_create_notify
18
- publish(:created)
18
+ publish(:created, cony_changes_created)
19
19
  end
20
20
 
21
21
  def cony_send_update_notify
22
- publish(:updated)
22
+ publish(:updated, cony_changes_updated)
23
23
  end
24
24
 
25
25
  def cony_send_destroy_notify
26
- publish(:destroyed)
26
+ publish(:destroyed, cony_changes_destroyed)
27
27
  end
28
28
 
29
29
 
30
30
  private
31
- def publish(type)
31
+ def publish(type, cony_changes)
32
32
  return if Cony.config.test_mode
33
33
  amqp_connection.publish(
34
34
  {id: self.id, changes: cony_changes, model: self.class.name, event: type},
@@ -39,11 +39,24 @@ module Cony
39
39
  @amqp_connection ||= Cony::AMQPConnectionHandler.new(Cony.config.amqp)
40
40
  end
41
41
 
42
- def cony_changes
42
+ def mapped_changes
43
43
  changes.map do |name, change|
44
44
  {name => {old: change.first, new: change.last}}
45
45
  end
46
46
  end
47
47
 
48
+ def cony_changes_created
49
+ mapped_changes
50
+ end
51
+
52
+ def cony_changes_updated
53
+ mapped_changes
54
+ end
55
+
56
+ def cony_changes_destroyed
57
+ attributes.map do |name, value|
58
+ {name => {old: value, new: nil}}
59
+ end
60
+ end
48
61
  end
49
62
  end
@@ -7,6 +7,7 @@ describe Cony::ActiveRecord do
7
7
  let(:amqp_connection) { double('Cony::AMQPConnectionHandler') }
8
8
  let(:id) { 1337 }
9
9
  let(:active_record_changes) { {name: ['old', 'new']} }
10
+ let(:active_record_attributes) { {name: 'value'} }
10
11
  let(:cony_changes) { [{name: {old: 'old', new: 'new'}}] }
11
12
  let(:expected_payload) do
12
13
  {
@@ -26,6 +27,7 @@ describe Cony::ActiveRecord do
26
27
  def self.name; "Anonymaus::Klass"; end
27
28
  def id; #{id}; end
28
29
  def changes; #{active_record_changes}; end
30
+ def attributes; #{active_record_attributes}; end
29
31
 
30
32
  include Cony::ActiveRecord
31
33
  end
@@ -56,6 +58,7 @@ describe Cony::ActiveRecord do
56
58
 
57
59
  describe '#cony_send_destroy_notify' do
58
60
  let(:event) { :destroyed }
61
+ let(:cony_changes) { [{name: {old: 'value', new: nil}}] }
59
62
  it 'uses the amqp connection to send the notify' do
60
63
  amqp_connection.should_receive(:publish).with(expected_payload, 'anonymaus/klass.mutation.destroyed')
61
64
  subject.cony_send_destroy_notify
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cony
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-04-17 00:00:00.000000000 Z
12
+ date: 2014-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -120,7 +120,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
120
120
  version: '0'
121
121
  segments:
122
122
  - 0
123
- hash: -1375090389651372682
123
+ hash: -395064848044904818
124
124
  required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  none: false
126
126
  requirements:
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  segments:
131
131
  - 0
132
- hash: -1375090389651372682
132
+ hash: -395064848044904818
133
133
  requirements: []
134
134
  rubyforge_project:
135
135
  rubygems_version: 1.8.23