rservicebus 0.0.64 → 0.0.65

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.
@@ -17,13 +17,14 @@ module RServiceBus
17
17
 
18
18
  def _connect
19
19
  @connection = self.connect(@uri)
20
- puts "#{self.class.name}. Connected to, #{@uri.to_s}" unless !ENV["QUIET"].nil?
20
+ @host.log "#{self.class.name}. Connected to, #{@uri.to_s}", true
21
21
  end
22
22
 
23
23
  # Resources are attached resources, and can be specified using the URI syntax.
24
24
  #
25
25
  # @param [String] uri a location for the resource to which we will attach, eg redis://127.0.0.1/foo
26
- def initialize( uri )
26
+ def initialize( host, uri )
27
+ @host = host
27
28
  @uri = uri
28
29
  #Do a connect / disconnect loop on startup to validate the connection
29
30
  self._connect
@@ -5,7 +5,7 @@ module RServiceBus
5
5
  #Configure AppResources for an rservicebus host
6
6
  class ConfigureAppResource
7
7
 
8
- def getResources( env )
8
+ def getResources( env, host )
9
9
  resources = Hash.new
10
10
 
11
11
  env.each do |k,v|
@@ -14,30 +14,30 @@ module RServiceBus
14
14
  uri = URI.parse( v )
15
15
  case uri.scheme
16
16
  when "redis"
17
- resources[k.sub( "RSB_", "" )] = AppResource_Redis.new( uri )
17
+ resources[k.sub( "RSB_", "" )] = AppResource_Redis.new( host, uri )
18
18
 
19
19
  when "mysql"
20
20
  require "rservicebus/AppResource/Mysql"
21
- resources[k.sub( "RSB_", "" )] = AppResource_Mysql.new( uri )
21
+ resources[k.sub( "RSB_", "" )] = AppResource_Mysql.new( host, uri )
22
22
 
23
23
  when "fluiddbmysql"
24
24
  require "rservicebus/AppResource/FluidDbMysql"
25
- resources[k.sub( "RSB_", "" )] = AppResource_FluidDbMysql.new( uri )
25
+ resources[k.sub( "RSB_", "" )] = AppResource_FluidDbMysql.new( host, uri )
26
26
  when "fluiddbmysql2"
27
27
  require "rservicebus/AppResource/FluidDbMysql2"
28
- resources[k.sub( "RSB_", "" )] = AppResource_FluidDbMysql2.new( uri )
28
+ resources[k.sub( "RSB_", "" )] = AppResource_FluidDbMysql2.new( host, uri )
29
29
  when "fluiddbpgsql"
30
30
  require "rservicebus/AppResource/FluidDbPgsql"
31
- resources[k.sub( "RSB_", "" )] = AppResource_FluidDbPgsql.new( uri )
31
+ resources[k.sub( "RSB_", "" )] = AppResource_FluidDbPgsql.new( host, uri )
32
32
  when "fluiddbtinytds"
33
33
  require "rservicebus/AppResource/FluidDbTinyTds"
34
- resources[k.sub( "RSB_", "" )] = AppResource_FluidDbTinyTds.new( uri )
34
+ resources[k.sub( "RSB_", "" )] = AppResource_FluidDbTinyTds.new( host, uri )
35
35
  when "dir"
36
36
  require "rservicebus/AppResource/Dir"
37
- resources[k.sub( "RSB_", "" )] = AppResource_Dir.new( uri )
37
+ resources[k.sub( "RSB_", "" )] = AppResource_Dir.new( host, uri )
38
38
  when "file"
39
39
  require "rservicebus/AppResource/File"
40
- resources[k.sub( "RSB_", "" )] = AppResource_File.new( uri )
40
+ resources[k.sub( "RSB_", "" )] = AppResource_File.new( host, uri )
41
41
  else
42
42
  abort("Scheme, #{uri.scheme}, not recognised when configuring app resource, #{k}=#{v}");
43
43
  end
@@ -59,13 +59,13 @@ module RServiceBus
59
59
  #
60
60
  # @param [RServiceBus::Handler] handler
61
61
  ## @param [Hash] appResources As hash[k,v] where k is the name of a resource, and v is the resource
62
- def setAppResources( handler )
62
+ def setAppResources_to_be_removed( handler )
63
63
  @host.log "Checking app resources for: #{handler.class.name}", true
64
64
  @host.log "If your attribute is not getting set, check that it is in the 'attr_accessor' list", true
65
65
  @appResources.each do |k,v|
66
66
  if handler.class.method_defined?( k ) then
67
67
  v._connect
68
- v.Begin
68
+ # v.Begin
69
69
  handler.instance_variable_set( "@#{k}", v.getResource() )
70
70
  @host.log "App resource attribute, #{k}, set for: " + handler.class.name
71
71
  end
@@ -89,7 +89,7 @@ module RServiceBus
89
89
  next if @resourceListByHandlerName[handler.class.name].nil?
90
90
  @resourceListByHandlerName[handler.class.name].each do |k|
91
91
  handler.instance_variable_set( "@#{k}", @appResources[k].getResource() )
92
- @host.log "App resource attribute, #{k}, set for: " + handler.class.name
92
+ @host.log "App resource attribute, #{k}, set for: " + handler.class.name, true
93
93
  end
94
94
  end
95
95
 
@@ -100,10 +100,10 @@ module RServiceBus
100
100
 
101
101
  list = self.getListOfResourcesNeededToProcessMsg( msgName )
102
102
  list.each do |resourceName|
103
- @host.log( "Preparing reousrce: #{resourceName}", true )
104
103
  r = @appResources[resourceName]
105
104
  r._connect
106
105
  r.Begin
106
+ @host.log( "Preparing resource: #{resourceName}. Begin", true )
107
107
  end
108
108
 
109
109
  self.setResourcesForHandlersNeededToProcessMsg( msgName )
@@ -45,7 +45,7 @@ module RServiceBus
45
45
  #Thin veneer for Configuring external resources
46
46
  #
47
47
  def configureAppResource
48
- @appResources = ConfigureAppResource.new.getResources( ENV )
48
+ @appResources = ConfigureAppResource.new.getResources( ENV, self )
49
49
  return self;
50
50
  end
51
51
 
@@ -188,7 +188,7 @@ module RServiceBus
188
188
  #Popping a msg off the queue should not be in the message handler, as it affects retry
189
189
  begin
190
190
  if statOutputCountdown == 0 then
191
- log @stats.getForReporting
191
+ log @stats.getForReporting, true
192
192
  statOutputCountdown = @config.statOutputCountdown
193
193
  GC.start
194
194
  end
@@ -267,10 +267,14 @@ module RServiceBus
267
267
  rescue NoMsgToProcess => e
268
268
  #This exception is just saying there are no messages to process
269
269
  statOutputCountdown = 0
270
-
270
+ @queueForMsgsToBeSentOnComplete = Array.new
271
+
271
272
  @monitors.each do |o|
272
273
  o.Look
273
274
  end
275
+
276
+ self.sendQueuedMsgs
277
+ @queueForMsgsToBeSentOnComplete = nil
274
278
 
275
279
 
276
280
  rescue Exception => e
@@ -18,18 +18,48 @@ module RServiceBus
18
18
 
19
19
  end
20
20
 
21
+ def checkSendHash
22
+ if !@QueryStringParts.nil? && @QueryStringParts.has_key?("hash") then
23
+ flag = @QueryStringParts["hash"][0]
24
+ return flag == "Y"
25
+ end
26
+
27
+ return false
28
+ end
29
+
30
+
31
+ def SendArray( payload, uri )
32
+ payload.each do |csvline|
33
+ self.send( csvline, uri )
34
+ end
35
+ end
36
+
37
+ def SendHash( payload, uri )
38
+ headLine = payload.shift
39
+ payload.each do |csvline|
40
+ hash = Hash.new
41
+ csvline.each_with_index do |v,idx|
42
+ hash[headLine[idx]] = v
43
+ end
44
+ self.send( hash, uri )
45
+ end
46
+ end
47
+
21
48
  def ProcessPath( filePath )
22
49
  uri = URI.parse( "file://#{filePath}" )
23
50
 
24
51
  content = IO.read( filePath )
25
52
  payload = CSV.parse( content )
26
53
 
27
- self.checkPayloadForNumberOfColumns( payload )
28
54
 
29
- payload.each do |csvline|
30
- self.send( csvline, uri )
55
+ self.checkPayloadForNumberOfColumns( payload )
56
+ if self.checkSendHash then
57
+ self.SendHash( payload, uri )
58
+ else
59
+ self.SendArray( payload, uri )
31
60
  end
32
61
 
62
+
33
63
  return content
34
64
  end
35
65
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rservicebus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.64
4
+ version: 0.0.65
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: 2013-05-04 00:00:00.000000000 Z
12
+ date: 2013-05-09 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: A Ruby interpretation of NServiceBus
15
15
  email: guy@guyirvine.com