Class: RServiceBus2::SubscriptionStorageFile

Inherits:
SubscriptionStorage show all
Defined in:
lib/rservicebus2/subscription_storage/file.rb

Overview

Implementation of Subscription Storage to Redis

Instance Method Summary collapse

Constructor Details

#initialize(app_name, uri) ⇒ SubscriptionStorageFile

Constructor

Parameters:

  • app_ame (String)

    Name of the application, used as a Namespace

  • uri (String)

    resource location to attach, eg redis://127.0.0.1/foo



8
9
10
# File 'lib/rservicebus2/subscription_storage/file.rb', line 8

def initialize(app_name, uri)
  super(app_name, uri)
end

Instance Method Details

#add(event_name, queue_name) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/rservicebus2/subscription_storage/file.rb', line 19

def add(event_name, queue_name)
  # s => subscriptions
  if File.exist?(@uri.path)
    s = YAML.load(File.open(@uri.path))
  else
    s = {}
  end

  s[event_name] = [] if s[event_name].nil?

  s[event_name] << queue_name
  s[event_name] = s[event_name].uniq

  File.open(@uri.path, 'w') { |f| f.write(YAML.dump(s)) }

  s
end

#get_allObject



12
13
14
15
16
17
# File 'lib/rservicebus2/subscription_storage/file.rb', line 12

def get_all
  RServiceBus2.log 'Load subscriptions'
  return {} unless File.exist?(@uri.path)

  YAML.load(File.open(@uri.path))
end

#remove(_event_name, _queue_name) ⇒ Object



37
38
39
40
# File 'lib/rservicebus2/subscription_storage/file.rb', line 37

def remove(_event_name, _queue_name)
  fail 'Method, remove, needs to be implemented for this
        subscription storage'
end