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

MQTT

# 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
pub(*args)
Alias for: publish
publish(*args) click to toggle source
# File lib/libmagellan/core.rb, line 71
def publish(*args)
  @mqtt.publish(*args)
end
Also aliased as: pub
req(*args, &block)
Alias for: request
request(*args, &block) click to toggle source

HTTP

# 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
sub(*args, &block)
Alias for: subscribe
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
unsub(*args)
Alias for: unsubscribe
unsubscribe(*args) click to toggle source
# File lib/libmagellan/core.rb, line 81
def unsubscribe(*args)
  @mqtt.unsubscribe(*args)
end
Also aliased as: unsub