Module: OpenXml::Docx::AttributeBuilder::ClassMethods
- Defined in:
- lib/openxml/docx/attribute_builder.rb
Instance Method Summary collapse
- #attribute(name, expects: nil, one_of: nil, displays_as: nil, namespace: nil, matches: nil, deprecated: false) ⇒ Object
- #attributes ⇒ Object
- #with_namespace(namespace, &block) ⇒ Object
Instance Method Details
#attribute(name, expects: nil, one_of: nil, displays_as: nil, namespace: nil, matches: nil, deprecated: false) ⇒ Object
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/openxml/docx/attribute_builder.rb', line 206 def attribute(name, expects: nil, one_of: nil, displays_as: nil, namespace: nil, matches: nil, deprecated: false) bad_names = %w(tag name namespace properties_tag) raise ArgumentError if bad_names.member? name attr_reader name define_method "#{name}=" do |value| valid_in?(value, one_of) unless one_of.nil? send(expects, value) unless expects.nil? matches?(value, matches) unless matches.nil? instance_variable_set "@#{name}", value end camelized_name = name.to_s.gsub(/_([a-z])/i) { $1.upcase }.to_sym attributes[name] = [displays_as || camelized_name, namespace || @attribute_namespace] end |
#attributes ⇒ Object
223 224 225 |
# File 'lib/openxml/docx/attribute_builder.rb', line 223 def attributes @attributes ||= {} end |
#with_namespace(namespace, &block) ⇒ Object
227 228 229 230 |
# File 'lib/openxml/docx/attribute_builder.rb', line 227 def with_namespace(namespace, &block) @attribute_namespace = namespace instance_eval(&block) end |