Class: Paru::PandocFilter::MetaMap

Inherits:
Node
  • Object
show all
Includes:
Enumerable
Defined in:
lib/paru/filter/meta_map.rb

Overview

A MetaMap Node is a map of String keys with MetaValue values

Direct Known Subclasses

Meta

Instance Method Summary collapse

Constructor Details

#initialize(contents = {}) ⇒ MetaMap

Create a new MetaMap based on the contents

Parameters:

  • contents (Hash = {}) (defaults to: {})

    a list of key-value pairs, defaults to an empty hash



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/paru/filter/meta_map.rb', line 35

def initialize(contents = {})
  @children = {}

  return unless contents.is_a? Hash

  contents.each_pair do |key, value|
    if !value.empty? && PandocFilter.const_defined?(value['t'])
      @children[key] = PandocFilter.const_get(value['t']).new value['c']
    end
  end
end

Instance Method Details

#[](key) ⇒ MetaValue

Get the value belonging to key.

Parameters:

  • key (String)

    the key

Returns:

  • (MetaValue)

    the value belonging to the key



52
53
54
# File 'lib/paru/filter/meta_map.rb', line 52

def [](key)
  @children[key]
end

#[]=(key, value) ⇒ Object

Set a value with a key.

Parameters:



60
61
62
# File 'lib/paru/filter/meta_map.rb', line 60

def []=(key, value)
  @children[key] = value
end

#ast_contentsObject

The AST contents



70
71
72
73
74
75
76
77
78
# File 'lib/paru/filter/meta_map.rb', line 70

def ast_contents
  ast = {}
  if @children.is_a? Hash
    @children.each_pair do |key, value|
      ast[key] = value.to_ast
    end
  end
  ast
end

#each(&block) ⇒ Object

Execute block for each key-value pair



65
66
67
# File 'lib/paru/filter/meta_map.rb', line 65

def each(&block)
  @children.each(&block)
end