Project

bem

0.0
No commit activity in last 3 years
No release in over 3 years
Ruby library for working with BEM in rails projects
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 0
>= 0
>= 0
>= 0
>= 0
 Project Readme

Bem

Ruby library for working with BEM(http://bem.info/) in rails projects.

Installation

Add this line to your application's Gemfile:

gem 'bem'

And then execute:

$ bundle

Or install it yourself as:

$ gem install bem

Then you must create config file:

$ rails g bem:install

And spring config file if you want to use bem command with spring as spring bem create

$ rails g bem:spring

After that stop spring

$ spring stop

And now you can use command spring bem create instead of just bem create. spring command significantly increase speed of blocks creation.

Usage

You can create blocks, elements, modificators, levels and manifests with command bem create

This command create structure like that

levelname
    block-name
        __element-name
            _mode-name.scss
                block-name__element-name_mod-name_value.scss
            block-name__element-name.scss
        _mod-name
            block-name_mod-name_value.scss
        block_name.css.sass

Which is exactly the same as shown here http://bem.info/tools/bem/bem-tools/levels/

It accepts these options:

Options:
    -b, [--block=BLOCK]              # Create or use given block.
    -e, [--element=ELEMENT]          # Create or use given element.
    -m, [--modificator=MODIFICATOR]  # Create modificator.
    -v, [--value=VALUE]              # Value for modificator.
    -l, [--level=LEVEL]              # Create or use given level.
    -a, [--manifest=MANIFEST]        # Manifests to append level
    -j, [--js], [--no-js]            # Do create assets with javascripts
                                     # Default: true
    -s, [--css], [--no-css]          # Do create assets with stylesheets
                                     # Default: true

It will automatically include appropriate information in corresponding levels and manifests. For adjust technologies and css directives use config/initializers/bem.rb

For detail information about this command:

$ bem help create

For destroy blocks, elements, modificators, levels and manifests use command bem destroy. It makes undo of bem create command. It accepts these options:

Options:
    -b, [--block=BLOCK]        # Destroy or use given block.
    -e, [--element=ELEMENT]    # Destroy or use give element.
    -m, [--mod=MOD]            # Destroy modificator.
    -v, [--value=VALUE]        # Value for modificator.
    -l, [--level=LEVEL]        # Destroy or use given level.
    -a, [--manifest=MANIFEST]  # Manifests to append level

For detail information about this command:

$ bem help destroy

This application https://github.com/gkopylov/bem_with_rails_and_less_example_app was created for demonstrate of using this gem.

Contributing

  1. Fork it ( http://github.com//bem/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request