Module: Phlexible::AliasView

Defined in:
lib/phlexible/alias_view.rb

Overview

Create an alias at ‘element` to the `view_class`.

So instead of:

class MyView < Phlex::HTML
  def view_template
    div do
      render My::Awesome::Component.new
    end
  end
end

You can instead do:

class MyView < Phlex::HTML
  extend Phlexible::AliasView

  alias_view :awesome, -> { My::Awesome::Component }

  def view_template
    div do
      awesome
    end
  end
end

Instance Method Summary collapse

Instance Method Details

#alias_view(element, view_class) ⇒ Object



32
33
34
35
36
# File 'lib/phlexible/alias_view.rb', line 32

def alias_view(element, view_class)
  define_method element do |*args, **kwargs, &blk|
    render view_class.call.new(*args, **kwargs), &blk
  end
end