class Rack::Mongoid::Controllers::Base

Attributes

env[R]

Public Class Methods

call(env) click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 6
def call(env)
  new(env).call
end
new(env) click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 13
def initialize(env)
  @env = env
end

Public Instance Methods

call() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 17
def call
  response.to_a
end

Private Instance Methods

connection() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 51
def connection
  ::Mongoid.default_session[resource_name]
end
params() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 55
def params
  case
  when request.request_method == "GET"
    request.GET
  when !request_body.empty?
    JSON.parse(request_body)
  else
    {}
  end
end
request() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 39
def request
  @request ||= Rack::Request.new(env)
end
request_body() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 66
def request_body
  @request_body ||= request.body.read.tap { request.body.rewind }
end
resource_name() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 47
def resource_name
  request.params["resource_name"]
end
response() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 43
def response
  @response ||= Rack::Response.new([response_body], response_status, response_header)
end
response_body() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 31
def response_body
  raise NotImplementedError
end
response_body_for_not_found() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 35
def response_body_for_not_found
  JSON.pretty_generate(message: "Not found") + "\n"
end
response_header() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 27
def response_header
  { "Content-Type" => "application/json" }
end
response_status() click to toggle source
# File lib/rack/mongoid/controllers/base.rb, line 23
def response_status
  200
end