Class: Zodra::ResourceBuilder

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

Defined Under Namespace

Classes: CollectionContext, MemberContext

Constant Summary collapse

HTTP_METHODS =
i[get post put patch delete].freeze

Instance Method Summary collapse

Constructor Details

#initialize(resource) ⇒ ResourceBuilder

Returns a new instance of ResourceBuilder.



7
8
9
# File 'lib/zodra/resource_builder.rb', line 7

def initialize(resource)
  @resource = resource
end

Instance Method Details

#collectionObject



15
16
17
# File 'lib/zodra/resource_builder.rb', line 15

def collection(&)
  CollectionContext.new(@resource).instance_eval(&)
end

#memberObject



11
12
13
# File 'lib/zodra/resource_builder.rb', line 11

def member(&)
  MemberContext.new(@resource).instance_eval(&)
end

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



26
27
28
29
30
31
# File 'lib/zodra/resource_builder.rb', line 26

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

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



19
20
21
22
23
24
# File 'lib/zodra/resource_builder.rb', line 19

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