Sha256: 6cd17250e69a062452b2f0e8658b162c2cb7a3d2a4103b929cb4e2ee84356973

Contents?: true

Size: 569 Bytes

Versions: 2

Compression:

Stored size: 569 Bytes

Contents

require_relative 'yasuri_node'

module Yasuri
  class StructNode
    include Node
    def inject(agent, page, opt = {}, element = page)
      sub_tags = element.search(@xpath)
      tree = sub_tags.map do |sub_tag|
        child_results_kv = @children.map do |child_node|
          child_name = Yasuri.node_name(child_node.name, opt)
          [child_name, child_node.inject(agent, page, opt, sub_tag)]
        end
        Hash[child_results_kv]
      end
      tree.size == 1 ? tree.first : tree
    end

    def node_type_str
      "struct".freeze
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
yasuri-3.3.2 lib/yasuri/yasuri_struct_node.rb
yasuri-3.3.1 lib/yasuri/yasuri_struct_node.rb