NAME

Data::Context::BEM - A Perl implementation of BEM

VERSION

This documentation refers to Data::Context::BEM version 0.1

SYNOPSIS

use Data::Context::BEM;

# Brief but working code example(s) here showing the most common usage(s)
# This section will be as far as many users bother reading, so make it as
# educational and exemplary as possible.

DESCRIPTION

BEM is a framework/protocol for how to build HTML or XML pages. The specification suggests how to assemble a page using Blocks, Elements and Modifiers.

The essence of this module is to provide a perl implementation that particularly allows the easy packaging of Blocks so they can be distributed alone and used by any site using this library. The aim is also that any site using this module can overwrite any part of an external block.

Deployed Blocks

Here is what an example block (Example) might look like:

lib/MyApp/BEM/Block/Example.pm
root/block/example/block.js
root/block/example/block.css

SUBROUTINES/METHODS

get_html ( )

Get the processed HTML

get_styles ( )

Get the processed Javascript

get_scripts ( )

Get the processed CSS

block_module ($block)

Returns a module that belongs to a block (if one exists)

set_template_path ( $instance, $device_path )

Fora given Data::Context::BEM::Instance sets the Template path based on the specified template_path and the blocks used.

get_template ($block)

For a given block returns the template name used to process that block.

dump (@objects)

Dumps the passed objects to the log file

class ($block)

Returns the classes for a block.

json ($block)

Returns the block JSON encoded

DIAGNOSTICS

CONFIGURATION AND ENVIRONMENT

DEPENDENCIES

INCOMPATIBILITIES

HISTORY

While this is an attempt at implementing Yandex's BEM protocol it is also influenced by work of one of the people who originally started the work at Yandex but left before it had evolved into BEM.

BUGS AND LIMITATIONS

There are no known bugs in this module.

Please report problems to Ivan Wills (ivan.wills@gmail.com).

Patches are welcome.

AUTHOR

Ivan Wills - (ivan.wills@gmail.com)

LICENSE AND COPYRIGHT

Copyright (c) 2013 Ivan Wills (14 Mullion Close, Hornsby Heights, NSW Australia 2077). All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.