lib/rcap/base/polygon.rb in rcap-2.4.1 vs lib/rcap/base/polygon.rb in rcap-2.5.0
- old
+ new
@@ -2,124 +2,124 @@
module Base
class Polygon
include Validation
# @return [Array<Point>] Collection of {Point} objects
- attr_reader( :points )
+ attr_reader(:points)
- validates_collection_of( :points )
- validates_length_of( :points, :minimum => 3 )
- validates_equality_of_first_and_last( :points )
+ validates_collection_of(:points)
+ validates_length_of(:points, minimum: 3)
+ validates_equality_of_first_and_last(:points)
XML_ELEMENT_NAME = 'polygon'
XPATH = "cap:#{ XML_ELEMENT_NAME }"
# @param [Hash] attributes
# @option attributes [Array<Point>] :points Collection of {Point} objects
def initialize
@points = []
- yield( self ) if block_given?
+ yield(self) if block_given?
end
def add_point
- point = self.point_class.new
- yield( point ) if block_given?
- self.points << point
+ point = point_class.new
+ yield(point) if block_given?
+ points << point
point
end
# Returns a string representation of the polygon of the form
# points[0] points[1] points[2] ...
# where each point is formatted with Point#to_s
def to_s
- @points.join( ' ' )
+ @points.join(' ')
end
# @return [String]
def inspect
- "(#{ @points.map{|point| point.inspect}.join(', ')})"
+ "(#{ @points.map { |point| point.inspect }.join(', ')})"
end
# @return [REXML::Element]
def to_xml_element
- xml_element = REXML::Element.new( XML_ELEMENT_NAME )
- xml_element.add_text( self.to_s )
+ xml_element = REXML::Element.new(XML_ELEMENT_NAME)
+ xml_element.add_text(to_s)
xml_element
end
# @return [Polygon]
- def self.from_xml_element( polygon_xml_element )
+ def self.from_xml_element(polygon_xml_element)
if !polygon_xml_element.text.nil? && !polygon_xml_element.text.empty?
- coordinates = self.parse_polygon_string( polygon_xml_element.text )
- self.new do |polygon|
+ coordinates = parse_polygon_string(polygon_xml_element.text)
+ new do |polygon|
coordinates.each do |lattitude, longitude|
polygon.add_point do |point|
point.lattitude = lattitude.to_f
point.longitude = longitude.to_f
end
end
end
else
- self.new
+ new
end
end
# @return [String]
def to_xml
- self.to_xml_element.to_s
+ to_xml_element.to_s
end
# Two polygons are equivalent if their collection of points is equivalent.
#
# @return [true,false]
- def ==( other )
+ def ==(other)
@points == other.points
end
# @return [Array<Array(Numeric,Numeric)>]
- def self.parse_polygon_string( polygon_string )
- polygon_string.split( ' ' ).map{ |coordinate_string| coordinate_string.split( ',' ).map{|coordinate| coordinate.to_f }}
+ def self.parse_polygon_string(polygon_string)
+ polygon_string.split(' ').map { |coordinate_string| coordinate_string.split(',').map { |coordinate| coordinate.to_f } }
end
# @return [Polygon]
- def self.from_yaml_data( polygon_yaml_data )
- self.new do |polygon|
- Array( polygon_yaml_data ).each do |lattitude, longitude|
+ def self.from_yaml_data(polygon_yaml_data)
+ new do |polygon|
+ Array(polygon_yaml_data).each do |lattitude, longitude|
polygon.add_point do |point|
point.lattitude = lattitude.to_f
point.longitude = longitude.to_f
end
end
end
end
# @return [Hash]
def to_yaml_data
- @points.map{ |point| [ point.lattitude, point.longitude ]}
+ @points.map { |point| [point.lattitude, point.longitude] }
end
# @return [String]
- def to_yaml( options = {} )
- self.to_yaml_data.to_yaml( options )
+ def to_yaml(options = {})
+ to_yaml_data.to_yaml(options)
end
POINTS_KEY = 'points'
# @return [Polygon]
- def self.from_h( polygon_hash )
- self.new do |polygon|
- Array( polygon_hash[ POINTS_KEY ]).each do |point_array|
+ def self.from_h(polygon_hash)
+ new do |polygon|
+ Array(polygon_hash[POINTS_KEY]).each do |point_array|
polygon.add_point do |point|
- point.lattitude = point_array[ Point::LATTITUDE_INDEX ].to_f
- point.longitude = point_array[ Point::LONGITUDE_INDEX ].to_f
+ point.lattitude = point_array[Point::LATTITUDE_INDEX].to_f
+ point.longitude = point_array[Point::LONGITUDE_INDEX].to_f
end
end
end
end
# @return [Hash]
def to_h
- { POINTS_KEY => @points.map{ |point| point.to_a }}
+ { POINTS_KEY => @points.map { |point| point.to_a } }
end
end
end
end