class EagleCAD::Sheet

Constants

PinReference

Attributes

busses[R]
description[RW]
instances[R]
nets[R]

Public Class Methods

from_xml(element) click to toggle source
# File lib/eaglecad/sheet.rb, line 200
def self.from_xml(element)
    Sheet.new.tap do |sheet|
        element.elements.each do |element|
            case element.name
                when 'busses'
                    element.elements.each {|bus| sheet.push Bus.from_xml(bus) }
                when 'description'
                    sheet.description = element.text
                when 'instances'
                    element.elements.each {|instance| sheet.push Instance.from_xml(instance) }
                when 'nets'
                    element.elements.each {|part| sheet.push Net.from_xml(part) }
                when 'plain' #Ignore
                else
                    raise StandardError, "Unrecognized Sheet element '#{element.name}'"
            end
        end
    end
end
new() click to toggle source
# File lib/eaglecad/sheet.rb, line 220
def initialize
    @busses = []
    @instances = []
    @nets = []
    @parts = []
end

Public Instance Methods

push(arg) click to toggle source

Add the passed {Sheet} element to the {Sheet}

# File lib/eaglecad/sheet.rb, line 228
def push(arg)
    case arg
        when Bus      then busses.push arg
        when Instance then instances.push arg
        when Net      then nets.push arg
        else
            raise ArgumentError, "Unrecognized object '#{arg.class}'"
    end
end
to_xml() click to toggle source
# File lib/eaglecad/sheet.rb, line 238
def to_xml
    REXML::Element.new('sheet').tap do |element|
        element.add_element('description').text = description

        element.add_element('instances').tap do |instances_element|
            instances.each {|instance| instances_element.add_element instance.to_xml }
        end

        element.add_element('busses').tap do |busses_element|
            busses.each {|bus| busses_element.add_element bus.to_xml }
        end

        element.add_element('nets').tap do |nets_element|
            nets.each {|net| nets_element.add_element net.to_xml }
        end
    end
end