class EagleCAD::Library
Attributes
description[RW]
device_sets[RW]
name[RW]
packages[RW]
symbols[RW]
Public Class Methods
from_xml(element)
click to toggle source
Create a new {Library} from an {REXML::Element} @param [REXML::Element] element The {REXML::Element} to parse
# File lib/eaglecad/library.rb, line 13 def self.from_xml(element) Library.new(name:element.attributes['name']).tap do |library| library.description = element.elements['description'] element.elements.each do |element| case element.name when 'devicesets' element.elements.each {|symbol| library.push DeviceSet.from_xml(symbol) } when 'packages' element.elements.each {|package| library.push Package.from_xml(package) } when 'symbols' element.elements.each {|symbol| library.push Symbol.from_xml(symbol) } end end end end
new(options={})
click to toggle source
# File lib/eaglecad/library.rb, line 30 def initialize(options={}) options.each {|k,v| send("#{k}=", v) } @device_sets = [] @packages = {} @symbols = [] end
Public Instance Methods
push(arg)
click to toggle source
# File lib/eaglecad/library.rb, line 38 def push(arg) case arg when DeviceSet @device_sets.push arg when Package @packages[arg.name] = arg when Symbol @symbols.push arg end end
to_xml()
click to toggle source
Generate XML for the {Library} element @return [REXML::Element]
# File lib/eaglecad/library.rb, line 51 def to_xml REXML::Element.new('library').tap do |element| element.add_attribute 'name', name # Packages must be output before devicesets or Eagle will fail to load the file element.add_element('packages').tap do |packages_element| packages.each {|name, package| packages_element.add_element package.to_xml } end # Symbols must be output before devicessets or Eagle will fail to load the file element.add_element('symbols').tap do |symbols_element| symbols.each {|symbol| symbols_element.add_element symbol.to_xml } end if device_sets and device_sets.count element.add_element('devicesets').tap do |devicesets_element| device_sets.each {|deviceset| devicesets_element.add_element deviceset.to_xml } end end end end