class Prawn::SVG::Elements::DepthFirstBase

Public Class Methods

new(document, source, parent_calls, state) click to toggle source
Calls superclass method Prawn::SVG::Elements::Base.new
# File lib/prawn/svg/elements/depth_first_base.rb, line 2
def initialize(document, source, parent_calls, state)
  super
  @base_calls = @calls = @parent_calls
end

Public Instance Methods

parse_and_apply() click to toggle source
# File lib/prawn/svg/elements/depth_first_base.rb, line 15
def parse_and_apply
  raise "unsupported"
end
process() click to toggle source
# File lib/prawn/svg/elements/depth_first_base.rb, line 7
def process
  parse_step
  apply_step(calls)
rescue SkipElementQuietly
rescue SkipElementError => e
  @document.warnings << e.message
end

Protected Instance Methods

apply_child_elements() click to toggle source
# File lib/prawn/svg/elements/depth_first_base.rb, line 47
def apply_child_elements
  @children.each do |child|
    child.apply_step(calls)
  end
end
apply_step(calls) click to toggle source
# File lib/prawn/svg/elements/depth_first_base.rb, line 28
def apply_step(calls)
  @base_calls = @calls = calls
  apply_calls_from_standard_attributes
  apply
  apply_child_elements if container?
end
parse_child_elements() click to toggle source
# File lib/prawn/svg/elements/depth_first_base.rb, line 35
def parse_child_elements
  return unless source

  source.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
parse_step() click to toggle source
# File lib/prawn/svg/elements/depth_first_base.rb, line 21
def parse_step
  extract_attributes_and_properties
  parse_standard_attributes
  parse
  parse_child_elements if container?
end