class MCollective::Data::Result

Public Class Methods

new(outputs) click to toggle source
# File lib/mcollective/data/result.rb, line 9
def initialize(outputs)
  @data = {}

  outputs.keys.each do |output|
    @data[output] = Marshal.load(Marshal.dump(outputs[output].fetch(:default, nil)))
  end
end

Public Instance Methods

[](key) click to toggle source
# File lib/mcollective/data/result.rb, line 21
def [](key)
  @data[key.to_sym]
end
[]=(key, val) click to toggle source
# File lib/mcollective/data/result.rb, line 25
def []=(key, val)
  # checks using the string representation of the class name to avoid deprecations on Bignum and Fixnum
  raise "Can only store String, Integer, Float or Boolean data but got #{val.class} for key #{key}" unless ["String", "Integer", "Bignum", "Fixnum", "Float", "TrueClass", "FalseClass"].include?(val.class.to_s)

  @data[key.to_sym] = val
end
include?(key) click to toggle source
# File lib/mcollective/data/result.rb, line 17
def include?(key)
  @data.include?(key.to_sym)
end
keys() click to toggle source
# File lib/mcollective/data/result.rb, line 32
def keys
  @data.keys
end
method_missing(method, *args) click to toggle source
# File lib/mcollective/data/result.rb, line 36
def method_missing(method, *args)
  key = method.to_sym

  raise NoMethodError, "undefined local variable or method `%s'" % key unless include?(key)

  @data[key]
end