module Pione::Global
Global
is a table of global variables in PIONE system. It defines variable names, initial values, and configuration conditions. You can set and get value by calling item named method.
Attributes
__dependencies__[R]
item[R]
Public Class Methods
define_computed_item(name, dependencies, &definition)
click to toggle source
Define a computed item. The item cannote be configured by user.
# File lib/pione/global/item.rb, line 32 def define_computed_item(name, dependencies, &definition) Item.new(name, false, :dependencies => dependencies).tap do |item| definition.call(item) if block_given? item.register end end
define_external_item(name, initial_value=nil, &definition)
click to toggle source
Define an external item. The item can be configured by user.
# File lib/pione/global/item.rb, line 24 def define_external_item(name, initial_value=nil, &definition) Item.new(name, true).tap do |item| definition.call(item) if block_given? item.register end end
define_internal_item(name, initial_value=nil, &definition)
click to toggle source
Define an internal item. The item cannot be configured by user.
# File lib/pione/global/item.rb, line 16 def define_internal_item(name, initial_value=nil, &definition) Item.new(name, false).tap do |item| definition.call(item) if block_given? item.register end end
get(name)
click to toggle source
Get value of the variable.
# File lib/pione/global/item.rb, line 40 def get(name) raise UnknownItem.new(name) unless @item.has_key?(name) # get current value val = @item[name].value if val.nil? # call updater @item[name].update(@item[name].init) # get value return @item[name].value else return val end end
set(name, val)
click to toggle source
Set value of the variable.
# File lib/pione/global/item.rb, line 58 def set(name, val) # set value @item[name].update(val) # update depended items @__dependencies__[name].each do |dependency| @item[dependency.name].update(nil) end end