Class: Zodra::ApiBuilder

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

Instance Method Summary collapse

Constructor Details

#initialize(api_definition) ⇒ ApiBuilder

Returns a new instance of ApiBuilder.



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

def initialize(api_definition)
  @api_definition = api_definition
end

Instance Method Details

#resource(name, contract: nil, controller: nil, only: nil, except: nil, &block) ⇒ Object



16
17
18
19
20
21
# File 'lib/zodra/api_builder.rb', line 16

def resource(name, contract: nil, controller: nil, only: nil, except: nil, &block)
  resource = Resource.new(name:, singular: true, contract:, controller:, only:, except:)
  ResourceBuilder.new(resource).instance_eval(&block) if block
  @api_definition.add_resource(resource)
  resource
end

#resources(name, contract: nil, controller: nil, only: nil, except: nil, &block) ⇒ Object



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

def resources(name, contract: nil, controller: nil, only: nil, except: nil, &block)
  resource = Resource.new(name:, singular: false, contract:, controller:, only:, except:)
  ResourceBuilder.new(resource).instance_eval(&block) if block
  @api_definition.add_resource(resource)
  resource
end