Module: Coradoc::AsciiDoc::Transformer::BlockRules
- Defined in:
- lib/coradoc/asciidoc/transformer/block_rules.rb
Overview
Module containing block element transformation rules
Class Method Summary collapse
Class Method Details
.apply(transformer_class) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/coradoc/asciidoc/transformer/block_rules.rb', line 8 def self.apply(transformer_class) transformer_class.class_eval do # Generic block rule(block: subtree(:block)) do id = block[:id] title = block[:title] attribute_list = AttributeListNormalizer.coerce(block[:attribute_list]) delimiter = block[:delimiter].to_s lines = block[:lines] ordering = block.keys.select do |k| %i[id title attribute_list].include?(k) end opts = { id: id, title: title, delimiter_len: delimiter.size, lines: lines, ordering: ordering } BlockTypeClassifier.classify(delimiter, opts, attribute_list) end # Example rule(example: sequence(:example)) do Model::Block::Example.new(title: '', lines: example) end # Admonition rule( admonition_type: simple(:admonition_type), content: sequence(:content) ) do Model::Admonition.new(content: content, type: admonition_type.to_s) end # Block image rule(block_image: subtree(:block_image)) do id = block_image[:id] title = block_image[:title] path = block_image[:path] attrs = AttributeListNormalizer.coerce(block_image[:attribute_list]) Model::Image::BlockImage.new( title: title, id: id, src: path, attributes: attrs, line_break: "\n" ) end end end |