class WEEL::ReadStructure

Attributes

additional[R]

Public Class Methods

new(data,endpoints,local,additional) click to toggle source
# File lib/weel.rb, line 47
def initialize(data,endpoints,local,additional)
  @__weel_data = data.transform_values do |v|
    if Object.const_defined?(:XML) && XML.const_defined?(:Smart) && v.is_a?(XML::Smart::Dom)
      v.root.to_doc
    else
      begin
        Marshal.load(Marshal.dump(v))
      rescue
        v.to_s rescue nil
      end
    end
  end
  @__weel_endpoints = endpoints.transform_values{ |v| v.dup }
  @__weel_local = local
  @additional = additional
end

Public Instance Methods

data() click to toggle source
# File lib/weel.rb, line 94
def data
  ReadHash.new(@__weel_data)
end
endpoints() click to toggle source
# File lib/weel.rb, line 97
def endpoints
  ReadHash.new(@__weel_endpoints)
end
local() click to toggle source
# File lib/weel.rb, line 100
def local
  @__weel_local&.first
end
method_missing(m,*args,&block) click to toggle source
# File lib/weel.rb, line 72
def method_missing(m,*args,&block)
  if @additional.include?(m)
    begin
      tmp = Marshal.load(Marshal.dump(@additional[m]))
      if tmp.is_a? Hash
        ReadHash.new(tmp)
      else
        tmp
      end
    rescue
      m.to_s rescue nil
    end
  end
end
to_json(*a) click to toggle source
# File lib/weel.rb, line 64
def to_json(*a)
  {
    'data' => @__weel_data,
    'endpoints' => @__weel_endpoints,
    'additional' => @additional,
  }.to_json(*a)
end
update(d,e,s) click to toggle source
# File lib/weel.rb, line 86
def update(d,e,s)
  d.each do |k,v|
    data.send(k+'=',v)
  end if d
  e.each do |k,v|
    endpoints.send(k+'=',v)
  end if e
end