rflow-components-amqp 1.1.1 → 1.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49fbe0cc1e4c8dbbbacfc9dc469b710b4309b453
4
- data.tar.gz: 8df93faee9c848a277287b179ef29422c1e83792
3
+ metadata.gz: 414abeef9741db55a09645e77f089bf0b6dc03ce
4
+ data.tar.gz: d089580659a2a37706f19e76ae819b916775692d
5
5
  SHA512:
6
- metadata.gz: b0312a5ad446b23425fc44b2c74005efb1a3abbf052446a93680128e357345930b508b21933eee69c008a84429b7597e8802ca3bf565f75a0637adec1cce4d0d
7
- data.tar.gz: b31ce6f7a5c3805fec5b0d7f04921cf5611c9ac1c84bf4667699f0cb39ebcd30267c2126d13184f377e0a7ccc72051bdbf40cdb07f297e4712f5fc445c30f1f3
6
+ metadata.gz: 148d61bc35cdd305f879ed0ae0b1a3d80196eed52e29122bfa9c787c1d8a5d43474789bdcf519581fe97a11ca7c22a260838c8bb3fd73e6036905b3076c2076b
7
+ data.tar.gz: 1c06feb76f1141a22d434dfbeaaee9ac3a7664cdcd56043a0eba7cd627a48726687c1237c19f4c1f75d660d338fa81e342d1c12507c6d17ef9c0ee931fd160a1
data/.gitignore CHANGED
@@ -3,3 +3,5 @@
3
3
  .bundle
4
4
  Gemfile.lock
5
5
  pkg/*
6
+ doc/
7
+ .yardoc/
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --output ./doc --main README.md --files schema/*.avsc lib/**/*.rb - README.md LICENSE
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'bundler'
2
2
  require 'rspec/core/rake_task'
3
- require 'rdoc/task'
3
+ require 'yard'
4
4
  Bundler::GemHelper.install_tasks
5
5
 
6
6
  RSpec::Core::RakeTask.new(:spec) do |t|
@@ -8,8 +8,4 @@ RSpec::Core::RakeTask.new(:spec) do |t|
8
8
  t.rspec_opts = '--tty --color'
9
9
  end
10
10
 
11
- Rake::RDocTask.new do |rd|
12
- rd.main = "README.md"
13
- rd.rdoc_files.include("README.md", "lib/**/*.rb")
14
- rd.rdoc_dir = File.join('doc', 'html')
15
- end
11
+ YARD::Rake::YardocTask.new
@@ -1,12 +1,17 @@
1
1
  require 'rflow/components/amqp/extensions'
2
2
  require 'rflow/components/amqp/subscriber'
3
3
 
4
+ # RFlow classes.
4
5
  class RFlow
6
+ # RFlow component classes.
5
7
  module Components
8
+ # AMQP RFlow component classes.
6
9
  module AMQP
7
10
  # Load the schemas
11
+ # @!visibility private
8
12
  SCHEMA_DIRECTORY = ::File.expand_path(::File.join(::File.dirname(__FILE__), '..', '..', '..', 'schema'))
9
13
 
14
+ # @!visibility private
10
15
  SCHEMA_FILES = {
11
16
  'amqp_message.avsc' => 'RFlow::Message::Data::AMQP::Message',
12
17
  }
@@ -1,8 +1,11 @@
1
1
  class RFlow
2
2
  module Components
3
3
  module AMQP
4
+ # @!visibility private
4
5
  module Extensions
6
+ # @!visibility private
5
7
  module AMQPMessageExtension
8
+ # @!visibility private
6
9
  def self.extended(base_data)
7
10
  base_data.data_object ||= {'header' => {}, 'payload' => ''}
8
11
  end
@@ -4,18 +4,82 @@ require 'rflow'
4
4
  require 'time'
5
5
 
6
6
  class RFlow
7
+ # @!parse
8
+ # # Fake classes in this tree to document the actual message types.
9
+ # class Message
10
+ # # Fake classes in this tree to document the actual message types.
11
+ # class Data
12
+ # # AMQP messages.
13
+ # module AMQP
14
+ # # RFlow format defined for AMQP messages which can be emitted by
15
+ # # {RFlow::Components::AMQP::Subscriber}. Of course the real class
16
+ # # is {RFlow::Message} with type +RFlow::Message::Data::AMQP::Message+.
17
+ # class Message
18
+ # # @!attribute header
19
+ # # The header of the message.
20
+ # # @return [String]
21
+ #
22
+ # # @!attribute payload
23
+ # # The payload of the message.
24
+ # # @return [String]
25
+ #
26
+ # # Just here to force Yard to create documentation.
27
+ # # @!visibility private
28
+ # def initialize; end
29
+ # end
30
+ # end
31
+ # end
32
+ # end
33
+
34
+ # Components.
7
35
  module Components
8
36
  module AMQP
37
+ # Component that subscribes to an AMQP topic and issues +RFlow::Message+s
38
+ # of type {RFlow::Message::Data::AMQP::Message} and +RFlow::Message::Data::Raw+
39
+ # when it receives messages on the AMQP topic.
40
+ #
9
41
  # By default will use an exclusive, non-durable, auto-deleting,
10
42
  # randomly named queue for subscribing to topic messages with an
11
- # empty-string pattern
43
+ # empty-string pattern.
44
+ #
45
+ # Accepts config parameters:
46
+ # - +server+ - server address
47
+ # - +port+ - server port
48
+ # - +username+ - server username
49
+ # - +password+ - server password
50
+ # - +vhost+ - vhost
51
+ # - +reconnect_interval+ - how long to wait when disconnected before reconnecting
52
+ # - +queue_name+ - AMQP topic name to monitor
53
+ # - +queue_passive+ - +queue_passive+ parameter to AMQP
54
+ # - +queue_durable+ - +queue_durable+ parameter to AMQP
55
+ # - +queue_exclusive+ - +queue_exclusive+ parameter to AMQP
56
+ # - +queue_auto_delete+ - +queue_auto_delete+ parameter to AMQP
57
+ # - +binding_pattern+ - AMQP routing key
12
58
  class Subscriber < RFlow::Component
59
+ # @!attribute [r] amqp_port
60
+ # Outputs +RFlow::Message+s of type {RFlow::Message::Data::AMQP::Message}
61
+ # when receiving an AMQP message.
62
+ #
63
+ # @return [RFlow::Component::OutputPort]
13
64
  output_port :amqp_port
65
+
66
+ # @!attribute [r] raw_port
67
+ # Outputs +RFlow::Message+s of type +RFlow::Message::Data::Raw+
68
+ # when receiving an AMQP message. Messages contain just the bytes.
69
+ #
70
+ # @return [RFlow::Component::OutputPort]
14
71
  output_port :raw_port
72
+
73
+ # @!attribute [r] log_port
74
+ # Outputs +RFlow::Message+s of type {RFlow::Message:Data::Log} if there
75
+ # are problems with the AMQP subscriber..
76
+ # @return [RFlow::Component::OutputPort]
15
77
  output_port :log_port
16
78
 
79
+ # @!visibility private
17
80
  attr_accessor :config, :queue_config
18
81
 
82
+ # Default config.
19
83
  DEFAULT_CONFIG = {
20
84
  'server' => '127.0.0.1',
21
85
  'port' => 5672,
@@ -33,6 +97,8 @@ class RFlow
33
97
  'binding_pattern' => '',
34
98
  }
35
99
 
100
+ # RFlow-called method at startup.
101
+ # @return [void]
36
102
  def configure!(config)
37
103
  @config = DEFAULT_CONFIG.merge config
38
104
  @config['port'] = @config['port'].to_i
@@ -51,6 +117,8 @@ class RFlow
51
117
  end
52
118
  end
53
119
 
120
+ # RFlow-called method at startup.
121
+ # @return [void]
54
122
  def run!
55
123
  ::AMQP.connect(:host => @config['server'], :port => @config['port'], :vhost => @config['vhost'],
56
124
  :username => @config['username'], :password => @config['password']) do |conn|
@@ -100,6 +168,7 @@ class RFlow
100
168
  end
101
169
  end
102
170
 
171
+ # @!visibility private
103
172
  def to_boolean(string)
104
173
  case string
105
174
  when /^true$/i, '1', true; true
@@ -1,7 +1,8 @@
1
1
  class RFlow
2
2
  module Components
3
3
  module AMQP
4
- VERSION = "1.1.1"
4
+ # The gem version.
5
+ VERSION = "1.1.2"
5
6
  end
6
7
  end
7
8
  end
@@ -28,4 +28,5 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'rspec', '~> 3.0'
29
29
  s.add_development_dependency 'rspec-collection_matchers', '~> 1.0'
30
30
  s.add_development_dependency 'rake', '>= 10.3'
31
+ s.add_development_dependency 'yard', '~> 0.9'
31
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rflow-components-amqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael L. Artz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-11 00:00:00.000000000 Z
11
+ date: 2017-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rflow
@@ -100,6 +100,20 @@ dependencies:
100
100
  - - ">="
101
101
  - !ruby/object:Gem::Version
102
102
  version: '10.3'
103
+ - !ruby/object:Gem::Dependency
104
+ name: yard
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.9'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.9'
103
117
  description: AMQP publisher and subscriber component for the RFlow FBP framework. Also
104
118
  includes the necessary AMQP::Message message type
105
119
  email:
@@ -113,6 +127,7 @@ files:
113
127
  - ".ruby-gemset"
114
128
  - ".ruby-version"
115
129
  - ".travis.yml"
130
+ - ".yardopts"
116
131
  - Gemfile
117
132
  - LICENSE
118
133
  - README.md