module Nutella::Framework

Framework-level APIs sub-module

Public Class Methods

extract_component_id() click to toggle source

Extracts the component name from the folder where the code for this component is located

@return [String] the component name

# File lib/nutella_lib/framework_core.rb, line 43
def self.extract_component_id
  Nutella.extract_component_id
end
init( broker_hostname, component_id ) click to toggle source

Initializes this component as a framework component @param [String] broker_hostname @param [String] component_id

# File lib/nutella_lib/framework_core.rb, line 8
def self.init( broker_hostname, component_id )
  Nutella.app_id = nil
  Nutella.run_id = nil
  Nutella.component_id = component_id
  Nutella.resource_id = nil
  Nutella.mongo_host = broker_hostname
  Nutella.mqtt = SimpleMQTTClient.new broker_hostname

  # Start pinging
  Nutella.net.start_pinging
  # Fetch the `run_id`s list for this application and subscribe to its updates
  # net.async_request('app_runs_list', lambda { |res| Nutella.app.app_runs_list = res })
  # self.net.subscribe('app_runs_list', lambda {|message, _| Nutella.app.app_runs_list = message })
end
log() click to toggle source
# File lib/nutella_lib/framework_core.rb, line 25
def self.log; Nutella::Framework::Log; end
net() click to toggle source

Accessors for sub-modules

# File lib/nutella_lib/framework_core.rb, line 24
def self.net; Nutella::Framework::Net; end
parse_args(args) click to toggle source

Parse command line arguments for framework-level components

@param [Array] args command line arguments array @return String broker address

# File lib/nutella_lib/framework_core.rb, line 32
def self.parse_args(args)
  if args.length < 1
    STDERR.puts 'Couldn\'t read broker address from the command line, impossible to initialize component!'
    return
  end
  return args[0]
end
persist() click to toggle source
# File lib/nutella_lib/framework_core.rb, line 26
def self.persist; Nutella::Framework::Persist; end
set_resource_id( resource_id ) click to toggle source

Sets the resource id

@param [String] resource_id the resource id (i.e. the particular instance of this component)

# File lib/nutella_lib/framework_core.rb, line 50
def self.set_resource_id( resource_id )
  Nutella.set_resource_id resource_id
end