Sha256: 4c45e7c4842dad3f516a1d19e75a93b0e383aa573f0d167e857e5a14624e5de7
Contents?: true
Size: 864 Bytes
Versions: 4
Compression:
Stored size: 864 Bytes
Contents
# frozen_string_literal: true module Phlexible # # Create an alias at `element` to the `view_class`. # # So instead of: # # class MyView < Phlex::HTML # def 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 template # div do # awesome # end # end # end # module AliasView def alias_view(element, view_class) define_method element do |*args, **kwargs, &blk| render view_class.call.new(*args, **kwargs), &blk # view_class.call.new(*args, **kwargs).call(@_target, view_context: @_view_context, parent: self, &blk) end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
phlexible-0.4.1 | lib/phlexible/alias_view.rb |
phlexible-0.4.0 | lib/phlexible/alias_view.rb |
phlexible-0.3.0 | lib/phlexible/alias_view.rb |
phlexible-0.2.0 | lib/phlexible/alias_view.rb |