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