module Axon

Constants

VERSION

Public Class Methods

method_missing(method, *args) click to toggle source
# File lib/axon-nats.rb, line 40
def self.method_missing(method, *args)
        NATS.send(method, *args) if NATS.respond_to? method
end
publish(route, msg = {}) click to toggle source
# File lib/axon-nats.rb, line 37
def self.publish(route, msg = {})
        NATS.publish(route, AxonMsg.new(msg))
end
request(route, req = {}, &block) click to toggle source
# File lib/axon-nats.rb, line 32
def self.request(route, req = {}, &block)
        NATS.request(route, AxonMsg.new(req)) { |msg_s|
                block.call(AxonMsg.parse(msg_s))
        }
end
respond(route, &block) click to toggle source
# File lib/axon-nats.rb, line 17
def self.respond(route, &block)
        NATS.subscribe(route) { |msg_s, reply| 
                begin
                        NATS.publish(reply, AxonMsg.new(block.call(AxonMsg.parse(msg_s))))
                rescue AxonError => e
                        NATS.publish(reply, AxonMsg.new(e.data, e.message))
                rescue => e
                        if e.is_a? StandardError
                                STDERR.puts e
                                STDERR.puts e.backtrace
                        end
                        NATS.publish(reply, AxonMsg.new({}, e.message))
                end
        }
end
subscribe(route, &block) click to toggle source
# File lib/axon-nats.rb, line 7
def self.subscribe(route, &block)
        NATS.subscribe(route) { |msg_s|
                begin
                        block.call(AxonMsg.parse(msg_s))
                rescue => e
                        STDERR.puts e
                        STDERR.puts e.backtrace
                end
        }
end