lib/lotus/rendering_policy.rb in lotusrb-0.2.0 vs lib/lotus/rendering_policy.rb in lotusrb-0.2.1
- old
+ new
@@ -12,27 +12,22 @@
HEADERS = 1
BODY = 2
LOTUS_ACTION = 'lotus.action'.freeze
- SUCCESSFUL_STATUSES = (200..201).freeze
- STATUSES_WITHOUT_BODY = Set.new((100..199).to_a << 204 << 205 << 301 << 302 << 304).freeze
- EMPTY_BODY = Array.new.freeze
- RENDERABLE_FORMATS = [:all, :html].freeze
- CONTENT_TYPE = 'Content-Type'.freeze
- REQUEST_METHOD = 'REQUEST_METHOD'.freeze
- HEAD = 'HEAD'.freeze
+ SUCCESSFUL_STATUSES = (200..201).freeze
+ RENDERABLE_FORMATS = [:all, :html].freeze
def initialize(configuration)
@controller_pattern = %r{#{ configuration.controller_pattern.gsub(/\%\{(controller|action)\}/) { "(?<#{ $1 }>(.*))" } }}
@view_pattern = configuration.view_pattern
@namespace = configuration.namespace
@templates = configuration.templates
end
def render(env, response)
- body = _render(env, response) || _render_head(env)
+ body = _render(env, response)
response[BODY] = Array(body) unless body.nil?
response
end
@@ -45,40 +40,30 @@
end
def _render_action(action, response)
if successful?(response)
view_for(action, response).render(
- action.to_rendering
+ action.exposures
)
end
end
def _render_status_page(action, response)
if render_status_page?(action, response)
Lotus::Views::Default.render(@templates, response[STATUS], response: response, format: :html)
end
end
- def _render_head(env)
- EMPTY_BODY if head?(env)
- end
-
def renderable?(env)
- !head?(env) and
- env.delete(LOTUS_ACTION)
+ ((action = env.delete(LOTUS_ACTION)) && action.renderable? ) and action
end
def successful?(response)
SUCCESSFUL_STATUSES.include?(response[STATUS])
end
- def head?(env)
- env[REQUEST_METHOD] == HEAD
- end
-
def render_status_page?(action, response)
- RENDERABLE_FORMATS.include?(action.format) &&
- !STATUSES_WITHOUT_BODY.include?(response[STATUS])
+ RENDERABLE_FORMATS.include?(action.format)
end
def view_for(action, response)
if response[BODY].empty?
captures = @controller_pattern.match(action.class.name)