Mycroft
Gem for creating mycroft application in ruby.
Install
Install bundler:
gem install bundler
From inside the ruby app directory
bundle install
rake install
If we ever put this on ruby gems:
gem install mycroft
Create a new App
mycroft-ruby new [APPNAME]
Running your app
ruby YOUR_APP.rb [--no-tls]
Example App
require 'mycroft'
class MockAppRuby < Mycroft::Client
def initialize(host, port)
@key = ''
@cert = ''
@manifest = './mock_app_ruby.json'
@verified = false
super
end
on 'APP_DEPENDENCY' do |data|
up
broadcast({message: "I'm broadcasting things"})
end
end
Mycroft::start(MockAppRuby)
Overview of MockRubyApp
initialize
Specify the path to key, path to cert, path to app manifest, and whether it's verified or not. Set that to false.
on
For each of the different messages, you create an event handler using the on
method. You can also do this for CONNECT
, CONNECTION_CLOSED
, and ERROR
. You can create multiple handlers per message if that's what you want to do. The Base class creates 3 for you. On APP_MANIFEST_OK
@verified
is set to true
. On APP_MANIFEST_FAIL
and MSG_GENERAL_FAILURE
, it raises an error. On APP_DEPENDENCY
, @depedencies
is updated with current dependencies.
Helper Methods
up
Sends APP_UP
to mycroft
down
Sends APP_DOWN
to mycroft
in_use
Sends APP_IN_USE
to mycroft
query(capability, action, data, priority = 30, instance_id = nil)
Sends a MSG_QUERY
to mycroft
broadcast(content)
Sends a MSG_BROADCAST
to mycroft
query_success(id, ret)
Sends a MSG_QUERY_SUCCESS
to mycroft
query_fail(id, message)
Sends a MSG_QUERY_FAIL
to mycroft