Class: EagleCAD::Sheet::Label

Inherits:
Object
  • Object
show all
Defined in:
lib/eaglecad/sheet.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(origin, size, layer_number) ⇒ Label

Returns a new instance of Label.



100
101
102
103
104
105
106
107
108
# File 'lib/eaglecad/sheet.rb', line 100

def initialize(origin, size, layer_number)
    @origin = origin
    @size = size
    @layer_number = layer_number
    @font = :proportional
    @ratio = 8
    @rotation = 'R0'
    @cross_reference = false
end

Instance Attribute Details

#cross_referenceObject

Returns the value of attribute cross_reference.



85
86
87
# File 'lib/eaglecad/sheet.rb', line 85

def cross_reference
  @cross_reference
end

#fontObject

Returns the value of attribute font.



85
86
87
# File 'lib/eaglecad/sheet.rb', line 85

def font
  @font
end

#layer_numberObject

Returns the value of attribute layer_number.



85
86
87
# File 'lib/eaglecad/sheet.rb', line 85

def layer_number
  @layer_number
end

#originObject

Returns the value of attribute origin.



85
86
87
# File 'lib/eaglecad/sheet.rb', line 85

def origin
  @origin
end

#ratioObject

Returns the value of attribute ratio.



85
86
87
# File 'lib/eaglecad/sheet.rb', line 85

def ratio
  @ratio
end

#rotationObject

Returns the value of attribute rotation.



85
86
87
# File 'lib/eaglecad/sheet.rb', line 85

def rotation
  @rotation
end

#sizeObject

Returns the value of attribute size.



85
86
87
# File 'lib/eaglecad/sheet.rb', line 85

def size
  @size
end

Class Method Details

.from_xml(element) ⇒ Object



87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/eaglecad/sheet.rb', line 87

def self.from_xml(element)
    Label.new(Geometry.point_from(element), element.attributes['size'].to_f, element.attributes['layer'].to_i).tap do |label|
 element.attributes.each do |name, value|
      case name
  when 'font'     then label.font = value.to_sym
  when 'ratio'    then label.ratio = value.to_i
  when 'rot'      then label.rotation = value
  when 'xref'     then label.cross_reference = ('no' != value)
      end
 end
    end
end

Instance Method Details

#to_xmlObject



110
111
112
113
114
115
116
117
118
# File 'lib/eaglecad/sheet.rb', line 110

def to_xml
    REXML::Element.new('label').tap do |element|
 element.add_attributes({'x' => origin.x, 'y' => origin.y, 'layer' => layer_number ,'size' => size})
 element.add_attribute('font', font)
 element.add_attribute('ratio', ratio) unless 8 == ratio
 element.add_attribute('rot', rotation)
 element.add_attribute('xref', cross_reference) if cross_reference
    end
end