Class: Odin::Types::OdinDocument

Inherits:
Object
  • Object
show all
Defined in:
lib/odin/types/document.rb

Class Method Summary collapse

Instance Method Summary collapse

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

.emptyObject



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_commentsObject



60
61
62
# File 'lib/odin/types/document.rb', line 60

def all_comments
  @comments
end

#all_modifiersObject



52
53
54
# File 'lib/odin/types/document.rb', line 52

def all_modifiers
  @modifiers
end

#assignmentsObject



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

Returns:

  • (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

#hashObject



83
84
85
# File 'lib/odin/types/document.rb', line 83

def hash
  [assignments, ].hash
end

#include?(path) ⇒ Boolean Also known as: has_path?

Returns:

  • (Boolean)


26
27
28
# File 'lib/odin/types/document.rb', line 26

def include?(path)
  @assignments.key?(path)
end

#metadataObject



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

#pathsObject



22
23
24
# File 'lib/odin/types/document.rb', line 22

def paths
  @assignments.keys
end

#sizeObject Also known as: length



31
32
33
# File 'lib/odin/types/document.rb', line 31

def size
  @assignments.size
end