Sha256: 40409d7c3dedcf798527af49a6431c26ed5450d0dcef44e3e12689323853c2e7

Contents?: true

Size: 1.58 KB

Versions: 15

Compression:

Stored size: 1.58 KB

Contents

require 'nokogiri'

require 'caracal/renderers/xml_renderer'


module Caracal
  module Renderers
    class PackageRelationshipsRenderer < XmlRenderer
      
      #-------------------------------------------------------------
      # Public Methods
      #-------------------------------------------------------------
      
      # This method produces the xml required for the `word/settings.xml` 
      # sub-document.
      #
      def to_xml
        builder = ::Nokogiri::XML::Builder.with(declaration_xml) do |xml|
          xml.send 'Relationships', root_options do
            relationship_data.each_with_index do |rel, index|
              xml.send 'Relationship', { 'Target' => rel.first, 'Type' => rel.last, 'Id' => "rId#{ index + 1 }" }
            end
          end
        end
        builder.to_xml(save_options)
      end
      
      
      #-------------------------------------------------------------
      # Private Methods
      #------------------------------------------------------------- 
      private
      
      def relationship_data
        [
          ['docProps/app.xml',  'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties'],
          ['docProps/core.xml', 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties'],
          ['word/document.xml', 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument']
        ]
      end
      
      def root_options
        {
          'xmlns' => 'http://schemas.openxmlformats.org/package/2006/relationships'
        }
      end
   
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
caracal-1.0.2 lib/caracal/renderers/package_relationships_renderer.rb
caracal-1.0.1 lib/caracal/renderers/package_relationships_renderer.rb
caracal-1.0.0 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.3.0 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.2.1 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.2.0 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.8 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.7 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.6 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.5 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.4 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.3 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.2 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.1 lib/caracal/renderers/package_relationships_renderer.rb
caracal-0.1.0 lib/caracal/renderers/package_relationships_renderer.rb