Class: Odin::Types::OdinValue

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(modifiers: nil, directives: []) ⇒ OdinValue

Returns a new instance of OdinValue.



11
12
13
14
# File 'lib/odin/types/values.rb', line 11

def initialize(modifiers: nil, directives: [])
  @modifiers = modifiers
  @directives = directives.freeze
end

Instance Attribute Details

#directivesObject (readonly)

Returns the value of attribute directives.



9
10
11
# File 'lib/odin/types/values.rb', line 9

def directives
  @directives
end

#modifiersObject (readonly)

Returns the value of attribute modifiers.



9
10
11
# File 'lib/odin/types/values.rb', line 9

def modifiers
  @modifiers
end

Instance Method Details

#array?Boolean

Returns:

  • (Boolean)


36
# File 'lib/odin/types/values.rb', line 36

def array?;     type == ValueType::ARRAY; end

#binary?Boolean

Returns:

  • (Boolean)


34
# File 'lib/odin/types/values.rb', line 34

def binary?;    type == ValueType::BINARY; end

#boolean?Boolean

Returns:

  • (Boolean)


21
# File 'lib/odin/types/values.rb', line 21

def boolean?;   type == ValueType::BOOLEAN; end

#confidential?Boolean

Returns:

  • (Boolean)


17
# File 'lib/odin/types/values.rb', line 17

def confidential?; modifiers&.confidential || false; end

#currency?Boolean

Returns:

  • (Boolean)


25
# File 'lib/odin/types/values.rb', line 25

def currency?;  type == ValueType::CURRENCY; end

#date?Boolean

Returns:

  • (Boolean)


29
# File 'lib/odin/types/values.rb', line 29

def date?;      type == ValueType::DATE; end

#deprecated?Boolean

Returns:

  • (Boolean)


18
# File 'lib/odin/types/values.rb', line 18

def deprecated?;   modifiers&.deprecated || false; end

#duration?Boolean

Returns:

  • (Boolean)


32
# File 'lib/odin/types/values.rb', line 32

def duration?;  type == ValueType::DURATION; end

#integer?Boolean

Returns:

  • (Boolean)


23
# File 'lib/odin/types/values.rb', line 23

def integer?;   type == ValueType::INTEGER; end

#null?Boolean

Returns:

  • (Boolean)


20
# File 'lib/odin/types/values.rb', line 20

def null?;      type == ValueType::NULL; end

#number?Boolean

Returns:

  • (Boolean)


24
# File 'lib/odin/types/values.rb', line 24

def number?;    type == ValueType::NUMBER; end

#numeric?Boolean

Returns:

  • (Boolean)


27
# File 'lib/odin/types/values.rb', line 27

def numeric?;   %i[integer number currency percent].include?(type); end

#object?Boolean

Returns:

  • (Boolean)


37
# File 'lib/odin/types/values.rb', line 37

def object?;    type == ValueType::OBJECT; end

#percent?Boolean

Returns:

  • (Boolean)


26
# File 'lib/odin/types/values.rb', line 26

def percent?;   type == ValueType::PERCENT; end

#reference?Boolean

Returns:

  • (Boolean)


33
# File 'lib/odin/types/values.rb', line 33

def reference?; type == ValueType::REFERENCE; end

#required?Boolean

Returns:

  • (Boolean)


16
# File 'lib/odin/types/values.rb', line 16

def required?;     modifiers&.required || false; end

#string?Boolean

Returns:

  • (Boolean)


22
# File 'lib/odin/types/values.rb', line 22

def string?;    type == ValueType::STRING; end

#temporal?Boolean

Returns:

  • (Boolean)


28
# File 'lib/odin/types/values.rb', line 28

def temporal?;  %i[date timestamp time duration].include?(type); end

#time?Boolean

Returns:

  • (Boolean)


31
# File 'lib/odin/types/values.rb', line 31

def time?;      type == ValueType::TIME; end

#timestamp?Boolean

Returns:

  • (Boolean)


30
# File 'lib/odin/types/values.rb', line 30

def timestamp?; type == ValueType::TIMESTAMP; end

#verb?Boolean

Returns:

  • (Boolean)


35
# File 'lib/odin/types/values.rb', line 35

def verb?;      type == ValueType::VERB; end

#with_directives(dirs) ⇒ Object

Raises:

  • (NotImplementedError)


43
44
45
# File 'lib/odin/types/values.rb', line 43

def with_directives(dirs)
  raise NotImplementedError, "Subclass must implement #with_directives"
end

#with_modifiers(mods) ⇒ Object

Raises:

  • (NotImplementedError)


39
40
41
# File 'lib/odin/types/values.rb', line 39

def with_modifiers(mods)
  raise NotImplementedError, "Subclass must implement #with_modifiers"
end