Add root possibility
This commit is contained in:
parent
dfbe769a91
commit
35ba212214
|
@ -77,16 +77,16 @@ module RablFastJson
|
||||||
@template.data, @template.root_name = data, name
|
@template.data, @template.root_name = data, name
|
||||||
end
|
end
|
||||||
|
|
||||||
def method_missing(name, *args, &block)
|
|
||||||
@context.respond_to?(name) ? @context.send(name, *args, &block) : super
|
|
||||||
end
|
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def extract_data_and_name(name_or_data)
|
def extract_data_and_name(name_or_data)
|
||||||
case name_or_data
|
case name_or_data
|
||||||
when Symbol
|
when Symbol
|
||||||
|
if name_or_data.to_s.start_with?('@')
|
||||||
|
[name_or_data, nil]
|
||||||
|
else
|
||||||
[name_or_data, name_or_data]
|
[name_or_data, name_or_data]
|
||||||
|
end
|
||||||
when Hash
|
when Hash
|
||||||
name_or_data.first
|
name_or_data.first
|
||||||
else
|
else
|
||||||
|
|
|
@ -16,12 +16,13 @@ module RablFastJson
|
||||||
|
|
||||||
compiled_template = get_compiled_template(path, source, context)
|
compiled_template = get_compiled_template(path, source, context)
|
||||||
compiled_template.context = context
|
compiled_template.context = context
|
||||||
|
body = compiled_template.render
|
||||||
ActiveSupport::JSON.encode(compiled_template.render)
|
ActiveSupport::JSON.encode(compiled_template.has_root_name? ? { compiled_template.root_name => body } : body)
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_compiled_template(path, source, context)
|
def get_compiled_template(path, source, context)
|
||||||
@cached_templates[path] ||= Compiler.new(context).compile_source(source)
|
# @cached_templates[path] ||=
|
||||||
|
Compiler.new(context).compile_source(source)
|
||||||
end
|
end
|
||||||
|
|
||||||
def get(path, context)
|
def get(path, context)
|
||||||
|
|
|
@ -2,7 +2,7 @@ module RablFastJson
|
||||||
class Railtie < Rails::Railtie
|
class Railtie < Rails::Railtie
|
||||||
initializer "rabl.initialize" do |app|
|
initializer "rabl.initialize" do |app|
|
||||||
ActiveSupport.on_load(:action_view) do
|
ActiveSupport.on_load(:action_view) do
|
||||||
ActionView::Template.register_template_handler :rabl2, RablFastJson::Handlers::Rabl
|
ActionView::Template.register_template_handler :rabl, RablFastJson::Handlers::Rabl
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,6 +19,20 @@ module RablFastJson
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def has_root_name?
|
||||||
|
!@root_name.nil?
|
||||||
|
end
|
||||||
|
|
||||||
|
def method_missing(name, *args, &block)
|
||||||
|
@context.respond_to?(name) ? @context.send(name, *args, &block) : super
|
||||||
|
end
|
||||||
|
|
||||||
|
def partial(template_path, options = {})
|
||||||
|
raise "No object was given to partial" if options[:object].blank?
|
||||||
|
template = Library.instance.get(template_path, @context)
|
||||||
|
template.render_resource(options[:object])
|
||||||
|
end
|
||||||
|
|
||||||
def render
|
def render
|
||||||
get_object_from_context
|
get_object_from_context
|
||||||
get_assigns_from_context
|
get_assigns_from_context
|
||||||
|
|
Loading…
Reference in New Issue