Sha256: a1c2ef4a47cb2736c73b6d5324f74fe2ef86ddc7f36cd7215cdbdc2f9350a9e3

Contents?: true

Size: 1.1 KB

Versions: 13

Compression:

Stored size: 1.1 KB

Contents

class Prawn::SVG::Elements::DepthFirstBase < Prawn::SVG::Elements::Base
  def initialize(document, source, parent_calls, state)
    super
    @base_calls = @calls = @parent_calls
  end

  def process
    parse_step
    apply_step(calls)
  rescue SkipElementQuietly
  rescue SkipElementError => e
    @document.warnings << e.message
  end

  def parse_and_apply
    raise "unsupported"
  end

  protected

  def parse_step
    extract_attributes_and_properties
    parse_standard_attributes
    parse
    parse_child_elements if container?
  end

  def apply_step(calls)
    @base_calls = @calls = calls
    apply_calls_from_standard_attributes
    apply
    apply_child_elements if container?
  end

  def parse_child_elements
    return unless source

    svg_child_elements.each do |elem|
      if element_class = Prawn::SVG::Elements::TAG_CLASS_MAPPING[elem.name.to_sym]
        child = element_class.new(@document, elem, @calls, state.dup)
        child.parse_step
        @children << child
      end
    end
  end

  def apply_child_elements
    @children.each do |child|
      child.apply_step(calls)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
prawn-svg-0.34.2 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.34.1 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.34.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.33.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.32.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.31.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.30.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.29.1 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.29.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.28.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.27.1 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.27.0 lib/prawn/svg/elements/depth_first_base.rb
prawn-svg-0.26.0 lib/prawn/svg/elements/depth_first_base.rb