Module: ImplicitRendering

Defined in:
lib/implicit_rendering.rb,
lib/implicit_rendering/version.rb

Defined Under Namespace

Modules: ClassMethods

Constant Summary collapse

VERSION =
'0.1.1'.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



14
15
16
# File 'lib/implicit_rendering.rb', line 14

def self.prepended(base)
  base.extend ClassMethods
end

Instance Method Details

#default_renderObject



18
19
20
21
22
23
24
# File 'lib/implicit_rendering.rb', line 18

def default_render
  template_name = self.class.implicit_render_mapping&.dig(action_name)

  return super unless perform_implicit_rendering?(template_name)

  render template_name
end

#perform_implicit_rendering?(template_name) ⇒ Boolean

Returns:

  • (Boolean)


33
34
35
36
# File 'lib/implicit_rendering.rb', line 33

def perform_implicit_rendering?(template_name)
  template_name.present? &&
    self.class.implicit_render_formats.any? {|format| request.format == format }
end

#render(options = {}) ⇒ Object



26
27
28
29
30
31
# File 'lib/implicit_rendering.rb', line 26

def render(options={})
  if options.is_a?(Hash) && (template_name = self.class.implicit_render_mapping&.dig(options[:action].to_s))
    options[:action] = template_name
  end
  super
end