resource_subscriber 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/lib/resource_subscriber.rb +9 -2
- data/lib/resource_subscriber/configuration.rb +10 -0
- data/lib/resource_subscriber/message.rb +20 -4
- data/lib/resource_subscriber/publishable.rb +5 -4
- data/lib/resource_subscriber/publisher.rb +5 -14
- data/lib/resource_subscriber/version.rb +1 -1
- data/resource_subscriber.gemspec +0 -1
- metadata +3 -17
- data/lib/resource_subscriber/publisher_config.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4160073b08655c15bb99cf337f8ca84e7966a781
|
4
|
+
data.tar.gz: 94ce92345da4ae62c2cbded29c88f5b3e36c2535
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc3f96119816c0246cc07f85659608987dc54f7f1ab2581d0b6ee1b765a8231bf2dd55cce0b8c4b97a14edff6d2e582d7be3ba08ee678c97ceee8a6bb5aa8757
|
7
|
+
data.tar.gz: 38adff74a43d8c8350c5e5900672ff2f175ae9d5b62b3b4a64bda4c359023a7fa9e031d2a87df5baff369045f3b4772814cb9dc22505ddba5b44cd1bdba0bb7b
|
data/.gitignore
CHANGED
data/lib/resource_subscriber.rb
CHANGED
@@ -1,24 +1,31 @@
|
|
1
1
|
require "resource_subscriber/version"
|
2
2
|
require 'active_support/all'
|
3
3
|
require 'action_subscriber'
|
4
|
-
require 'trax_core'
|
5
4
|
|
6
5
|
module ResourceSubscriber
|
7
6
|
extend ::ActiveSupport::Autoload
|
8
7
|
|
9
8
|
autoload :AutoInject
|
10
9
|
autoload :Changes
|
10
|
+
autoload :Configuration
|
11
11
|
autoload :Message
|
12
12
|
autoload :Middlewares
|
13
13
|
autoload :Railtie
|
14
14
|
autoload :Resourceful
|
15
15
|
autoload :Publishable
|
16
16
|
autoload :Publisher
|
17
|
-
autoload :PublisherConfig
|
18
17
|
|
19
18
|
def self.load_railtie
|
20
19
|
::ResourceSubscriber::Railtie
|
21
20
|
end
|
22
21
|
|
22
|
+
def self.configuration
|
23
|
+
@configuration ||= ::ResourceSubscriber::Configuration.with_defaults
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.configure
|
27
|
+
yield(self.configuration) if block_given?
|
28
|
+
end
|
29
|
+
|
23
30
|
load_railtie if defined?(Rails)
|
24
31
|
end
|
@@ -1,7 +1,23 @@
|
|
1
1
|
module ResourceSubscriber
|
2
|
-
class Message
|
3
|
-
|
4
|
-
|
5
|
-
|
2
|
+
class Message
|
3
|
+
include ActiveModel::Serializers::JSON
|
4
|
+
|
5
|
+
attr_accessor :resource_type, :resource, :changes
|
6
|
+
|
7
|
+
def initialize(resource)
|
8
|
+
@resource_type = resource.class.base_class.name
|
9
|
+
@changes = resource.changes.blank? ? resource.previous_changes : resource.changes
|
10
|
+
@resource = resource.attributes
|
11
|
+
end
|
12
|
+
|
13
|
+
def attributes=(hash)
|
14
|
+
hash.each do |key, value|
|
15
|
+
send("#{key}=", value)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def attributes
|
20
|
+
instance_values
|
21
|
+
end
|
6
22
|
end
|
7
23
|
end
|
@@ -8,13 +8,14 @@ module ResourceSubscriber
|
|
8
8
|
after_commit :publish_destroyed, :on => :destroy
|
9
9
|
|
10
10
|
self.class_attribute :resource_publisher
|
11
|
-
|
11
|
+
|
12
|
+
configuration = ::ResourceSubscriber.configuration.deep_dup
|
13
|
+
self.resource_publisher = ::ResourceSubscriber::Publisher.new(model: self, config: configuration)
|
12
14
|
end
|
13
15
|
|
14
16
|
module ClassMethods
|
15
|
-
def publish_to(routing_key,
|
16
|
-
self.resource_publisher.
|
17
|
-
self.resource_publisher.config.routing_key = routing_key
|
17
|
+
def publish_to(routing_key, &block)
|
18
|
+
self.resource_publisher.publish_as(routing_key, &block)
|
18
19
|
end
|
19
20
|
end
|
20
21
|
|
@@ -4,23 +4,14 @@ module ResourceSubscriber
|
|
4
4
|
|
5
5
|
required_dependencies :model, :config
|
6
6
|
|
7
|
-
def resource_base_class_name
|
8
|
-
@resource_base_class_name ||= model.base_class.name
|
9
|
-
end
|
10
|
-
|
11
7
|
def publish_resource_message(action, resource)
|
12
|
-
message = ::ResourceSubscriber::Message.new(
|
13
|
-
|
14
|
-
:resource_type => resource_base_class_name,
|
15
|
-
:changes => resource.previous_changes
|
16
|
-
).to_json
|
17
|
-
|
18
|
-
::ActionSubscriber::Publisher.publish_async("#{self.config.routing_key}.#{action}", message, self.config.exchange, :content_type => 'application/json')
|
8
|
+
message = ::ResourceSubscriber::Message.new(resource)
|
9
|
+
::ActionSubscriber::Publisher.publish_async("#{self.config.routing_key}.#{action}", message.to_json, self.config.exchange, self.config.publishing_options)
|
19
10
|
end
|
20
11
|
|
21
|
-
def publish_as(routing_key
|
22
|
-
self.config
|
23
|
-
self.config
|
12
|
+
def publish_as(routing_key)
|
13
|
+
yield(self.config) if block_given?
|
14
|
+
self.config.routing_key = routing_key
|
24
15
|
end
|
25
16
|
end
|
26
17
|
end
|
data/resource_subscriber.gemspec
CHANGED
@@ -21,7 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_dependency "activesupport"
|
23
23
|
spec.add_dependency "action_subscriber"
|
24
|
-
spec.add_dependency "trax_core"
|
25
24
|
|
26
25
|
spec.add_development_dependency "bundler", "~> 1.11"
|
27
26
|
spec.add_development_dependency "rake", "~> 10.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resource_subscriber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Ayre
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: trax_core
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: bundler
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,13 +99,13 @@ files:
|
|
113
99
|
- lib/resource_subscriber.rb
|
114
100
|
- lib/resource_subscriber/auto_inject.rb
|
115
101
|
- lib/resource_subscriber/changes.rb
|
102
|
+
- lib/resource_subscriber/configuration.rb
|
116
103
|
- lib/resource_subscriber/message.rb
|
117
104
|
- lib/resource_subscriber/middlewares.rb
|
118
105
|
- lib/resource_subscriber/middlewares/has_changes.rb
|
119
106
|
- lib/resource_subscriber/middlewares/resourceful.rb
|
120
107
|
- lib/resource_subscriber/publishable.rb
|
121
108
|
- lib/resource_subscriber/publisher.rb
|
122
|
-
- lib/resource_subscriber/publisher_config.rb
|
123
109
|
- lib/resource_subscriber/railtie.rb
|
124
110
|
- lib/resource_subscriber/resourceful.rb
|
125
111
|
- lib/resource_subscriber/version.rb
|