class Farmstead::Load::Service

Public Instance Methods

run() click to toggle source
# File lib/farmstead/pipeline/load.rb, line 13
def run
  @consumer.subscribe("Road")
  trap('TERM') { @consumer.stop }
  @consumer.each_message do |message|
    puts "Received: #{message.value}"
    # Run the load method of the module referenced by the message
    obj = JSON.parse(message.value)
    project_name = ENV["name"].capitalize
    module_name = obj["module_name"]
    my_module = Object.const_get "#{project_name}::#{module_name}"
    puts obj["result"]
    my_module::load(obj["result"])
    @consumer.mark_message_as_processed(message)
  end
end