Class: Anchor::Schema

Inherits:
Object
  • Object
show all
Defined in:
lib/anchor/schema.rb

Defined Under Namespace

Classes: DuplicateTypeError, Register

Class Method Summary collapse

Class Method Details

.enum(enum) ⇒ Object



20
21
22
23
# File 'lib/anchor/schema.rb', line 20

def enum(enum)
  @enums ||= []
  @enums.push(enum)
end

.registerObject



8
9
10
# File 'lib/anchor/schema.rb', line 8

def register
  Register.new(resources: @resources || [], enums: @enums || [])
end

.resource(resource) ⇒ Object



12
13
14
15
16
17
18
# File 'lib/anchor/schema.rb', line 12

def resource(resource)
  @resources ||= []
  if @resources.map(&:anchor_schema_name).include?(resource.anchor_schema_name)
    raise DuplicateTypeError, "A resource with type name '#{resource.anchor_schema_name}' has already been registered."
  end
  @resources.push(resource)
end