Class: Nested::One
Constant Summary
collapse
- MODEL_BLOCK =
Proc.new do
if @__resource.parent
parent_model = instance_variable_get("@#{@__resource.parent.instance_variable_name}")
if parent_model.respond_to?(:where)
parent_model
.where(id: params[:"#{@__resource.parent.name.to_s.singularize.to_sym}_id"])
.first
elsif parent_model.respond_to?(:detect)
res = parent_model.detect do |r|
(r.is_a?(Hash) ? HashWithIndifferentAccess.new(r)[:id] : r.id).to_s == params[:"#{@__resource.parent.name.to_s.singularize.to_sym}_id"]
end
res.is_a?(Hash) ? HashWithIndifferentAccess.new(res) : res
else
nil
end
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
#singleton, #singleton_if
Instance Method Details
#default_model_block ⇒ Object
31
32
33
|
# File 'lib/nested/one.rb', line 31
def default_model_block
MODEL_BLOCK
end
|
#initialize_serializer_factory ⇒ Object
27
28
29
|
# File 'lib/nested/one.rb', line 27
def initialize_serializer_factory
Serializer.new(parent.serializer.includes)
end
|
#instance_variable_name ⇒ Object
39
40
41
|
# File 'lib/nested/one.rb', line 39
def instance_variable_name
parent.name.to_s.singularize.to_sym
end
|
#to_route_part ⇒ Object
35
36
37
|
# File 'lib/nested/one.rb', line 35
def to_route_part
"/:#{@name}_id"
end
|