class EagleCAD::Board
Constants
- ContactReference
- Via
Attributes
attributes[R]
classes[R]
description[RW]
design_rules[RW]
elements[R]
libraries[R]
passes[R]
plain[R]
Public Class Methods
from_xml(element)
click to toggle source
# File lib/eaglecad/board.rb, line 103 def self.from_xml(element) Board.new.tap do |board| element.elements.each do |element| case element.name when 'attributes' element.elements.each {|attribute| board.attributes.push Attribute.from_xml(attribute) } when 'autorouter' element.elements.each do |pass_element| pass = board.passes[pass_element.attributes['name']] pass_element.elements.each {|parameter| pass[parameter.attributes['name']] = parameter.attributes['value'] } end when 'classes' element.elements.each {|clearance| board.classes.push Clearance.from_xml(clearance) } when 'description' board.description = element.text when 'designrules' board.design_rules = DesignRules.from_xml(element) when 'elements' element.elements.each {|object| board.elements.push Element.from_xml(object) } when 'libraries' element.elements.each {|library| board.libraries[library.attributes['name']] = Library.from_xml(library) } when 'plain' element.elements.each {|object| board.plain.push Geometry.from_xml(object) } when 'signals' when 'variantdefs' else raise StandardError, "Unrecognized Board element '#{element.name}'" end end end end
new()
click to toggle source
# File lib/eaglecad/board.rb, line 135 def initialize @attributes = [] @classes = [] @contact_references = [] @elements = [] @libraries = {} @passes = Hash.new {|hash, key| hash[key] = Hash.new } @plain = [] end
Public Instance Methods
to_xml()
click to toggle source
@return [REXML::Element]
# File lib/eaglecad/board.rb, line 146 def to_xml REXML::Element.new('board').tap do |element| element.add_element('attributes').tap do |attribute_element| attributes.each {|attribute| attribute_element.add_element attribute.to_xml } end element.add_element('description').text = description element.add_element('autorouter').tap do |autorouter_element| passes.each do |name, pass| autorouter_element.add_element('pass', {'name' => name}).tap do |pass_element| pass.each {|name, value| pass_element.add_element('param', {'name' => name, 'value' => value})} end end end element.add_element('classes').tap do |classes_element| classes.each do |clearance| classes_element.add_element clearance.to_xml end end element.add_element(design_rules.to_xml) if design_rules element.add_element('elements').tap do |element_element| elements.each {|object| element_element.add_element object.to_xml } end element.add_element('libraries').tap do |libraries_element| libraries.each {|name, library| libraries_element.add_element library.to_xml } end element.add_element('plain').tap do |plain_element| plain.each {|object| plain_element.add_element object.to_xml } end end end