Sha256: de9d3e57ffa28cbeafb6efe8ef8e2ff2d50e267576429e6d5fb0ae99853f3567

Contents?: true

Size: 1.67 KB

Versions: 2

Compression:

Stored size: 1.67 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

2 entries across 2 versions & 1 rubygems

Version Path
bemer-0.5.0 lib/bemer/helpers.rb
bemer-0.4.0 lib/bemer/helpers.rb