Sha256: fa6ace9c66705346844e39b007aaa26a98d24b2a3697632b13388e7a9e38bab1
Contents?: true
Size: 1.51 KB
Versions: 1
Compression:
Stored size: 1.51 KB
Contents
require 'action_view' require 'rabl' class Gon module Rabl class << self def handler(args, global = false) options = parse_options_from args, global if global && !options[:template] raise 'You should provide :template when use rabl with global variables' end include_helpers data = parse_rabl \ Gon::Base.get_template_path(options, 'rabl'), Gon::Base.get_controller(options) [data, options] end private def parse_rabl(rabl_path, controller) source = File.read(rabl_path) rabl_engine = ::Rabl::Engine.new(source, :format => 'json') output = rabl_engine.render(controller, {}) JSON.parse(output) end def parse_options_from(args, global) if old_api? args unless global text = "[DEPRECATION] view_path argument is now optional. " text << "If you need to specify it, " text << "please use gon.rabl(:template => 'path')" warn text end args.extract_options!.merge(:template => args[0]) elsif new_api? args args.first else {} end end def include_helpers unless ::Rabl::Engine.include? ::ActionView::Helpers ::Rabl::Engine.send(:include, ::ActionView::Helpers) end end def old_api?(args) args.first.is_a? String end def new_api?(args) args.first.is_a? Hash end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gon-4.0.0 | lib/gon/rabl.rb |