lib/gon-sinatra.rb in gon-sinatra-0.0.6 vs lib/gon-sinatra.rb in gon-sinatra-0.1.0

- old
+ new

@@ -1,77 +1,18 @@ require 'sinatra' +require 'gon/sinatra/store' require 'gon/sinatra/helpers' -require 'gon/sinatra/rabl' module Gon module Sinatra - class << self - def all_variables - @request_env[:gon] - end + def self.registered(base) + base.helpers(Gon::Sinatra::GonHelpers, Gon::Sinatra::Helpers) + end - def clear - @request_env[:gon] = {} - end - - def request_env=(environment) - @request_env = environment - @request_env[:gon] ||= {} - end - - def request_env - if defined?(@request_env) - return @request_env - end - end - - def request - @request_id if defined? @request_id - end - - def request=(request_id) - @request_id = request_id - end - - def method_missing(m, *args, &block) - if ( m.to_s =~ /=$/ ) - if public_methods.include? m.to_s[0..-2].to_sym - raise "You can't use Gon public methods for storing data" - end - set_variable(m.to_s.delete('='), args[0]) - else - get_variable(m.to_s) - end - end - - def get_variable(name) - @request_env[:gon][name] - end - - def set_variable(name, value) - @request_env[:gon][name] = value - end - - def rabl(view_path, options = {}) - unless options[:instance] - raise ArgumentError.new("You should pass :instance in options: :instance => self") - end - - rabl_data = Gon::Sinatra::Rabl.parse_rabl(view_path, options[:instance]) - - if options[:as] - set_variable(options[:as].to_s, rabl_data) - elsif rabl_data.is_a? Hash - rabl_data.each do |key, value| - set_variable(key, value) - end - else - set_variable('rabl', rabl_data) - end - end - - def jbuilder(view_path, options = {}) - raise NoMethodError.new("Not available for sinatra") + module Rabl + def self.registered(base) + require 'rabl' + require 'gon/sinatra/rabl' end end end end