Class: Evesync::Trigger

Inherits:
Object
  • Object
show all
Defined in:
lib/evesync/trigger.rb,
lib/evesync/trigger/base.rb,
lib/evesync/trigger/file.rb,
lib/evesync/trigger/package.rb

Defined Under Namespace

Modules: Base Classes: File, Package

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(watcher_queue) ⇒ Trigger

Returns a new instance of Trigger.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/evesync/trigger.rb', line 10

def initialize(watcher_queue)
  @watcher_queue = watcher_queue

  # Local Data daemon
  evedatad = IPC::Client.new(port: :evedatad)

  @remote_handlers = Config[:evemond]['remotes'].map do |ip|
    new_remote_handler(ip)
  end.compact # remove nils

  # Helper triggers
  package_trigger = Trigger::Package.new(
    db: evedatad,
    remotes: @remote_handlers
  )

  file_trigger = Trigger::File.new(
    db: evedatad,
    remotes: @remote_handlers
  )

  @triggers = [package_trigger, file_trigger]

  Log.debug('Trigger initialization done!')
end

Instance Attribute Details

#remote_handlersObject (readonly)

Returns the value of attribute remote_handlers.



64
65
66
# File 'lib/evesync/trigger.rb', line 64

def remote_handlers
  @remote_handlers
end

Instance Method Details

#add_remote_node(ip) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/evesync/trigger.rb', line 56

def add_remote_node(ip)
  unless @remote_handlers.find { |h| h.ip == ip }
    remote_handler = new_remote_handler(ip)
    @remote_handlers << remote_handler if remote_handler
  end
  Log.debug 'Trigger actual remote nodes:', @remote_handlers.map(&:ip)
end

#ignore(change) ⇒ Object



48
49
50
# File 'lib/evesync/trigger.rb', line 48

def ignore(change)
  trigger_method(:ignore, change)
end

#startObject



36
37
38
39
40
41
# File 'lib/evesync/trigger.rb', line 36

def start
  @thr = Thread.new do
    loop { biz }
  end
  Log.debug('Trigger started')
end

#stopObject



43
44
45
46
# File 'lib/evesync/trigger.rb', line 43

def stop
  @thr.exit
  Log.debug('Trigger stopped')
end

#unignore(change) ⇒ Object



52
53
54
# File 'lib/evesync/trigger.rb', line 52

def unignore(change)
  trigger_method(:unignore, change)
end