|
1 | 1 | require 'action_view' |
2 | 2 | require 'action_controller' |
3 | 3 | require 'gon/helpers' |
| 4 | +require 'gon/rabl' |
4 | 5 |
|
5 | 6 | module Gon |
6 | | - def self.all_variables |
7 | | - @request_env[:gon] |
8 | | - end |
9 | | - |
10 | | - def self.clear |
11 | | - @request_env[:gon] = {} |
12 | | - end |
| 7 | + class << self |
| 8 | + def all_variables |
| 9 | + @request_env[:gon] |
| 10 | + end |
13 | 11 |
|
14 | | - def self.request_env=(request_env) |
15 | | - @request_env = request_env |
16 | | - end |
| 12 | + def clear |
| 13 | + @request_env[:gon] = {} |
| 14 | + end |
17 | 15 |
|
18 | | - def self.request_env |
19 | | - if defined?(@request_env) |
20 | | - return @request_env |
| 16 | + def request_env=(request_env) |
| 17 | + @request_env = request_env |
| 18 | + @request_env[:gon] ||= {} |
21 | 19 | end |
22 | | - end |
23 | 20 |
|
24 | | - def self.method_missing(m, *args, &block) |
25 | | - @request_env[:gon] ||= {} |
| 21 | + def request_env |
| 22 | + if defined?(@request_env) |
| 23 | + return @request_env |
| 24 | + end |
| 25 | + end |
26 | 26 |
|
27 | | - if ( m.to_s =~ /=$/ ) |
28 | | - if self.public_methods.include? m.to_s[0..-2].to_sym |
29 | | - raise "You can't use Gon public methods for storing data" |
| 27 | + def method_missing(m, *args, &block) |
| 28 | + if ( m.to_s =~ /=$/ ) |
| 29 | + if public_methods.include? m.to_s[0..-2].to_sym |
| 30 | + raise "You can't use Gon public methods for storing data" |
| 31 | + end |
| 32 | + set_variable(m.to_s.delete('='), args[0]) |
| 33 | + else |
| 34 | + get_variable(m.to_s) |
30 | 35 | end |
31 | | - set_variable(m.to_s.delete('='), args[0]) |
32 | | - else |
33 | | - get_variable(m.to_s) |
34 | 36 | end |
35 | | - end |
36 | 37 |
|
37 | | - def self.get_variable(name) |
38 | | - @request_env[:gon][name] |
39 | | - end |
| 38 | + def get_variable(name) |
| 39 | + @request_env[:gon][name] |
| 40 | + end |
40 | 41 |
|
41 | | - def self.set_variable(name, value) |
42 | | - @request_env[:gon][name] = value |
| 42 | + def set_variable(name, value) |
| 43 | + @request_env[:gon][name] = value |
| 44 | + end |
| 45 | + |
| 46 | + def rabl(view_path, options = {}) |
| 47 | + # if rabl_name = options[:as] || options[:to] |
| 48 | + |
| 49 | + # end |
| 50 | + set_variable('rabl', Gon::Rabl.parse_rabl(view_path, @request_env['action_controller.instance'])) |
| 51 | + end |
43 | 52 | end |
44 | 53 | end |
0 commit comments