Module: Uniword::Properties::BooleanElementFactory

Defined in:
lib/uniword/properties/boolean_element_factory.rb

Overview

Factory for OOXML boolean element classes.

Generates a lutaml-model class that maps to an XML element like <w:b/> (true) or <w:b w:val=“false”/> (false).

Examples:

BooleanElementFactory.define("b", "Bold")
BooleanElementFactory.define("bCs", "BoldCs")

Returns:

  • (Class)

    The generated class, also assigned as a constant

Constant Summary collapse

WML_NS =
Uniword::Ooxml::Namespaces::WordProcessingML

Class Method Summary collapse

Class Method Details

.define(element_name, class_name) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/uniword/properties/boolean_element_factory.rb', line 46

def self.define(element_name, class_name)
  klass = Class.new(Lutaml::Model::Serializable) do
    include BooleanElement

    attribute :val, :string, default: nil
    include BooleanValSetter

    xml do
      element element_name
      namespace WML_NS
      map_attribute "val", to: :val, render_nil: false,
                           render_default: false
    end
  end

  Properties.const_set(class_name, klass)
  klass
end