class Xlsxrb::Ooxml::Reader::AppPropertiesListener
SAX2 listener for parsing docProps/app.xml.
Attributes
Public Class Methods
Source
# File lib/xlsxrb/ooxml/reader.rb, line 2889 def initialize @properties = {} @current_field = nil @text_buffer = +"" @inside_vector = false @vector_items = [] @heading_pairs = [] @titles_of_parts = [] @inside_heading_pairs = false @inside_titles_of_parts = false @inside_variant = false end
Public Instance Methods
Source
# File lib/xlsxrb/ooxml/reader.rb, line 2920 def characters(text) @text_buffer << text end
# File lib/xlsxrb/ooxml/reader.rb, line 2924 def end_element(_uri, local_name, qname) name = element_name(local_name, qname) case name when "Application" @properties[:application] = @text_buffer.dup @current_field = nil when "AppVersion" @properties[:app_version] = @text_buffer.dup @current_field = nil when "lpstr" if @inside_titles_of_parts @titles_of_parts << @text_buffer.dup elsif @inside_heading_pairs && @inside_variant @vector_items << @text_buffer.dup end when "i4" @vector_items << @text_buffer.to_i if @inside_heading_pairs && @inside_variant when "variant" @inside_variant = false when "HeadingPairs" # Convert flat array to pairs: [label, count, label, count, ...] @heading_pairs = @vector_items.each_slice(2).to_a @vector_items = [] @inside_heading_pairs = false @properties[:heading_pairs] = @heading_pairs when "TitlesOfParts" @inside_titles_of_parts = false @properties[:titles_of_parts] = @titles_of_parts end end
# File lib/xlsxrb/ooxml/reader.rb, line 2902 def start_element(_uri, local_name, qname, _attributes) name = element_name(local_name, qname) case name when "Application", "AppVersion" @current_field = name @text_buffer = +"" when "HeadingPairs" @inside_heading_pairs = true when "TitlesOfParts" @inside_titles_of_parts = true when "variant" @inside_variant = true @text_buffer = +"" when "lpstr", "i4" @text_buffer = +"" end end