Class: SinatraSimpleRouter::Controller

Inherits:
Object
  • Object
show all
Defined in:
lib/sinatra_simple_router/controller.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Controller

Returns a new instance of Controller.



3
4
5
# File 'lib/sinatra_simple_router/controller.rb', line 3

def initialize(app)
  @app = app
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args, &block) ⇒ Object



23
24
25
26
27
28
29
30
31
32
# File 'lib/sinatra_simple_router/controller.rb', line 23

def method_missing(method, *args, &block)
  if @app.respond_to?(method)
    (self.instance_variables - [:"@app"]).each do |v|
      @app.instance_variable_set(v, self.instance_variable_get(v))
    end
    @app.send(method, *args, &block)
  else
    super
  end
end

Instance Method Details

#render(options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/sinatra_simple_router/controller.rb', line 7

def render(options = {})
  if code=options[:status].to_i and code > 0
    status code
  end

  if html=options[:html]
    content_type "text/html"
    body html.to_s
  elsif json=options[:json]
    content_type "application/json"
    body json.to_json
  else
    raise ArgumentError.new("Unknown format in #{options.keys.sort}")
  end
end