Class: Odin::Types::OdinDocument
- Inherits:
-
Object
- Object
- Odin::Types::OdinDocument
- Defined in:
- lib/odin/types/document.rb
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #[](path) ⇒ Object
- #all_comments ⇒ Object
- #all_modifiers ⇒ Object
- #assignments ⇒ Object
- #comment_for(path) ⇒ Object
- #each_assignment(&block) ⇒ Object
- #each_metadata(&block) ⇒ Object
- #empty? ⇒ Boolean
- #get(path) ⇒ Object
- #hash ⇒ Object
- #include?(path) ⇒ Boolean (also: #has_path?)
-
#initialize(assignments:, metadata:, modifiers:, comments:) ⇒ OdinDocument
constructor
A new instance of OdinDocument.
- #metadata ⇒ Object
- #metadata_value(key) ⇒ Object
- #modifiers_for(path) ⇒ Object
- #paths ⇒ Object
- #size ⇒ Object (also: #length)
Constructor Details
#initialize(assignments:, metadata:, modifiers:, comments:) ⇒ OdinDocument
Returns a new instance of OdinDocument.
6 7 8 9 10 11 12 |
# File 'lib/odin/types/document.rb', line 6 def initialize(assignments:, metadata:, modifiers:, comments:) @assignments = assignments.freeze @metadata = .freeze @modifiers = modifiers.freeze @comments = comments.freeze freeze end |
Class Method Details
.empty ⇒ Object
87 88 89 |
# File 'lib/odin/types/document.rb', line 87 def self.empty new(assignments: {}, metadata: {}, modifiers: {}, comments: {}) end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
76 77 78 79 80 |
# File 'lib/odin/types/document.rb', line 76 def ==(other) other.is_a?(OdinDocument) && assignments == other.assignments && == other. end |
#[](path) ⇒ Object
18 19 20 |
# File 'lib/odin/types/document.rb', line 18 def [](path) get(path) end |
#all_comments ⇒ Object
60 61 62 |
# File 'lib/odin/types/document.rb', line 60 def all_comments @comments end |
#all_modifiers ⇒ Object
52 53 54 |
# File 'lib/odin/types/document.rb', line 52 def all_modifiers @modifiers end |
#assignments ⇒ Object
36 37 38 |
# File 'lib/odin/types/document.rb', line 36 def assignments @assignments end |
#comment_for(path) ⇒ Object
56 57 58 |
# File 'lib/odin/types/document.rb', line 56 def comment_for(path) @comments[path] end |
#each_assignment(&block) ⇒ Object
68 69 70 |
# File 'lib/odin/types/document.rb', line 68 def each_assignment(&block) @assignments.each(&block) end |
#each_metadata(&block) ⇒ Object
72 73 74 |
# File 'lib/odin/types/document.rb', line 72 def (&block) @metadata.each(&block) end |
#empty? ⇒ Boolean
64 65 66 |
# File 'lib/odin/types/document.rb', line 64 def empty? @assignments.empty? && @metadata.empty? end |
#get(path) ⇒ Object
14 15 16 |
# File 'lib/odin/types/document.rb', line 14 def get(path) @assignments[path] end |
#hash ⇒ Object
83 84 85 |
# File 'lib/odin/types/document.rb', line 83 def hash [assignments, ].hash end |
#include?(path) ⇒ Boolean Also known as: has_path?
26 27 28 |
# File 'lib/odin/types/document.rb', line 26 def include?(path) @assignments.key?(path) end |
#metadata ⇒ Object
40 41 42 |
# File 'lib/odin/types/document.rb', line 40 def @metadata end |
#metadata_value(key) ⇒ Object
44 45 46 |
# File 'lib/odin/types/document.rb', line 44 def (key) @metadata[key] end |
#modifiers_for(path) ⇒ Object
48 49 50 |
# File 'lib/odin/types/document.rb', line 48 def modifiers_for(path) @modifiers[path] end |
#paths ⇒ Object
22 23 24 |
# File 'lib/odin/types/document.rb', line 22 def paths @assignments.keys end |
#size ⇒ Object Also known as: length
31 32 33 |
# File 'lib/odin/types/document.rb', line 31 def size @assignments.size end |