class Resulang::Section
Attributes
_section_name[R]
Public Class Methods
new(name:, data:)
click to toggle source
Calls superclass method
# File lib/resulang/section.rb, line 9 def initialize(name:, data:) super(_section_name: name) interpret_object(self, data) end
Public Instance Methods
get_binding()
click to toggle source
# File lib/resulang/section.rb, line 14 def get_binding binding end
Private Instance Methods
interpret(value)
click to toggle source
# File lib/resulang/section.rb, line 18 def interpret(value) if (range = interpret_range(value)) range elsif value.respond_to?(:keys) interpret_object(OpenStruct.new, value) elsif value.respond_to?(:map) value.map { |v| interpret(v) } else value end end
interpret_object(struct, value)
click to toggle source
# File lib/resulang/section.rb, line 30 def interpret_object(struct, value) struct.tap do |s| value.each do |key, value| s[key] = interpret(value) end end end
interpret_range(value)
click to toggle source
# File lib/resulang/section.rb, line 38 def interpret_range(value) if value.respond_to?(:keys) && value.keys == ['range'] (value['range'].first..value['range'].last) end end