Class: RailsTwirp::Base

Inherits:
AbstractController::Base
  • Object
show all
Includes:
AbstractController::AssetPaths, AbstractController::Caching, AbstractController::Callbacks, AbstractController::Logger, AbstractController::Rendering, ActionController::Helpers, ActionView::Rendering, Errors, RenderPb, Rescue, UrlFor
Defined in:
lib/rails_twirp/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Errors

#error

Methods included from RenderPb

#_render_to_body_with_pb, #render_to_body

Methods included from UrlFor

#url_options

Constructor Details

#initializeBase

Returns a new instance of Base.



38
39
40
41
42
43
# File 'lib/rails_twirp/base.rb', line 38

def initialize
  @_request = nil
  @_env = nil
  @_response_class = nil
  super
end

Class Method Details

.dispatch(action, request, response_class, env = {}) ⇒ Object



63
64
65
# File 'lib/rails_twirp/base.rb', line 63

def self.dispatch(action, request, response_class, env = {})
  new.dispatch(action, request, response_class, env)
end

Instance Method Details

#details_for_lookupObject

Used by the template renderer to figure out which template to use



68
69
70
# File 'lib/rails_twirp/base.rb', line 68

def details_for_lookup
  {formats: [:pb], handlers: [:pbbuilder]}
end

#dispatch(action, request, response_class, env = {}) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rails_twirp/base.rb', line 49

def dispatch(action, request, response_class, env = {})
  self.request = request
  self.env = env
  self.response_class = response_class

  http_request.controller_instance = self

  process(action)

  # Implicit render
  self.response_body = render unless response_body
  response_body
end

#http_requestObject



45
46
47
# File 'lib/rails_twirp/base.rb', line 45

def http_request
  @_http_request ||= ActionDispatch::Request.new(env[:rack_env])
end