RablRails now accepts local methods for child nodes and
root objects. Local methods are used by decent_exposure or focused_controller
This commit is contained in:
parent
dc66b43638
commit
8376c0d974
@ -18,7 +18,9 @@ module RablRails
|
|||||||
# method defined by the renderer.
|
# method defined by the renderer.
|
||||||
#
|
#
|
||||||
def render(template)
|
def render(template)
|
||||||
collection_or_resource = instance_variable_get(template.data) if template.data
|
collection_or_resource = if template.data
|
||||||
|
template.data.to_s.start_with?('@') ? instance_variable_get(template.data) : @_context.send(template.data)
|
||||||
|
end
|
||||||
collection_or_resource = @_context.target_object unless collection_or_resource || template.data == false || !@_context.respond_to?(:target_object)
|
collection_or_resource = @_context.target_object unless collection_or_resource || template.data == false || !@_context.respond_to?(:target_object)
|
||||||
output_hash = collection_or_resource.respond_to?(:each) ? render_collection(collection_or_resource, template.source) :
|
output_hash = collection_or_resource.respond_to?(:each) ? render_collection(collection_or_resource, template.source) :
|
||||||
render_resource(collection_or_resource, template.source)
|
render_resource(collection_or_resource, template.source)
|
||||||
@ -55,7 +57,13 @@ module RablRails
|
|||||||
when Hash
|
when Hash
|
||||||
current_value = value.dup
|
current_value = value.dup
|
||||||
data_symbol = current_value.delete(:_data)
|
data_symbol = current_value.delete(:_data)
|
||||||
object = data_symbol.nil? ? data : data_symbol.to_s.start_with?('@') ? instance_variable_get(data_symbol) : data.send(data_symbol)
|
object = if data_symbol == nil
|
||||||
|
data
|
||||||
|
else
|
||||||
|
data_symbol.to_s.start_with?('@') ? instance_variable_get(data_symbol)
|
||||||
|
: data.respond_to?(data_symbol) ? data.send(data_symbol)
|
||||||
|
: send(data_symbol)
|
||||||
|
end
|
||||||
|
|
||||||
if key.to_s.start_with?('_') # glue
|
if key.to_s.start_with?('_') # glue
|
||||||
current_value.each_pair { |k, v|
|
current_value.each_pair { |k, v|
|
||||||
|
Loading…
Reference in New Issue
Block a user