class Libmagellan::Core
Constants
- DEFAULT_LOG_LEVEL
Public Class Methods
new(*args)
click to toggle source
# File lib/libmagellan/core.rb, line 12 def initialize(*args) # HTTP @http = HTTP.new(*args.dup) # MQTT options = args.last.is_a?(Hash) ? args.pop : {} mqtt_options = options.dup if mqtt_options[:mqtt_host].present? and mqtt_options[:mqtt_port].present? mqtt_options[:host] = mqtt_options.delete(:mqtt_host) mqtt_options[:port] = mqtt_options.delete(:mqtt_port) mqtt_options[:secure] = mqtt_options.delete(:mqtt_secure) || false @mqtt = MQTT.new(mqtt_options) @mqtt.logger = logger end end
Public Instance Methods
disconnect()
click to toggle source
# File lib/libmagellan/core.rb, line 90 def disconnect @mqtt.disconnect end
get_message(*args, &block)
click to toggle source
# File lib/libmagellan/core.rb, line 98 def get_message(*args, &block) @mqtt.get(*args, &block) end
get_packet(topic=nil, &block)
click to toggle source
# File lib/libmagellan/core.rb, line 86 def get_packet(topic=nil, &block) @mqtt.get_packet(topic, &block) end
inspect()
click to toggle source
# File lib/libmagellan/core.rb, line 121 def inspect h = @http m = @mqtt arr = ["\#<#{self.class}: @base_uri=\"#{h.base_uri.to_s}\"", "@consumer_key=\"#{h.consumer_key}\"", "@client_version=\"#{h.client_version}\"",] arr += ["@mqtt_host=\"#{m.host}\"", "@mqtt_port=#{m.port}"] if @mqtt arr << ">" arr.join(", ") end
json_body(r)
click to toggle source
# File lib/libmagellan/core.rb, line 50 def json_body(r) @http.json_body(r) end
log_level=(level)
click to toggle source
Set logger log level @param [Integer] level Log level
# File lib/libmagellan/core.rb, line 117 def log_level=(level) logger.level = level end
logger()
click to toggle source
# File lib/libmagellan/core.rb, line 103 def logger @logger ||= Proc.new { logger = ::Logger.new(STDOUT) logger.level = DEFAULT_LOG_LEVEL logger }.call end
logger=(logger_)
click to toggle source
# File lib/libmagellan/core.rb, line 111 def logger=(logger_) @logger = logger_ end
mqtt_token(path, method=:get, body="", headers={})
click to toggle source
# File lib/libmagellan/core.rb, line 60 def mqtt_token(path, method=:get, body="", headers={}) r = request(path, method, body, headers) if r.code.to_i >= 200 and r.code.to_i < 300 token = r['authorization'] @mqtt.token = token if @mqtt token else r end end
ping()
click to toggle source
# File lib/libmagellan/core.rb, line 38 def ping @http.ping end
publish(*args)
click to toggle source
# File lib/libmagellan/core.rb, line 71 def publish(*args) @mqtt.publish(*args) end
Also aliased as: pub
request(*args, &block)
click to toggle source
# File lib/libmagellan/core.rb, line 33 def request(*args, &block) @http.request(*args, &block) end
Also aliased as: req
set_will(topic, payload, retain=false, qos=0)
click to toggle source
# File lib/libmagellan/core.rb, line 94 def set_will(topic, payload, retain=false, qos=0) @mqtt.set_will(topic, payload, retain, qos) end
subscribe(*args, &block)
click to toggle source
# File lib/libmagellan/core.rb, line 76 def subscribe(*args, &block) @mqtt.subscribe(*args, &block) end
Also aliased as: sub
test(*args, &block)
click to toggle source
# File lib/libmagellan/core.rb, line 46 def test(*args, &block) @http.test(*args, &block) end
test_ping(*args)
click to toggle source
# File lib/libmagellan/core.rb, line 42 def test_ping(*args) @http.test_ping(*args) end
unsubscribe(*args)
click to toggle source
# File lib/libmagellan/core.rb, line 81 def unsubscribe(*args) @mqtt.unsubscribe(*args) end
Also aliased as: unsub