class ExtractRelationships

Attributes

input[RW]
output[RW]

Public Class Methods

extract(*args) click to toggle source
# File src/extract/extract_relationships.rb, line 7
def self.extract(*args)
  self.new.extract(*args)
end

Public Instance Methods

attr(name, value) click to toggle source
# File src/extract/extract_relationships.rb, line 23
def attr(name, value)
  return unless @state == :in_relationship
  case name
  when :Id
    @id = value
  when :Target
    @target = value
  end
end
end_element(name) click to toggle source
# File src/extract/extract_relationships.rb, line 33
def end_element(name)
  return unless @state == :in_relationship
  return unless name == :Relationship
  @output[@id] = @target
  @state = :not_in_relationship
  @id, @target = nil, nil
end
extract(input_xml) click to toggle source
# File src/extract/extract_relationships.rb, line 11
def extract(input_xml)
  @input, @output = input, {}
  @state = :not_in_relationship
  Ox.sax_parse(self, input_xml, :convert_special => true)
  output
end
start_element(name) click to toggle source
# File src/extract/extract_relationships.rb, line 18
def start_element(name)
  return false unless name == :Relationship
  @state = :in_relationship
end