rservicebus 0.1.74 → 0.1.75

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. data/bin/ReturnMessagesToSourceQueue +18 -18
  2. data/bin/SendEmptyMessage +3 -3
  3. data/bin/rsb_ctl +10 -10
  4. data/bin/rservicebus-create +4 -4
  5. data/bin/rservicebus-init +7 -6
  6. data/lib/rservicebus.rb +49 -49
  7. data/lib/rservicebus/Agent.rb +4 -4
  8. data/lib/rservicebus/AppResource.rb +4 -4
  9. data/lib/rservicebus/AppResource/Dir.rb +3 -3
  10. data/lib/rservicebus/AppResource/FluidDb.rb +1 -1
  11. data/lib/rservicebus/AppResource/FluidDbFirebird.rb +1 -1
  12. data/lib/rservicebus/AppResource/FluidDbMysql.rb +4 -4
  13. data/lib/rservicebus/AppResource/FluidDbMysql2.rb +4 -4
  14. data/lib/rservicebus/AppResource/FluidDbPgsql.rb +4 -4
  15. data/lib/rservicebus/AppResource/FluidDbTinyTds.rb +1 -1
  16. data/lib/rservicebus/AppResource/Mysql.rb +2 -2
  17. data/lib/rservicebus/AppResource/Redis.rb +1 -1
  18. data/lib/rservicebus/AppResource/ScpDownload.rb +51 -0
  19. data/lib/rservicebus/AppResource/ScpUpload.rb +3 -2
  20. data/lib/rservicebus/AppResource/Smb.rb +3 -3
  21. data/lib/rservicebus/AppResource/SmbDir.rb +2 -2
  22. data/lib/rservicebus/AppResource/SmbFile.rb +1 -1
  23. data/lib/rservicebus/Audit.rb +9 -9
  24. data/lib/rservicebus/CircuitBreaker.rb +4 -4
  25. data/lib/rservicebus/Config.rb +46 -46
  26. data/lib/rservicebus/ConfigureAppResource.rb +64 -63
  27. data/lib/rservicebus/ConfigureMonitor.rb +12 -12
  28. data/lib/rservicebus/ConfigureSubscriptionStorage.rb +5 -5
  29. data/lib/rservicebus/CronManager.rb +8 -8
  30. data/lib/rservicebus/EndpointMapping.rb +11 -11
  31. data/lib/rservicebus/HandlerLoader.rb +33 -33
  32. data/lib/rservicebus/HandlerManager.rb +2 -2
  33. data/lib/rservicebus/Host.rb +58 -58
  34. data/lib/rservicebus/MQ.rb +21 -21
  35. data/lib/rservicebus/MQ/Beanstalk.rb +9 -9
  36. data/lib/rservicebus/MQ/RabbitMq.rb +5 -5
  37. data/lib/rservicebus/MQ/Redis.rb +3 -3
  38. data/lib/rservicebus/Message.rb +11 -11
  39. data/lib/rservicebus/Monitor.rb +5 -5
  40. data/lib/rservicebus/Monitor/CsvDir.rb +5 -5
  41. data/lib/rservicebus/Monitor/CsvPerLine.rb +5 -5
  42. data/lib/rservicebus/Monitor/Dir.rb +34 -34
  43. data/lib/rservicebus/Monitor/DirNotifier.rb +15 -15
  44. data/lib/rservicebus/ResourceManager.rb +2 -2
  45. data/lib/rservicebus/Saga/Manager.rb +18 -18
  46. data/lib/rservicebus/SagaLoader.rb +19 -19
  47. data/lib/rservicebus/SagaStorage.rb +4 -4
  48. data/lib/rservicebus/SagaStorage/Dir.rb +12 -12
  49. data/lib/rservicebus/SendAtManager.rb +4 -4
  50. data/lib/rservicebus/SendAtStorage.rb +5 -5
  51. data/lib/rservicebus/SendAtStorage/File.rb +3 -3
  52. data/lib/rservicebus/StateManager.rb +2 -2
  53. data/lib/rservicebus/StateStorage.rb +2 -2
  54. data/lib/rservicebus/StateStorage/Dir.rb +11 -11
  55. data/lib/rservicebus/StateStorage/InMemory.rb +1 -1
  56. data/lib/rservicebus/StatisticManager.rb +2 -2
  57. data/lib/rservicebus/SubscriptionManager.rb +2 -2
  58. data/lib/rservicebus/SubscriptionStorage.rb +4 -4
  59. data/lib/rservicebus/SubscriptionStorage/File.rb +3 -3
  60. data/lib/rservicebus/SubscriptionStorage/Redis.rb +10 -10
  61. data/lib/rservicebus/Test.rb +2 -2
  62. data/lib/rservicebus/Test/Bus.rb +2 -2
  63. data/lib/rservicebus/Test/Redis.rb +1 -1
  64. data/lib/rservicebus/Transporter.rb +15 -15
  65. data/lib/rservicebus/helper_functions.rb +15 -15
  66. metadata +13 -12
@@ -59,10 +59,10 @@ module RServiceBus
59
59
  v.finished
60
60
  rescue Exception => e1
61
61
  puts "Caught nested exception rolling back, #{v.class.name}, for msg, #{msgName}"
62
- puts "****"
62
+ puts '****'
63
63
  puts e1.message
64
64
  puts e1.backtrace
65
- puts "****"
65
+ puts '****'
66
66
  end
67
67
  end
68
68
 
@@ -20,14 +20,14 @@ class Saga_Manager
20
20
  def GetMethodsByPrefix( saga, prefix )
21
21
  list = []
22
22
  saga.instance_methods.each do |name|
23
- list.push name.to_s.sub( prefix, "" ) if name.to_s.slice( 0,prefix.length ) == prefix
23
+ list.push name.to_s.sub( prefix, '') if name.to_s.slice( 0,prefix.length ) == prefix
24
24
  end
25
25
 
26
26
  return list
27
27
  end
28
28
 
29
29
  def GetStartWithMethodNames( saga )
30
- return self.GetMethodsByPrefix( saga, "StartWith_" )
30
+ return self.GetMethodsByPrefix( saga, 'StartWith_')
31
31
  end
32
32
 
33
33
  # setBusAttributeIfRequested
@@ -36,7 +36,7 @@ class Saga_Manager
36
36
  def setBusAttributeIfRequested( saga )
37
37
  if defined?( saga.Bus ) then
38
38
  saga.Bus = @host
39
- RServiceBus.log "Bus attribute set for: " + saga.class.name
39
+ RServiceBus.log 'Bus attribute set for: ' + saga.class.name
40
40
  end
41
41
 
42
42
  return self
@@ -76,12 +76,12 @@ class Saga_Manager
76
76
 
77
77
 
78
78
  def prepSaga( saga )
79
- if !@resourceListBySagaName[saga.class.name].nil? then
80
- @resourceListBySagaName[saga.class.name].each do |k,v|
81
- saga.instance_variable_set( "@#{k}", @resourceManager.get(k).getResource() )
82
- RServiceBus.rlog "App resource attribute, #{k}, set for: " + saga.class.name
83
- end
79
+ unless @resourceListBySagaName[saga.class.name].nil? then
80
+ @resourceListBySagaName[saga.class.name].each do |k, v|
81
+ saga.instance_variable_set("@#{k}", @resourceManager.get(k).getResource())
82
+ RServiceBus.rlog "App resource attribute, #{k}, set for: " + saga.class.name
84
83
  end
84
+ end
85
85
 
86
86
  end
87
87
 
@@ -91,16 +91,16 @@ class Saga_Manager
91
91
  msg = rmsg.msg
92
92
 
93
93
  RServiceBus.log "SagaManager, started processing, #{msg.class.name}", true
94
- if !@startWith[msg.class.name].nil? then
95
- @startWith[msg.class.name].each do |saga|
96
- data = Saga_Data.new( saga )
97
- @sagaStorage.Set( data )
98
-
99
- methodName = "StartWith_#{msg.class.name}"
100
- self.ProcessMsg( saga, data, methodName, msg )
101
-
102
- handled = true
103
- end
94
+ unless @startWith[msg.class.name].nil? then
95
+ @startWith[msg.class.name].each do |saga|
96
+ data = Saga_Data.new(saga)
97
+ @sagaStorage.Set(data)
98
+
99
+ methodName = "StartWith_#{msg.class.name}"
100
+ self.ProcessMsg(saga, data, methodName, msg)
101
+
102
+ handled = true
103
+ end
104
104
  end
105
105
  return handled if handled == true
106
106
 
@@ -23,15 +23,15 @@ class SagaLoader
23
23
  #
24
24
  # @param [String] filePath the path to be cleaned
25
25
  def getRequirePath( filePath )
26
- if !filePath.start_with?( "/" ) then
27
- filePath = "./" + filePath
28
- end
26
+ unless filePath.start_with?('/') then
27
+ filePath = './' + filePath
28
+ end
29
29
 
30
30
  if File.exists?( filePath ) then
31
- return filePath.sub( ".rb", "")
31
+ return filePath.sub( '.rb', '')
32
32
  end
33
33
 
34
- abort( "Filepath, " + filePath + ", given for Saga require doesn't exist" );
34
+ abort( 'Filepath, ' + filePath + ", given for Saga require doesn't exist" );
35
35
  end
36
36
 
37
37
  # Instantiate the saga named in sagaName from the file name in filePath
@@ -49,9 +49,9 @@ class SagaLoader
49
49
  begin
50
50
  saga = Object.const_get(sagaName);
51
51
  rescue Exception => e
52
- puts "Expected class name: " + sagaName + ", not found after require: " + requirePath
53
- puts "**** Check in " + filePath + " that the class is named : " + sagaName
54
- puts "( In case its not that )"
52
+ puts 'Expected class name: ' + sagaName + ', not found after require: ' + requirePath
53
+ puts '**** Check in ' + filePath + ' that the class is named : ' + sagaName
54
+ puts '( In case its not that )'
55
55
  raise e
56
56
  end
57
57
 
@@ -70,17 +70,17 @@ class SagaLoader
70
70
  end
71
71
 
72
72
  begin
73
- RServiceBus.rlog "filePath: " + filePath
74
- RServiceBus.rlog "sagaName: " + sagaName
73
+ RServiceBus.rlog 'filePath: ' + filePath
74
+ RServiceBus.rlog 'sagaName: ' + sagaName
75
75
 
76
76
  saga = self.loadSagaFromFile( sagaName, filePath )
77
- RServiceBus.log "Loaded Saga: " + sagaName
77
+ RServiceBus.log 'Loaded Saga: ' + sagaName
78
78
 
79
79
  @sagaManager.RegisterSaga( saga )
80
80
 
81
81
  @listOfLoadedPaths[filePath] = 1
82
82
  rescue Exception => e
83
- puts "Exception loading saga from file: " + filePath
83
+ puts 'Exception loading saga from file: ' + filePath
84
84
  puts e.message
85
85
  puts e.backtrace[0]
86
86
 
@@ -94,7 +94,7 @@ class SagaLoader
94
94
  # @param [String] path directory to check
95
95
  # @return [Array] a list of paths to files found in the given path
96
96
  def getListOfFilesForDir( path )
97
- list = Dir[path + "/*"];
97
+ list = Dir[path + '/*'];
98
98
 
99
99
  RServiceBus.rlog "SagaLoader.getListOfFilesForDir. path: #{path}, list: #{list}"
100
100
 
@@ -108,7 +108,7 @@ class SagaLoader
108
108
  baseName = File.basename( filePath )
109
109
  extName = File.extname( baseName )
110
110
 
111
- sagaName = baseName.sub( extName, "" )
111
+ sagaName = baseName.sub( extName, '')
112
112
 
113
113
  return "Saga_#{sagaName}"
114
114
  end
@@ -121,11 +121,11 @@ class SagaLoader
121
121
  RServiceBus.rlog "SagaLoader.loadSagasFromPath. baseDir: #{baseDir}"
122
122
 
123
123
  self.getListOfFilesForDir(baseDir).each do |filePath|
124
- if !filePath.end_with?( "." ) then
125
-
126
- sagaName = self.getSagaName( filePath )
127
- self.loadSaga( filePath, sagaName )
128
- end
124
+ unless filePath.end_with?('.') then
125
+
126
+ sagaName = self.getSagaName(filePath)
127
+ self.loadSaga(filePath, sagaName)
128
+ end
129
129
  end
130
130
 
131
131
  return self
@@ -4,11 +4,11 @@ module RServiceBus
4
4
 
5
5
  def SagaStorage.Get( uri )
6
6
  case uri.scheme
7
- when "dir"
8
- require "rservicebus/SagaStorage/Dir"
7
+ when 'dir'
8
+ require 'rservicebus/SagaStorage/Dir'
9
9
  return SagaStorage_Dir.new( uri )
10
- when "inmem"
11
- require "rservicebus/SagaStorage/InMemory"
10
+ when 'inmem'
11
+ require 'rservicebus/SagaStorage/InMemory'
12
12
  return SagaStorage_InMemory.new( uri )
13
13
  else
14
14
  abort("Scheme, #{uri.scheme}, not recognised when configuring SagaStorage, #{uri.to_s}");
@@ -6,23 +6,23 @@ module RServiceBus
6
6
  @sagaDir = uri.path
7
7
 
8
8
  inputDir = Dir.new( @sagaDir )
9
- if !File.writable?( @sagaDir ) then
10
- puts "***** Directory is not writable, #{@sagaDir}."
11
- puts "***** Make the directory, #{@sagaDir}, writable and try again."
12
- puts "***** Or, set the Saga Directory explicitly by, SAGA_URI=<dir://path/to/saga>"
13
- abort();
9
+ unless File.writable?(@sagaDir) then
10
+ puts "***** Directory is not writable, #{@sagaDir}."
11
+ puts "***** Make the directory, #{@sagaDir}, writable and try again."
12
+ puts '***** Or, set the Saga Directory explicitly by, SAGA_URI=<dir://path/to/saga>'
13
+ abort();
14
14
  end
15
15
  rescue Errno::ENOENT => e
16
16
  puts "***** Directory does not exist, #{@sagaDir}."
17
17
  puts "***** Create the directory, #{@sagaDir}, and try again."
18
18
  puts "***** eg, mkdir #{@sagaDir}"
19
- puts "***** Or, set the Saga Directory explicitly by, SAGA_URI=<dir://path/to/saga>"
19
+ puts '***** Or, set the Saga Directory explicitly by, SAGA_URI=<dir://path/to/saga>'
20
20
  abort();
21
21
  rescue Errno::ENOTDIR => e
22
22
  puts "***** The specified path does not point to a directory, #{@sagaDir}."
23
23
  puts "***** Either repoint path to a directory, or remove, #{@sagaDir}, and create it as a directory."
24
24
  puts "***** eg, rm #{@sagaDir} && mkdir #{@sagaDir}"
25
- puts "***** Or, set the Saga Directory explicitly by, SAGA_URI=<dir://path/to/saga>"
25
+ puts '***** Or, set the Saga Directory explicitly by, SAGA_URI=<dir://path/to/saga>'
26
26
  abort();
27
27
  end
28
28
 
@@ -35,14 +35,14 @@ module RServiceBus
35
35
  #Set
36
36
  def Set( data )
37
37
  path = self.getPath( data.correlationId )
38
- @list << Hash["path", path, "data", data]
38
+ @list << Hash['path', path, 'data', data]
39
39
  end
40
40
 
41
41
  #Get
42
42
  def Get( correlationId )
43
43
  path = self.getPath( correlationId )
44
44
  data = self.load( path )
45
- @list << Hash["path", path, "data", data]
45
+ @list << Hash['path', path, 'data', data]
46
46
 
47
47
  return data
48
48
  end
@@ -50,7 +50,7 @@ module RServiceBus
50
50
  #Finish
51
51
  def Commit
52
52
  @list.each do |e|
53
- File.open( e['path'], "w" ) { |f| f.write( YAML::dump( e['data'] ) ) }
53
+ File.open( e['path'], 'w') { |f| f.write( YAML::dump( e['data'] ) ) }
54
54
  end
55
55
  @deleted.each do |correlationId|
56
56
  File.unlink( self.getPath( correlationId ) )
@@ -72,11 +72,11 @@ module RServiceBus
72
72
  end
73
73
 
74
74
  def load( path )
75
- return Hash.new if !File.exists?( path )
75
+ return Hash.new unless File.exists?(path)
76
76
 
77
77
  content = IO.read( path )
78
78
 
79
- return Hash.new if content == ""
79
+ return Hash.new if content == ''
80
80
 
81
81
  return YAML::load( content )
82
82
  end
@@ -9,9 +9,9 @@ module RServiceBus
9
9
  #Check if the SendAt Dir has been specified
10
10
  #If it has, make sure it exists, and is writable
11
11
 
12
- string = RServiceBus.getValue( "SENDAT_URI" )
12
+ string = RServiceBus.getValue('SENDAT_URI')
13
13
  if string.nil? then
14
- string = "file:///tmp/rservicebus-sendat"
14
+ string = 'file:///tmp/rservicebus-sendat'
15
15
  end
16
16
 
17
17
  uri = URI.parse( string )
@@ -24,8 +24,8 @@ module RServiceBus
24
24
  def Process
25
25
  now = DateTime.now
26
26
  @SendAtStorage.GetAll.each_with_index do |row,idx|
27
- if row["timestamp"] > now then
28
- @Bus._SendNeedsWrapping( row["msg"], row["queueName"], row["correlationId"] )
27
+ if row['timestamp'] > now then
28
+ @Bus._SendNeedsWrapping( row['msg'], row['queueName'], row['correlationId'] )
29
29
  @SendAtStorage.Delete( idx )
30
30
  end
31
31
  end
@@ -1,16 +1,16 @@
1
1
  module RServiceBus
2
2
 
3
- require "rservicebus/SendAtStorage"
3
+ require 'rservicebus/SendAtStorage'
4
4
 
5
5
  class SendAtStorage
6
6
 
7
7
  def SendAtStorage.Get( uri )
8
8
  case uri.scheme
9
- when "file"
10
- require "rservicebus/SendAtStorage/File"
9
+ when 'file'
10
+ require 'rservicebus/SendAtStorage/File'
11
11
  return SendAtStorage_File.new( uri )
12
- when "inmem"
13
- require "rservicebus/SendAtStorage/InMemory"
12
+ when 'inmem'
13
+ require 'rservicebus/SendAtStorage/InMemory'
14
14
  return SendAtStorage_InMemory.new( uri )
15
15
  else
16
16
  abort("Scheme, #{uri.scheme}, not recognised when configuring SendAtStorage, #{uri.to_s}");
@@ -6,11 +6,11 @@ module RServiceBus
6
6
  @list = self.load( uri.path )
7
7
  end
8
8
  def load( path )
9
- return Array.new if !File.exists?( path )
9
+ return Array.new unless File.exists?(path)
10
10
 
11
11
  content = IO.read( path )
12
12
 
13
- return Array.new if content == ""
13
+ return Array.new if content == ''
14
14
 
15
15
  return YAML::load( content )
16
16
  end
@@ -36,7 +36,7 @@ module RServiceBus
36
36
  #Finish
37
37
  def Save
38
38
  content = YAML::dump( @list )
39
- File.open( @uri.path, "w" ) { |f| f.write( YAML::dump( content ) ) }
39
+ File.open( @uri.path, 'w') { |f| f.write( YAML::dump( content ) ) }
40
40
  end
41
41
 
42
42
 
@@ -9,9 +9,9 @@ module RServiceBus
9
9
  #Check if the State Dir has been specified
10
10
  #If it has, make sure it exists, and is writable
11
11
 
12
- string = RServiceBus.getValue( "STATE_URI" )
12
+ string = RServiceBus.getValue('STATE_URI')
13
13
  if string.nil? then
14
- string = "dir:///tmp"
14
+ string = 'dir:///tmp'
15
15
  end
16
16
 
17
17
  uri = URI.parse( string )
@@ -4,10 +4,10 @@ module RServiceBus
4
4
 
5
5
  def StateStorage.Get( uri )
6
6
  case uri.scheme
7
- when "dir"
7
+ when 'dir'
8
8
  require 'rservicebus/StateStorage/Dir.rb'
9
9
  return StateStorage_Dir.new( uri )
10
- when "inmem"
10
+ when 'inmem'
11
11
  require 'rservicebus/StateStorage/InMemory.rb'
12
12
  return StateStorage_InMemory.new( uri )
13
13
  else
@@ -6,23 +6,23 @@ module RServiceBus
6
6
  @stateDir = uri.path
7
7
 
8
8
  inputDir = Dir.new( @stateDir )
9
- if !File.writable?( @stateDir ) then
10
- puts "***** Directory is not writable, #{@stateDir}."
11
- puts "***** Make the directory, #{@stateDir}, writable and try again."
12
- puts "***** Or, set the State Directory explicitly by, STATE_URI=<dir://path/to/state>"
13
- abort();
9
+ unless File.writable?(@stateDir) then
10
+ puts "***** Directory is not writable, #{@stateDir}."
11
+ puts "***** Make the directory, #{@stateDir}, writable and try again."
12
+ puts '***** Or, set the State Directory explicitly by, STATE_URI=<dir://path/to/state>'
13
+ abort();
14
14
  end
15
15
  rescue Errno::ENOENT => e
16
16
  puts "***** Directory does not exist, #{@stateDir}."
17
17
  puts "***** Create the directory, #{@stateDir}, and try again."
18
18
  puts "***** eg, mkdir #{@stateDir}"
19
- puts "***** Or, set the State Directory explicitly by, STATE_URI=<dir://path/to/state>"
19
+ puts '***** Or, set the State Directory explicitly by, STATE_URI=<dir://path/to/state>'
20
20
  abort();
21
21
  rescue Errno::ENOTDIR => e
22
22
  puts "***** The specified path does not point to a directory, #{@stateDir}."
23
23
  puts "***** Either repoint path to a directory, or remove, #{@stateDir}, and create it as a directory."
24
24
  puts "***** eg, rm #{@stateDir} && mkdir #{@stateDir}"
25
- puts "***** Or, set the State Directory explicitly by, STATE_URI=<dir://path/to/state>"
25
+ puts '***** Or, set the State Directory explicitly by, STATE_URI=<dir://path/to/state>'
26
26
  abort();
27
27
  end
28
28
 
@@ -35,7 +35,7 @@ module RServiceBus
35
35
  def Get( handler )
36
36
  path = self.getPath( handler )
37
37
  hash = self.load( path )
38
- @list << Hash["path", path, "hash", hash]
38
+ @list << Hash['path', path, 'hash', hash]
39
39
 
40
40
  return hash
41
41
  end
@@ -43,7 +43,7 @@ module RServiceBus
43
43
  #Finish
44
44
  def Commit
45
45
  @list.each do |e|
46
- File.open( e['path'], "w" ) { |f| f.write( YAML::dump( e['hash'] ) ) }
46
+ File.open( e['path'], 'w') { |f| f.write( YAML::dump( e['hash'] ) ) }
47
47
  end
48
48
  end
49
49
 
@@ -55,11 +55,11 @@ module RServiceBus
55
55
  end
56
56
 
57
57
  def load( path )
58
- return Hash.new if !File.exists?( path )
58
+ return Hash.new unless File.exists?(path)
59
59
 
60
60
  content = IO.read( path )
61
61
 
62
- return Hash.new if content == ""
62
+ return Hash.new if content == ''
63
63
 
64
64
  return YAML::load( content )
65
65
  end
@@ -14,7 +14,7 @@ module RServiceBus
14
14
  #Get
15
15
  def Get( handler )
16
16
  hash = @hash[handler.class.name]
17
- @list << Hash["name", handler.class.name, "hash", hash]
17
+ @list << Hash['name', handler.class.name, 'hash', hash]
18
18
 
19
19
  return hash
20
20
  end
@@ -17,8 +17,8 @@ class StatisticManager
17
17
 
18
18
  @totalByMessageType = Hash.new
19
19
 
20
- @output = !RServiceBus.getValue( "VERBOSE", nil ).nil?
21
- @maxStatOutputCountdown = RServiceBus.getValue( "STAT_OUTPUT_COUNTDOWN", "1" ).to_i
20
+ @output = !RServiceBus.getValue( 'VERBOSE', nil ).nil?
21
+ @maxStatOutputCountdown = RServiceBus.getValue( 'STAT_OUTPUT_COUNTDOWN', '1').to_i
22
22
  @statOutputCountdown = 0
23
23
  end
24
24
 
@@ -24,12 +24,12 @@ class SubscriptionManager
24
24
  end
25
25
 
26
26
  def add( eventName, queueName )
27
- RServiceBus.log "Adding subscription for, " + eventName + ", to, " + queueName
27
+ RServiceBus.log 'Adding subscription for, ' + eventName + ', to, ' + queueName
28
28
  @subscriptions = @subscriptionStorage.add( eventName, queueName )
29
29
  end
30
30
 
31
31
  def remove( eventName, queueName )
32
- raise "Method, remove, needs to be implemented for this subscription storage"
32
+ raise 'Method, remove, needs to be implemented for this subscription storage'
33
33
  end
34
34
  end
35
35