class OpenXml::Parts::ContentTypes
Constants
- REQUIRED_DEFAULTS
Attributes
defaults[R]
overrides[R]
Public Class Methods
new(defaults={}, overrides={})
click to toggle source
# File lib/open_xml/parts/content_types.rb, line 23 def initialize(defaults={}, overrides={}) @defaults = REQUIRED_DEFAULTS.merge(defaults) @overrides = overrides end
parse(xml)
click to toggle source
# File lib/open_xml/parts/content_types.rb, line 11 def self.parse(xml) document = Nokogiri(xml) self.new.tap do |part| document.css("Default").each do |default| part.add_default default["Extension"], default["ContentType"] end document.css("Override").each do |default| part.add_override default["PartName"], default["ContentType"] end end end
Public Instance Methods
add_default(extension, content_type)
click to toggle source
# File lib/open_xml/parts/content_types.rb, line 28 def add_default(extension, content_type) defaults[extension] = content_type end
add_override(part_name, content_type)
click to toggle source
# File lib/open_xml/parts/content_types.rb, line 32 def add_override(part_name, content_type) overrides[part_name] = content_type end
of(path)
click to toggle source
# File lib/open_xml/parts/content_types.rb, line 36 def of(path) overrides.fetch(path, defaults[File.extname(path)[1..-1]]) end
to_xml()
click to toggle source
# File lib/open_xml/parts/content_types.rb, line 40 def to_xml build_xml do |xml| xml.Types(xmlns: "http://schemas.openxmlformats.org/package/2006/content-types") { defaults.each { |extension, content_type| xml.Default("Extension" => extension, "ContentType" => content_type) } overrides.each { |part_name, content_type| xml.Override("PartName" => part_name, "ContentType" => content_type) } } end end