Class: Weblet

Inherits:
Object
  • Object
show all
Defined in:
lib/weblet.rb

Instance Method Summary collapse

Constructor Details

#initialize(raws, marker: nil, debug: false) ⇒ Weblet

Returns a new instance of Weblet.



85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/weblet.rb', line 85

def initialize(raws, marker: nil, debug: false)

  @debug = debug

  s, _ = RXFReader.read(raws.strip)

  obj = s[0] == '<' ? s : WebletBuilder.new(s, marker: marker, \
                                                  debug: debug).to_a
  puts 'obj: ' + obj.inspect if @debug
  @doc = Rexle.new(obj)
  @h = scan @doc.root
  @kvp = scan2keypair(@h).to_h

end

Instance Method Details

#[](key) ⇒ Object



100
101
102
# File 'lib/weblet.rb', line 100

def [](key)
  @kvp[key.to_s]
end

#[]=(key, value) ⇒ Object



104
105
106
# File 'lib/weblet.rb', line 104

def []=(key, value)
  @kvp[key.to_s] = value
end

#render(rawkey, bindingx = nil) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
# File 'lib/weblet.rb', line 125

def render(rawkey, bindingx=nil)

  key = rawkey.to_s
  return unless @kvp.has_key?(key)

  # check for interpolated substitution tags e.g/ <:card/svg/link>
  r = @kvp[key].gsub(/<:([^>]+)>/) {|x| self.render($1) }

  eval('%Q(' + r + ')', bindingx)

end

#to_hObject



108
109
110
# File 'lib/weblet.rb', line 108

def to_h()
  @h
end

#to_kvpObject

key-value pair



113
114
115
# File 'lib/weblet.rb', line 113

def to_kvp()
  @kvp
end

#to_outlineObject



117
118
119
# File 'lib/weblet.rb', line 117

def to_outline()
  treeize(scan_h(@h))
end

#to_xmlObject



121
122
123
# File 'lib/weblet.rb', line 121

def to_xml()
  @doc.root.xml pretty: true
end