-
Notifications
You must be signed in to change notification settings - Fork 0
Конфигурация
Для изменения настроек, необходимо создать файл config/initializers/bemer.rb
и переопределить параметры по умолчанию:
# Параметры по умолчанию
Bemer.setup do |config|
config.bem = false
config.default_block_tag = :div
config.default_element_tag = :div
config.default_path_prefix = nil
config.element_name_separator = '__'
config.modifier_name_separator = '_'
config.modifier_value_separator = '_'
config.path = 'app/bemer_components'
config.prepend_asset_paths = true
end
Глобально включает или выключает генерацию данных связанных с БЭМ методологией, используется только в хелпере define_component
. Порядок применения параметра bem
:
/ config.bem = false
= define_component do |component|
= component.block :block
/ => <div></div>
/ config.bem = true
= define_component do |component|
= component.block :block
/ => <div class="block"></div>
/ config.bem = false # Самый низкий приоритет
= define_component bem: true do |component| # `config.bem` переопределен
= component.block :block
/ => <div class="block"></div>
/ config.bem = true # Самый низкий приоритет
= define_component bem: false do |component| # `config.bem` переопределен
= component.block :block
/ => <div></div>
/ config.bem = false # Самый низкий приоритет
= define_component bem: false do |component| # Следующий приоритет после `config.bem`
= component.block :block, bem: true # Самый высокий приоритет
/ => <div class="block"></div>
/ config.bem = true # Самый низкий приоритет
= define_component bem: true do |component| # Следующий приоритет после `config.bem`
= component.block :block, bem: false # Самый высокий приоритет
/ => <div></div>
Устанавливает тег по умолчанию для сущностей типа блок, используется когда у сущности не указан (равен nil
) HTML тег:
config.default_block_tag = :span
Устанавливает тег по умолчанию для сущностей типа элемент, используется когда у сущности не указан (равен nil
) HTML тег:
config.default_element_tag = :span
Добавляет префикс к пути/названию всех компонент, может быть Symbol
, String
, false
, nil
а также Proc
и lambda
которые должны возвращать Symbol
, String
, false
или nil
:
# Эквивалентные записи
config.default_path_prefix = 'common'
config.default_path_prefix = :common
config.default_path_prefix = proc { :common }
config.default_path_prefix = ->(path, view) { :common }
Если default_path_prefix
является Proc
или lambda
тогда, при вызове будут переданы указанный путь/название компонента (как String
) и представление (экземпляр Action View):
config.default_path_prefix = proc { |path| path.start_with?('admin') ? '' : :user }
config.default_path_prefix = lambda { |path, view|
view.controller.instance_of?(Admin::ApplicationController) ? :admin : :user
}
config.default_path_prefix = lambda { |path, view|
view.controller.class.name.deconstantize.underscore
}
При вызове render_component
, refine_component
параметр default_path_prefix
будет использоваться:
# Эквивалентные записи
render_component(:modal)
refine_component(:modal, prefix: true)
параметр default_path_prefix
не будет использоваться и путь/название компонента будет иметь следующие значения:
# Эквивалентные записи
render_component(:modal, prefix: '') # => 'modal'
refine_component(:modal, prefix: false) # => 'modal'
refine_component(:modal, prefix: nil) # => 'modal'
# Эквивалентные записи
render_component(:modal, prefix: :common) # => 'common/modal'
render_component(:modal, prefix: 'common') # => 'common/modal'
refine_component('common/modal', prefix: false) # => 'common/modal'
Устанавливает разделитель между названием блока и названием элемента.
Устанавливает разделитель между названием модификатора и названием блока или элемента:
config.modifier_name_separator = '--' # block__elem--modifier-name
Устанавливает разделитель между названием модификатора и значением модификатора.
Устанавливает каталог в котором будут храниться все компоненты приложения, например если используется Webpacker, тогда можно указать подкаталог в его каталоге:
config.path = Webpacker.config.source_path.join('components')
Разрешает или запрещает добавлять пути до каталогов с компонентами в начало списка assets.paths
, актуально только если приложение использует Sprockets.