Class: Zodra::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/zodra/definition.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, kind:, discriminator: nil, values: nil) ⇒ Definition

Returns a new instance of Definition.



7
8
9
10
11
12
13
14
# File 'lib/zodra/definition.rb', line 7

def initialize(name:, kind:, discriminator: nil, values: nil)
  @name = name
  @kind = kind
  @discriminator = discriminator
  @values = values
  @attributes = {}
  @variants = []
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



5
6
7
# File 'lib/zodra/definition.rb', line 5

def attributes
  @attributes
end

#discriminatorObject (readonly)

Returns the value of attribute discriminator.



5
6
7
# File 'lib/zodra/definition.rb', line 5

def discriminator
  @discriminator
end

#kindObject (readonly)

Returns the value of attribute kind.



5
6
7
# File 'lib/zodra/definition.rb', line 5

def kind
  @kind
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/zodra/definition.rb', line 5

def name
  @name
end

#valuesObject (readonly)

Returns the value of attribute values.



5
6
7
# File 'lib/zodra/definition.rb', line 5

def values
  @values
end

#variantsObject (readonly)

Returns the value of attribute variants.



5
6
7
# File 'lib/zodra/definition.rb', line 5

def variants
  @variants
end

Instance Method Details

#add_attribute(attribute_name) ⇒ Object



28
29
30
# File 'lib/zodra/definition.rb', line 28

def add_attribute(attribute_name, **)
  @attributes[attribute_name.to_sym] = Attribute.new(name: attribute_name, **)
end

#add_variant(tag, attributes: {}) ⇒ Object



32
33
34
# File 'lib/zodra/definition.rb', line 32

def add_variant(tag, attributes: {})
  @variants << Variant.new(tag:, attributes:)
end

#enum?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/zodra/definition.rb', line 20

def enum?
  kind == :enum
end

#object?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/zodra/definition.rb', line 16

def object?
  kind == :object
end

#union?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/zodra/definition.rb', line 24

def union?
  kind == :union
end