Sha256: 90dace37c0da62b401f40fe6a4d8daf2df772e12f249a5d085b51a042be51a6b

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 KB

Contents

# frozen_string_literal: true

module Bemer
  module Helpers
    def block_tag(name = '', **options, &content)
      Bemer::Tag.new(name, **options, &content).render
    end

    def elem_tag(block = '', element = '', **options, &content)
      Bemer::Tag.new(block, element, **options, &content).render
    end

    # Использовать mix
    # Использовать mixs
    # mixes
    # Использовать bemer_mix
    def bem_mix(*mix)
      Bemer::Mixes.new(mix).to_s
    end

    # Использовать mods
    # Использовать mod
    # modifier
    # modifiers
    # Использовать bemer_mods
    def bem_mods(*block_and_element, mods)
      block, element = *block_and_element

      Bemer::ModifierList.new(block, element, mods).to_s
    end

    def render_component(path, **options, &block)
      Bemer::TemplateList.new(self, path, **options).compile(&block)
    end

    alias refine_component render_component

    def define_templates(cached: true, &block)
      Bemer::DefaultTemplateList.new(self, cached).compile(&block)
    end

    def define_component(**options, &block)
      Bemer::Component.new(self).render(**options, &block)
    end

    def component_pack(&block)
      Bemer::ComponentPack.new(self).render(&block)
    end

    def component_asset_path(name)
      Bemer::PathResolver.new(self).resolve(name)
    end

    def component_partial_path(name)
      Bemer::PathResolver.new(self).resolve(name, true)
    end

    def bem_attrs_for(block = '', element = nil, **options)
      js = options[:js].nil? ? true : options.delete(:js)

      Bemer::EntityBuilder.new(block, element, **options.merge(bem: true, js: js)).attrs
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bemer-0.6.0 lib/bemer/helpers.rb