rservicebus2 0.1.2 → 0.2.4

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
- SHA1:
3
- metadata.gz: e54b4fb695ba444a67b55bf63e8f64147cbceab9
4
- data.tar.gz: 537dfa6f434e22a5f4a6a580035f49423925eac5
2
+ SHA256:
3
+ metadata.gz: 1ea0b8dd06a2280f3ca70bef921b34f4bad2c1d6a4c043a6accb119b83566940
4
+ data.tar.gz: b7607e7ed6a0fe7fbe935aa5b3cc2d27817973b33f96c5dda58d0651a1f17570
5
5
  SHA512:
6
- metadata.gz: b17ae3ca0af9f497362bec0d940c05bd74facc47bbc64dd33b7a050295fc23c933a2ad0f1a952cdbc92a9d456e142d6ff2f923a499cd361d533b7bbdde1a0e6b
7
- data.tar.gz: 26ece7551b0806893ed82c1cb76eeb5e2f17c4326b27d58b89fb64929d03eaa5ffef3b835c87dc3fe57d513bc0076f7616ecb43afbb97cb1ae33a91c7008adbb
6
+ metadata.gz: 1963af8198779b9efabe33b85c236205fcdababb5a75e5b551d72073b9e4342818ac13878e2f533f295ca2e0a90be2767da641230d8382b15d4d485566fc9ac5
7
+ data.tar.gz: 06dc10763f2a56066405abbe7dff686d120d755f26d3ce8a3b6ca43152c31c8ca2f8826a51ec4fdb3a3d5bb836c4890770919b9cdd9ce603fb94eb4a710dbb0c
data/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # rservicebus2
2
+
3
+ Use the examples directory as the starting point.
4
+
5
+ ## General Approach
6
+
7
+ 1. Convention over Configuration
8
+ 2. Configuration via Environment Variables
9
+ 3. Working examples provided for configuration
10
+
11
+ ## General Config
12
+
13
+ ### APPNAME
14
+ 1. Name of process
15
+ 2. Doubles as default queueName
16
+ 3. Defaults to directory name
17
+
18
+ ### MAX_RETRIES
19
+ 1. If an exception is generated while processing a message, the message can be
20
+ retried. This allows the number of retries to be set.
21
+ 2. Defaults to 5
22
+
23
+ ### ERROR_QUEUE_NAME
24
+ 1. If an exception is generated while processing a message, the message can be
25
+ retried. Once all retries are exhausted, the message will be put in the error queue.
26
+ 2. This allows the name of the queue to be set.
27
+ 3. Defaults to error
28
+
29
+ ### WORKING_DIR
30
+ 1. Where message handlers are looked for.
31
+ 2. Defaults to current directory
32
+
33
+ ### VERBOSE
34
+ 1. Send out more logging to track message processing
35
+
36
+ ### AUDIT_QUEUE_NAME
37
+ 1. When set, a copy of all messages sent and received will be add to this queue
38
+
39
+ ### RSBCRON_[msg name]
40
+ 1. An empty message will be created and sent based on the cron string
41
+
42
+ ## RSBMQ - Message queue
43
+ 1. Environment Variable Name: RSBMQ
44
+
45
+ ### Beanstalk
46
+
47
+ ### Redis
48
+
49
+ ### SQS
50
+ RSBMQ=aws://[region]/[queue_name]
@@ -0,0 +1,18 @@
1
+ require 'aws-sdk-dynamodb'
2
+
3
+ module RServiceBus2
4
+ # AppResourceAWSDynamoDb
5
+ class AppResourceAWSDynamoDb < AppResource
6
+ # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
7
+ def connect(uri)
8
+ region = uri.host
9
+
10
+ aws = Aws::DynamoDB::Client.new(region: region)
11
+ puts "aws #{aws}"
12
+ aws
13
+ end
14
+
15
+ def finished
16
+ end
17
+ end
18
+ end
@@ -31,6 +31,9 @@ module RServiceBus2
31
31
  when 'file'
32
32
  require 'rservicebus2/appresource/file'
33
33
  rm.add k.sub('RSB_', ''), AppResourceFile.new(host, uri)
34
+ when 'awsdynamodb'
35
+ require 'rservicebus2/appresource/awsdynamodb'
36
+ rm.add k.sub('RSB_', ''), AppResourceAWSDynamoDb.new(host, uri)
34
37
  else
35
38
  abort("Scheme, #{uri.scheme}, not recognised when configuring
36
39
  app resource, #{k}=#{v}")
@@ -133,7 +133,7 @@ module RServiceBus2
133
133
  def load_working_dir_list
134
134
  puts "Config.load_working_dir_list.1"
135
135
  puts "Config.load_working_dir_list.2 #{@contract_list}"
136
- path_list = get_value('WORKING_DIR')
136
+ path_list = get_value('WORKING_DIR', './')
137
137
  return self if path_list.nil?
138
138
 
139
139
  path_list.split(';').each do |path|
@@ -43,8 +43,8 @@ module RServiceBus2
43
43
 
44
44
  # Thin veneer for Configuring state
45
45
  def configure_saga_storage
46
- string = RServiceBus2.get_value('SAGA_URI')
47
- string = 'dir:///tmp' if string.nil?
46
+ string = RServiceBus2.get_value('SAGA_URI', 'dir:///tmp/saga')
47
+ # string = 'dir:///tmp' if string.nil?
48
48
 
49
49
  uri = URI.parse(string)
50
50
  @saga_storage = SagaStorage.get(uri)
@@ -18,6 +18,15 @@ module RServiceBus2
18
18
  when 'beanstalk'
19
19
  require 'rservicebus2/mq/beanstalk'
20
20
  mq = MQBeanstalk.new(uri)
21
+ when 'file'
22
+ require 'rservicebus2/mq/file'
23
+ mq = MQFile.new(uri)
24
+ when 'redis'
25
+ require 'rservicebus2/mq/redis'
26
+ mq = MQRedis.new(uri)
27
+ when 'aws'
28
+ require 'rservicebus2/mq/aws'
29
+ mq = MQAWS.new(uri)
21
30
  else
22
31
  abort("Scheme, #{uri.scheme}, not recognised when configuring mq,
23
32
  #{string}")
@@ -0,0 +1,85 @@
1
+ require 'aws-sdk-sqs'
2
+ require 'aws-sdk-sts'
3
+ require 'rservicebus2/mq'
4
+
5
+ module RServiceBus2
6
+ # Beanstalk client implementation.
7
+ class MQAWS < MQ
8
+ # Connect to the broker
9
+ # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
10
+ def connect(region, port)
11
+ begin
12
+ @max_job_size = 4_194_304
13
+ @region = region
14
+
15
+ sts_client = Aws::STS::Client.new(region: region)
16
+ @caller_identity_account = sts_client.get_caller_identity.account
17
+ rescue StandardError => e
18
+ puts 'Error connecting to AWS'
19
+ puts "Host string, #{region}"
20
+ puts e.message
21
+ puts e.backtrace
22
+ abort
23
+ end
24
+ end
25
+
26
+ def subscribe(queuename)
27
+ # For example:
28
+ # 'https://sqs.us-east-1.amazonaws.com/111111111111/my-queue'
29
+ @queue_url = 'https://sqs.' + @region + '.amazonaws.com/' +
30
+ @caller_identity_account + '/' + queuename
31
+ @sqs_client = Aws::SQS::Client.new(region: @region)
32
+ end
33
+
34
+ # Get next msg from queue
35
+ def pop
36
+ begin
37
+ response = @sqs_client.receive_message(
38
+ queue_url: @queue_url,
39
+ max_number_of_messages: 1
40
+ )
41
+
42
+ if response.messages.count.zero?
43
+ raise NoMsgToProcess
44
+ end
45
+
46
+ response.messages.each do |message|
47
+ @job = message
48
+ end
49
+ rescue StandardError => e
50
+ raise e
51
+ end
52
+ @job.body
53
+ end
54
+
55
+ def return_to_queue
56
+ # @job.release if @job
57
+ @job = nil
58
+ end
59
+
60
+ def ack
61
+ @sqs_client.delete_message({
62
+ queue_url: @queue_url,
63
+ receipt_handle: @job.receipt_handle
64
+ })
65
+ @job = nil
66
+ end
67
+
68
+ def send(queue_name, msg)
69
+ if msg.length > @max_job_size
70
+ puts '***Attempting to send a msg which will not fit on queue.'
71
+ puts "***Msg size, #{msg.length}, max msg size, #{@max_job_size}."
72
+ fail JobTooBigError, "Msg size, #{msg.length}, max msg size,
73
+ #{@max_job_size}"
74
+ end
75
+
76
+ queue_url = 'https://sqs.' + @region + '.amazonaws.com/' +
77
+ @caller_identity_account + '/' + queue_name
78
+
79
+ @sqs_client.send_message(
80
+ queue_url: queue_url,
81
+ message_body: msg
82
+ )
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,59 @@
1
+ require 'fileutils'
2
+ require 'rservicebus2/mq'
3
+
4
+ module RServiceBus2
5
+ # Beanstalk client implementation.
6
+ class MQFile < MQ
7
+ # Connect to the broker
8
+ # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
9
+
10
+ def initialize(uri)
11
+ if uri.is_a? URI
12
+ @uri = uri
13
+ else
14
+ puts 'uri must be a valid URI'
15
+ abort
16
+ end
17
+
18
+ FileUtils.mkdir_p(@uri.path)
19
+ @local_queue_name = RServiceBus2.get_value('APPNAME', 'RServiceBus')
20
+ FileUtils.mkdir_p("#{@uri.path}/#{@local_queue_name}")
21
+ @timeout = RServiceBus2.get_value('QUEUE_TIMEOUT', '5').to_i
22
+ end
23
+
24
+ def subscribe(queue_name)
25
+ path = "#{@uri.path}/#{queue_name}"
26
+ FileUtils.mkdir_p(path)
27
+ @local_queue_name = queue_name
28
+ end
29
+
30
+ # Get next msg from queue
31
+ def pop
32
+ time = @timeout
33
+ while time > 0
34
+ files = Dir.glob("#{@uri.path}/#{@local_queue_name}/*.msg")
35
+ if files.length > 0
36
+ @file_path = files[0]
37
+ @body = IO.read(@file_path)
38
+ return @body
39
+ end
40
+ time -= 1
41
+ sleep(1)
42
+ end
43
+
44
+ raise NoMsgToProcess if files.length == 0
45
+ end
46
+
47
+ def return_to_queue
48
+ end
49
+
50
+ def ack
51
+ FileUtils.rm @file_path
52
+ end
53
+
54
+ def send(queue_name, msg)
55
+ FileUtils.mkdir_p("#{@uri.path}/#{queue_name}")
56
+ IO.write("#{@uri.path}/#{queue_name}/#{rand()}.msg", msg)
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,53 @@
1
+ require 'redis'
2
+ require 'rservicebus2/mq'
3
+
4
+ module RServiceBus2
5
+ # Redis client implementation.
6
+ class MQRedis < MQ
7
+ # Connect to the broker
8
+ # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
9
+ def connect(host, port)
10
+ port ||= 6379
11
+ string = "#{host}:#{port}"
12
+
13
+ begin
14
+ @redis = Redis.new(:host => host, :port => port)
15
+
16
+ rescue Exception => e
17
+ puts e.message
18
+ puts 'Error connecting to Redis for mq'
19
+ puts "Host string, #{string}"
20
+ abort()
21
+ end
22
+ end
23
+
24
+ # Connect to the queue
25
+ def subscribe( queuename )
26
+ @queuename = queuename
27
+ end
28
+
29
+ # Get next msg from queue
30
+ def pop
31
+ if @redis.llen( @queuename ) == 0 then
32
+ sleep @timeout
33
+ raise NoMsgToProcess.new
34
+ end
35
+
36
+ return @redis.lindex @queuename, 0
37
+ end
38
+
39
+ def returnToQueue
40
+ end
41
+
42
+ # "Commit" queue
43
+ def ack
44
+ @redis.lpop @queuename
45
+ end
46
+
47
+ # At least called in the Host rescue block, to ensure all network links are healthy
48
+ def send( queueName, msg )
49
+ @redis.rpush queueName, msg
50
+ end
51
+
52
+ end
53
+ end
@@ -24,7 +24,7 @@ module RServiceBus2
24
24
  end
25
25
 
26
26
  def get_start_with_method_names(saga)
27
- get_methods_by_prefix(saga, 'startwith_')
27
+ get_methods_by_prefix(saga, 'start_with_')
28
28
  end
29
29
 
30
30
  # setBusAttributeIfRequested
@@ -63,7 +63,7 @@ module RServiceBus2
63
63
  @start_with[msg_name] = [] if @start_with[msg_name].nil?
64
64
  @start_with[msg_name] << s
65
65
 
66
- RServiceBus2.log "Registered, #{saga.name}, to startwith, #{msg_name}", true
66
+ RServiceBus2.log "Registered, #{saga.name}, to start_with, #{msg_name}", true
67
67
  end
68
68
 
69
69
  @saga[saga.name] = s
@@ -88,12 +88,13 @@ module RServiceBus2
88
88
  msg_class_name = msg.class.name.downcase
89
89
 
90
90
  RServiceBus2.log "SagaManager, started processing, #{msg_class_name}", true
91
- unless @start_with[msg_class_name].nil?
91
+ if @start_with.key?(msg_class_name)
92
+ # unless @start_with[msg_class_name].nil?
92
93
  @start_with[msg_class_name].each do |saga|
93
94
  data = SagaData.new(saga)
94
95
  @saga_storage.set(data)
95
96
 
96
- method_name = "startwith_#{msg_class_name}"
97
+ method_name = "start_with_#{msg_class_name}"
97
98
  process_msg(saga, data, method_name, msg)
98
99
 
99
100
  handled = true
@@ -102,8 +103,10 @@ module RServiceBus2
102
103
  return handled if handled == true
103
104
 
104
105
  return false if rmsg.correlation_id.nil?
106
+
105
107
  data = @saga_storage.get(rmsg.correlation_id)
106
- return handled if data.nil?
108
+ return false if data.nil?
109
+
107
110
  method_name = "handle_#{msg_class_name}"
108
111
  saga = @saga[data.saga_class_name]
109
112
  process_msg(saga, data, method_name, msg)
@@ -16,21 +16,21 @@ module RServiceBus2
16
16
  # Cleans the given path to ensure it can be used for as a parameter for the
17
17
  # require statement.
18
18
  # @param [String] file_path the path to be cleaned
19
- def get_require_path(filePath)
19
+ def get_require_path(file_path)
20
20
  file_path = './' + file_path unless file_path.start_with?('/')
21
21
 
22
22
  return file_path.sub('.rb', '') if File.exist?(file_path)
23
23
 
24
- abort('Filepath, ' + filePath + ", given for Saga require doesn't exist")
24
+ abort('Filepath, ' + file_path + ", given for Saga require doesn't exist")
25
25
  end
26
26
 
27
- # Instantiate the saga named in sagaName from the file name in filePath
27
+ # Instantiate the saga named in sagaName from the file name in file_path
28
28
  # Exceptions will be raised if encountered when loading sagas. This is a
29
29
  # load time activity, so sagas should load correctly. As much information
30
30
  # as possible is returned to enable the saga to be fixed, or configuration
31
31
  # corrected.
32
32
  # @param [String] sagaName name of the saga to instantiate
33
- # @param [String] filePath the path to the file to be loaded
33
+ # @param [String] file_path the path to the file to be loaded
34
34
  # @return [RServiceBus2::Saga] the loader
35
35
  def load_saga_from_file(saga_name, file_path)
36
36
  require_path = get_require_path(file_path)
@@ -50,7 +50,7 @@ module RServiceBus2
50
50
  end
51
51
 
52
52
  # Wrapper function
53
- # @param [String] filePath
53
+ # @param [String] file_path
54
54
  # @param [String] sagaName
55
55
  # @returns [RServiceBus2::Saga] saga
56
56
  def load_saga(file_path, saga_name)
@@ -97,7 +97,7 @@ module RServiceBus2
97
97
 
98
98
  saga_name = base_name.sub(ext_name, '')
99
99
 
100
- "Saga_#{saga_name}"
100
+ "saga_#{saga_name}".gsub(/(?<=_|^)(\w)/){$1.upcase}.gsub(/(?:_)(\w)/,'\1')
101
101
  end
102
102
 
103
103
  # Entry point for loading Sagas
@@ -106,7 +106,7 @@ module RServiceBus2
106
106
  RServiceBus2.rlog "SagaLoader.loadSagasFromPath. base_dir: #{base_dir}"
107
107
 
108
108
  get_list_of_files_for_dir(base_dir).each do |file_path|
109
- unless filePath.end_with?('.')
109
+ unless file_path.end_with?('.')
110
110
  saga_name = get_saga_name(file_path)
111
111
  load_saga(file_path, saga_name)
112
112
  end
@@ -75,7 +75,7 @@ module RServiceBus2
75
75
  end
76
76
 
77
77
  def load(path)
78
- return {} unless File.exist?(path)
78
+ return nil unless File.exist?(path)
79
79
 
80
80
  content = IO.read(path)
81
81
 
metadata CHANGED
@@ -1,85 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rservicebus2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guy Irvine
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-27 00:00:00.000000000 Z
11
+ date: 2021-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: uuidtools
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 2.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 2.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 2.5.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 2.5.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: beanstalk-client
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 1.1.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 1.1.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: fluiddb
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.1.19
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 0.1.19
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: parse-cron
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 0.1.4
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 0.1.4
83
83
  description: A Ruby interpretation of NServiceBus
84
84
  email: guy@guyirvine.com
85
85
  executables:
@@ -92,12 +92,23 @@ executables:
92
92
  extensions: []
93
93
  extra_rdoc_files: []
94
94
  files:
95
+ - LICENSE
96
+ - README.md
97
+ - bin/return_messages_to_source_queue
98
+ - bin/rsb_ctl
99
+ - bin/rservicebus2
100
+ - bin/rservicebus2-create
101
+ - bin/rservicebus2-init
102
+ - bin/rservicebus2-transport
103
+ - bin/send_empty_message
104
+ - lib/rservicebus2.rb
95
105
  - lib/rservicebus2/agent.rb
106
+ - lib/rservicebus2/appresource.rb
107
+ - lib/rservicebus2/appresource/awsdynamodb.rb
96
108
  - lib/rservicebus2/appresource/dir.rb
97
109
  - lib/rservicebus2/appresource/file.rb
98
110
  - lib/rservicebus2/appresource/fluiddb.rb
99
111
  - lib/rservicebus2/appresource/fluiddb2.rb
100
- - lib/rservicebus2/appresource.rb
101
112
  - lib/rservicebus2/appresource_configure.rb
102
113
  - lib/rservicebus2/audit.rb
103
114
  - lib/rservicebus2/circuitbreaker.rb
@@ -109,58 +120,52 @@ files:
109
120
  - lib/rservicebus2/handler_manager.rb
110
121
  - lib/rservicebus2/helper_functions.rb
111
122
  - lib/rservicebus2/host.rb
123
+ - lib/rservicebus2/message.rb
112
124
  - lib/rservicebus2/message/statisticoutput.rb
113
125
  - lib/rservicebus2/message/subscription.rb
114
126
  - lib/rservicebus2/message/verboseoutput.rb
115
- - lib/rservicebus2/message.rb
127
+ - lib/rservicebus2/monitor.rb
116
128
  - lib/rservicebus2/monitor/dir.rb
117
129
  - lib/rservicebus2/monitor/dirnotifier.rb
118
130
  - lib/rservicebus2/monitor/message.rb
119
131
  - lib/rservicebus2/monitor/xmldir.rb
120
- - lib/rservicebus2/monitor.rb
121
132
  - lib/rservicebus2/monitor_configure.rb
122
- - lib/rservicebus2/mq/beanstalk.rb
123
133
  - lib/rservicebus2/mq.rb
134
+ - lib/rservicebus2/mq/aws.rb
135
+ - lib/rservicebus2/mq/beanstalk.rb
136
+ - lib/rservicebus2/mq/file.rb
137
+ - lib/rservicebus2/mq/redis.rb
124
138
  - lib/rservicebus2/resource_manager.rb
125
139
  - lib/rservicebus2/saga/base.rb
126
140
  - lib/rservicebus2/saga/data.rb
127
141
  - lib/rservicebus2/saga/manager.rb
128
142
  - lib/rservicebus2/saga_loader.rb
143
+ - lib/rservicebus2/saga_storage.rb
129
144
  - lib/rservicebus2/saga_storage/dir.rb
130
145
  - lib/rservicebus2/saga_storage/inmemory.rb
131
- - lib/rservicebus2/saga_storage.rb
132
146
  - lib/rservicebus2/sendat_manager.rb
147
+ - lib/rservicebus2/sendat_storage.rb
133
148
  - lib/rservicebus2/sendat_storage/file.rb
134
149
  - lib/rservicebus2/sendat_storage/inmemory.rb
135
- - lib/rservicebus2/sendat_storage.rb
136
150
  - lib/rservicebus2/state_manager.rb
151
+ - lib/rservicebus2/state_storage.rb
137
152
  - lib/rservicebus2/state_storage/dir.rb
138
153
  - lib/rservicebus2/state_storage/inmemory.rb
139
- - lib/rservicebus2/state_storage.rb
140
154
  - lib/rservicebus2/statistic_manager.rb
141
155
  - lib/rservicebus2/stats.rb
142
156
  - lib/rservicebus2/subscription_manager.rb
143
- - lib/rservicebus2/subscription_storage/file.rb
144
157
  - lib/rservicebus2/subscription_storage.rb
158
+ - lib/rservicebus2/subscription_storage/file.rb
145
159
  - lib/rservicebus2/subscription_storage_configure.rb
146
- - lib/rservicebus2/test/bus.rb
147
160
  - lib/rservicebus2/test.rb
161
+ - lib/rservicebus2/test/bus.rb
148
162
  - lib/rservicebus2/transporter.rb
149
163
  - lib/rservicebus2/usermessage/withpayload.rb
150
- - lib/rservicebus2.rb
151
- - bin/return_messages_to_source_queue
152
- - bin/rsb_ctl
153
- - bin/rservicebus2
154
- - bin/rservicebus2-create
155
- - bin/rservicebus2-init
156
- - bin/rservicebus2-transport
157
- - bin/send_empty_message
158
- - LICENSE
159
164
  homepage: http://rubygems.org/gems/rservicebus2
160
165
  licenses:
161
166
  - LGPL-3.0
162
167
  metadata: {}
163
- post_install_message:
168
+ post_install_message:
164
169
  rdoc_options: []
165
170
  require_paths:
166
171
  - lib
@@ -175,9 +180,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
175
180
  - !ruby/object:Gem::Version
176
181
  version: '0'
177
182
  requirements: []
178
- rubyforge_project:
179
- rubygems_version: 2.0.14.1
180
- signing_key:
183
+ rubygems_version: 3.0.9
184
+ signing_key:
181
185
  specification_version: 4
182
186
  summary: RServiceBus
183
187
  test_files: []