Module: Gon::Sinatra

Defined in:
lib/gon-sinatra.rb,
lib/gon/sinatra/rabl.rb,
lib/gon/sinatra/helpers.rb,
lib/gon/sinatra/version.rb

Defined Under Namespace

Modules: GonHelpers, Helpers, Rabl

Constant Summary collapse

VERSION =
'0.0.6'

Class Method Summary collapse

Class Method Details

.all_variablesObject



8
9
10
# File 'lib/gon-sinatra.rb', line 8

def all_variables
  @request_env[:gon]
end

.clearObject



12
13
14
# File 'lib/gon-sinatra.rb', line 12

def clear
  @request_env[:gon] = {}
end

.get_variable(name) ⇒ Object



46
47
48
# File 'lib/gon-sinatra.rb', line 46

def get_variable(name)
  @request_env[:gon][name]
end

.jbuilder(view_path, options = {}) ⇒ Object

Raises:

  • (NoMethodError)


72
73
74
# File 'lib/gon-sinatra.rb', line 72

def jbuilder(view_path, options = {})
  raise NoMethodError.new("Not available for sinatra")
end

.method_missing(m, *args, &block) ⇒ Object



35
36
37
38
39
40
41
42
43
44
# File 'lib/gon-sinatra.rb', line 35

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

.rabl(view_path, options = {}) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/gon-sinatra.rb', line 54

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

.requestObject



27
28
29
# File 'lib/gon-sinatra.rb', line 27

def request
  @request_id if defined? @request_id
end

.request=(request_id) ⇒ Object



31
32
33
# File 'lib/gon-sinatra.rb', line 31

def request=(request_id)
  @request_id = request_id      
end

.request_envObject



21
22
23
24
25
# File 'lib/gon-sinatra.rb', line 21

def request_env
  if defined?(@request_env)
    return @request_env
  end
end

.request_env=(environment) ⇒ Object



16
17
18
19
# File 'lib/gon-sinatra.rb', line 16

def request_env=(environment)
  @request_env = environment
  @request_env[:gon] ||= {}
end

.set_variable(name, value) ⇒ Object



50
51
52
# File 'lib/gon-sinatra.rb', line 50

def set_variable(name, value)
  @request_env[:gon][name] = value
end