Class: OpenGraphReader::Parser::Graph Private
- Inherits:
-
Object
- Object
- OpenGraphReader::Parser::Graph
- Extended by:
- Forwardable
- Includes:
- Enumerable
- Defined in:
- lib/open_graph_reader/parser/graph.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
A Graph to represent OpenGraph tags.
Defined Under Namespace
Classes: Node
Instance Attribute Summary collapse
-
#root ⇒ Node?
readonly
private
The initial node.
Instance Method Summary collapse
-
#each {|Node| ... } ⇒ Object
private
Iterate through all nodes that have a value.
-
#empty? ⇒ Bool
Does this graph have any nodes?.
-
#exist?(property) ⇒ Bool
private
Whether the property exists in the graph.
-
#fetch(property, default = nil) { ... } ⇒ String, ...
private
Fetch first node’s value.
-
#find_by(property) ⇒ Node?
private
Fetch first node.
- #find_or_create_path(path) ⇒ Object private
-
#initialize ⇒ Graph
constructor
private
Create new graph.
-
#select_by(property) ⇒ Array<Node>
private
Fetch all nodes.
Constructor Details
Instance Attribute Details
Instance Method Details
#each {|Node| ... } ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Iterate through all nodes that have a value.
97 98 99 100 101 |
# File 'lib/open_graph_reader/parser/graph.rb', line 97 def each root.each do |child| yield child if child.content end end |
#empty? ⇒ Bool
Does this graph have any nodes?
87 |
# File 'lib/open_graph_reader/parser/graph.rb', line 87 def_delegators :root, :empty? |
#exist?(property) ⇒ Bool
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Whether the property exists in the graph. property
doesn’t have to be a leave node but is only considered existing when there’s a leaf node with content below it.
110 111 112 113 114 115 116 |
# File 'lib/open_graph_reader/parser/graph.rb', line 110 def exist? property path = property.split(":") child = path.inject(root) {|node, name| node.children.find {|child| child.name == name } || break } !child.nil? && !child.empty? end |
#fetch(property, default = nil) { ... } ⇒ String, ...
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Fetch first node’s value.
124 125 126 127 128 129 |
# File 'lib/open_graph_reader/parser/graph.rb', line 124 def fetch property, default=nil node = find_by(property) return yield if node.nil? && block_given? return default if node.nil? node.content end |
#find_by(property) ⇒ Node?
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Fetch first node
135 136 137 138 |
# File 'lib/open_graph_reader/parser/graph.rb', line 135 def find_by property property = normalize_property property find {|node| node.fullname == property } end |
#find_or_create_path(path) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
149 150 151 152 153 154 155 156 157 158 159 160 |
# File 'lib/open_graph_reader/parser/graph.rb', line 149 def find_or_create_path path path.inject(root) {|node, name| child = node.children.reverse.find {|child| child.name == name } unless child child = Node.new name node << child end child } end |
#select_by(property) ⇒ Array<Node>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Fetch all nodes
144 145 146 147 |
# File 'lib/open_graph_reader/parser/graph.rb', line 144 def select_by property property = normalize_property property select {|node| node.fullname == property } end |