class SinatraSimpleRouter::Controller

Public Class Methods

new(app) click to toggle source
# File lib/sinatra_simple_router/controller.rb, line 3
def initialize(app)
  @app = app
end

Public Instance Methods

method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/sinatra_simple_router/controller.rb, line 22
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
render(attrs = {}) click to toggle source
# File lib/sinatra_simple_router/controller.rb, line 7
def render(attrs = {})
  code = attrs[:status].to_i
  status(code) if code > 0

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