class Populus::Accepter::Base

TODO: validators

Attributes

condition[RW]
metadata[RW]
runner[RW]

Public Class Methods

new(cond: nil, runs: nil, metadata: {}) click to toggle source
# File lib/populus/accepter.rb, line 10
def initialize(cond: nil, runs: nil, metadata: {})
  self.condition = cond
  self.runner = runs
  self.metadata = metadata
end

Public Instance Methods

accept(data) click to toggle source
# File lib/populus/accepter.rb, line 23
def accept(data)
  if condition[data]
    Populus.logger.debug "Condition judged true: #{data.inspect}"
    instance_exec(data, &runner)
    return true
  else
    Populus.logger.debug "Condition judged false: #{data.inspect}"
    return false
  end
end
on(hostname, &run_it) click to toggle source
# File lib/populus/accepter.rb, line 34
def on(hostname, &run_it)
  be = Node.registry[hostname]
  if be
    RemoteRunner.new(be, &run_it)
  else
    Populus.logger.warn "Not found host: #{hostname}. Skip."
  end
end
type?(t) click to toggle source
# File lib/populus/accepter.rb, line 16
def type?(t)
  current_type = self.class.name.downcase
    .split('::')
    .last
  current_type == t
end