Module: OpenXml::Docx::AttributeBuilder::ClassMethods

Defined in:
lib/openxml/docx/attribute_builder.rb

Instance Method Summary collapse

Instance Method Details

#attribute(name, expects: nil, displays_as: nil, namespace: nil) ⇒ Object

Raises:

  • (ArgumentError)


206
207
208
209
210
211
212
213
214
215
216
217
218
219
# File 'lib/openxml/docx/attribute_builder.rb', line 206

def attribute(name, expects: nil, displays_as: nil, namespace: nil)
  bad_names = %w(tag name namespace properties_tag)
  raise ArgumentError if bad_names.member? name

  attr_reader name

  define_method "#{name}=" do |value|
    send(expects, value)
    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 || :w]
end

#attributesObject



221
222
223
# File 'lib/openxml/docx/attribute_builder.rb', line 221

def attributes
  @attributes ||= {}
end