Class: Nested::One

Inherits:
Resource show all
Includes:
WithMany
Defined in:
lib/nested/one.rb

Constant Summary collapse

MODEL_BLOCK =
Proc.new do
  if @__resource.parent
    instance_variable_get("@#{@__resource.parent.instance_variable_name}")
      .where(id: params[:"#{@__resource.parent.name.to_s.singularize.to_sym}_id"])
      .first
  else
    nil
  end
end

Instance Attribute Summary

Attributes inherited from Resource

#actions, #after_blocks, #before_blocks, #model_block, #name, #parent, #resources, #serializer, #sinatra

Instance Method Summary collapse

Methods included from WithMany

#many, #many_if

Methods inherited from Resource

#after, #before, #behave, #child_resource, #create_sinatra_route, #initialize, #parents, #route, #route_replace, #self_and_parents, #serialize, #serialize_exclude_if, #serialize_include_if, #sinatra_errors_to_hash, #sinatra_exec_delete_block, #sinatra_exec_get_block, #sinatra_exec_post_block, #sinatra_exec_put_block, #sinatra_init, #sinatra_init_after, #sinatra_init_before, #sinatra_init_data, #sinatra_init_data_extract_body, #sinatra_init_set_model, #sinatra_init_set_resource, #sinatra_response, #sinatra_response_create_data, #sinatra_response_create_error, #sinatra_response_create_redirect, #sinatra_response_type, #sinatra_set_instance_variable

Methods included from WithSingleton

#singleton, #singleton_if

Constructor Details

This class inherits a constructor from Nested::Resource

Instance Method Details

#default_model_blockObject



20
21
22
# File 'lib/nested/one.rb', line 20

def default_model_block
  MODEL_BLOCK
end

#initialize_serializer_factoryObject



16
17
18
# File 'lib/nested/one.rb', line 16

def initialize_serializer_factory
  Serializer.new(parent.serializer.includes)
end

#instance_variable_nameObject



28
29
30
# File 'lib/nested/one.rb', line 28

def instance_variable_name
  parent.name.to_s.singularize.to_sym
end

#to_route_partObject



24
25
26
# File 'lib/nested/one.rb', line 24

def to_route_part
  "/:#{@name}_id"
end