Module: Philiprehberger::HtmlBuilder

Defined in:
lib/philiprehberger/html_builder.rb,
lib/philiprehberger/html_builder/node.rb,
lib/philiprehberger/html_builder/escape.rb,
lib/philiprehberger/html_builder/builder.rb,
lib/philiprehberger/html_builder/version.rb

Defined Under Namespace

Modules: Escape Classes: Builder, Error, Node, RawNode

Constant Summary collapse

VERSION =
'0.3.0'

Class Method Summary collapse

Class Method Details

.build {|Builder| ... } ⇒ String

Build HTML using a tag DSL (minified output)

Yields:

  • (Builder)

    the builder instance for DSL evaluation

Returns:

  • (String)

    the rendered HTML string

Raises:

  • (Error)

    if no block is given



17
18
19
20
21
22
23
# File 'lib/philiprehberger/html_builder.rb', line 17

def self.build(&block)
  raise Error, 'a block is required' unless block

  builder = Builder.new
  builder.instance_eval(&block)
  builder.to_html
end

.build_minified {|Builder| ... } ⇒ String

Build minified HTML (alias for build)

Yields:

  • (Builder)

    the builder instance for DSL evaluation

Returns:

  • (String)

    the rendered HTML string

Raises:

  • (Error)

    if no block is given



44
45
46
# File 'lib/philiprehberger/html_builder.rb', line 44

def self.build_minified(&)
  build(&)
end

.build_pretty(indent_size: 2) {|Builder| ... } ⇒ String

Build pretty-printed HTML using a tag DSL

Parameters:

  • indent_size (Integer) (defaults to: 2)

    number of spaces per indent level (default 2)

Yields:

  • (Builder)

    the builder instance for DSL evaluation

Returns:

  • (String)

    the pretty-printed HTML string

Raises:

  • (Error)

    if no block is given



31
32
33
34
35
36
37
# File 'lib/philiprehberger/html_builder.rb', line 31

def self.build_pretty(indent_size: 2, &block)
  raise Error, 'a block is required' unless block

  builder = Builder.new
  builder.instance_eval(&block)
  builder.to_pretty_html(indent_size: indent_size)
end

.merge(*fragments) ⇒ String

Merge multiple HTML fragment strings into one

Parameters:

  • fragments (Array<String>)

    HTML fragments to merge

Returns:

  • (String)

    the merged HTML string



52
53
54
# File 'lib/philiprehberger/html_builder.rb', line 52

def self.merge(*fragments)
  fragments.join
end