marples 0.0.22 → 1.0.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/README.md CHANGED
@@ -19,16 +19,15 @@ go to by enforcing a naming scheme.
19
19
 
20
20
  ### Sending a message
21
21
 
22
- stomp_client = Stomp::Client.new ...
23
- m = Marples::Client.new stomp_client, "publisher"
22
+ stomp = Stomp::Client.new ...
23
+ m = Marples::Client.new transport: stomp, client_name: "publisher"
24
24
  m.updated publication
25
25
  # => /topic/marples.publisher.publications.updated
26
- { 'guide' => { 'id' => 12345, 'title' => '...', ... }}
27
26
 
28
27
  ### Listening for messages
29
28
 
30
- stomp_client = Stomp::Client.new ...
31
- m = Marples::Client.new stomp_client
29
+ stomp = Stomp::Client.new ...
30
+ m = Marples::Client.new stomp
32
31
  m.when 'publisher', 'publication', 'updated' do |publication|
33
32
  puts publication['slug']
34
33
  # => "how-postcodes-work"
@@ -42,9 +41,10 @@ You can inject your logger into Marples to get some debugging information.
42
41
 
43
42
  logger = Logger.new STDOUT
44
43
  logger.level = Logger::DEBUG
45
- producer = Marples::Client.new stomp_client, "publisher", logger
44
+ producer = Marples::Client.new transport: stomp, client_name: "publisher",
45
+ logger: logger
46
46
  ...
47
- consumer = Marples::Client.new stomp_client, 'consumer_name_here', logger
47
+ consumer = Marples::Client.new transport: stomp, logger: logger
48
48
 
49
49
 
50
50
  ## ActiveModel(ish) integration
@@ -1,12 +1,25 @@
1
1
  module Marples
2
2
  class Client
3
- include Pethau::InitializeWith
4
- include Pethau::DefaultValueOf
3
+ [ :transport, :client_name, :logger ].each do |attribute|
4
+ attr_accessor attribute
5
+ private "#{attribute}=", attribute
6
+ end
5
7
 
6
- initialize_with :transport, :client_name, :logger
7
- default_value_of :client_name, File.basename($0)
8
- default_value_of :transport, Marples::NullTransport.instance
9
- default_value_of :logger, NullLogger.instance
8
+ def initialize *args
9
+ if args[0].kind_of? Hash
10
+ self.transport = options[:transport]
11
+ self.client_name = options[:client_name]
12
+ self.logger = options[:logger]
13
+ else
14
+ self.transport = args.shift
15
+ self.client_name = args.shift
16
+ self.logger = args.shift
17
+ logger.warn "Positional arguments to Marples::Client#new are " + \
18
+ "deprecated and will be removed."
19
+ end
20
+ raise "You must provide a transport" if transport.nil?
21
+ self.logger ||= NullLogger.instance
22
+ end
10
23
 
11
24
  def join
12
25
  logger.debug "Listening on #{transport}"
@@ -36,7 +49,12 @@ module Marples
36
49
 
37
50
  def publish action, object
38
51
  object_type = object.class.name.tableize
39
- destination = destination_for object_type, action
52
+ if client_name.nil?
53
+ logger.fatal "You must provide Marples::Client with a client_name" + \
54
+ " to publish actions"
55
+ raise "Provide Marples::Client with a client_name to publish messages"
56
+ end
57
+ destination = destination_for client_name, object_type, action
40
58
  logger.debug "Using transport #{transport}"
41
59
  logger.debug "Sending XML to #{destination}"
42
60
  logger.debug "XML: #{object.to_xml}"
@@ -45,7 +63,7 @@ module Marples
45
63
  end
46
64
  private :publish
47
65
 
48
- def destination_for application_name = client_name, object_type, action
66
+ def destination_for application_name, object_type, action
49
67
  "/topic/marples.#{application_name}.#{object_type}.#{action}"
50
68
  end
51
69
  private :destination_for
@@ -28,7 +28,8 @@ module Marples
28
28
  end
29
29
 
30
30
  def self.build_marples_client
31
- Marples::Client.new(marples_transport, marples_client_name, marples_logger)
31
+ Marples::Client.new :transport: marples_transport,
32
+ client_name: marples_client_name, logger: marples_logger
32
33
  end
33
34
  end
34
35
  end
@@ -1,3 +1,3 @@
1
1
  module Marples
2
- VERSION = "0.0.22"
2
+ VERSION = "1.0.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marples
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.22
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2011-11-21 00:00:00.000000000Z
13
+ date: 2011-11-23 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: pethau
17
- requirement: &70302597316480 !ruby/object:Gem::Requirement
17
+ requirement: &70334323087180 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: 0.0.2
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70302597316480
25
+ version_requirements: *70334323087180
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: null_logger
28
- requirement: &70302597316060 !ruby/object:Gem::Requirement
28
+ requirement: &70334323086760 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70302597316060
36
+ version_requirements: *70334323086760
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: activesupport
39
- requirement: &70302597315580 !ruby/object:Gem::Requirement
39
+ requirement: &70334323086300 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,7 +44,7 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70302597315580
47
+ version_requirements: *70334323086300
48
48
  description: Message destination arbiter
49
49
  email:
50
50
  - craig@barkingiguana.com