lib/rcap/base/area.rb in rcap-2.7.0 vs lib/rcap/base/area.rb in rcap-2.7.3
- old
+ new
@@ -1,5 +1,7 @@
+# frozen_string_literal: true
+
module RCAP
module Base
class Area
include Validation
@@ -23,14 +25,14 @@
XML_ELEMENT_NAME = 'area'
AREA_DESC_ELEMENT_NAME = 'areaDesc'
ALTITUDE_ELEMENT_NAME = 'altitude'
CEILING_ELEMENT_NAME = 'ceiling'
- XPATH = "cap:#{ XML_ELEMENT_NAME }"
- AREA_DESC_XPATH = "cap:#{ AREA_DESC_ELEMENT_NAME }"
- ALTITUDE_XPATH = "cap:#{ ALTITUDE_ELEMENT_NAME }"
- CEILING_XPATH = "cap:#{ CEILING_ELEMENT_NAME }"
+ XPATH = "cap:#{XML_ELEMENT_NAME}"
+ AREA_DESC_XPATH = "cap:#{AREA_DESC_ELEMENT_NAME}"
+ ALTITUDE_XPATH = "cap:#{ALTITUDE_ELEMENT_NAME}"
+ CEILING_XPATH = "cap:#{CEILING_ELEMENT_NAME}"
# @example
# Area.new do |area|
# area.area_desc = 'Cape Town CVD'
# end
@@ -119,20 +121,20 @@
# Implements an equality operator for the Area object. Two Area objects are equal if all their attributes are equal.
#
# @param [Area] other Area object to compare
# @return [true,false]
def ==(other)
- comparison_attributes = lambda { |area| [area.area_desc, area.altitude, area.ceiling, area.circles, area.geocodes, area.polygons] }
+ comparison_attributes = ->(area) { [area.area_desc, area.altitude, area.ceiling, area.circles, area.geocodes, area.polygons] }
comparison_attributes.call(self) == comparison_attributes.call(other)
end
# @return [String]
def inspect
- area_inspect = "Area Description: #{ @area_desc }\n"\
- "Polygons:\n" + @polygons.map { |polygon| ' ' + polygon.inspect }.join("\n") + "\n"\
- "Circles: #{ @circles.inspect }\n"\
- "Geocodes: #{ @geocodes.inspect }\n"
+ area_inspect = "Area Description: #{@area_desc}\n"\
+ "Polygons:\n" + @polygons.map { |polygon| ' ' + polygon.inspect }.join("\n") + "\n"\
+ "Circles: #{@circles.inspect}\n"\
+ "Geocodes: #{@geocodes.inspect}\n"
RCAP.format_lines_for_inspect('AREA', area_inspect)
end
# Returns the area description
#
@@ -151,11 +153,11 @@
# @return [Hash]
def to_yaml_data
RCAP.attribute_values_to_hash([AREA_DESC_YAML, @area_desc],
[ALTITUDE_YAML, @altitude],
[CEILING_YAML, @ceiling],
- [CIRCLES_YAML, @circles.map { |circle| circle.to_a }],
+ [CIRCLES_YAML, @circles.map(&:to_a)],
[GEOCODES_YAML, @geocodes.reduce({}) { |h, geocode| h.merge(geocode.name => geocode.value) }],
[POLYGONS_YAML, @polygons.map(&:to_yaml_data)])
end
# @return [String] YAML representation of object
@@ -220,12 +222,16 @@
# @return [Hash]
def to_h
RCAP.attribute_values_to_hash([AREA_DESC_KEY, @area_desc],
[ALTITUDE_KEY, @altitude],
[CEILING_KEY, @ceiling],
- [CIRCLES_KEY, @circles.map { |circle| circle.to_a }],
- [GEOCODES_KEY, @geocodes.map { |geocode| geocode.to_h }],
- [POLYGONS_KEY, @polygons.map { |polygon| polygon.to_h }])
+ [CIRCLES_KEY, @circles.map(&:to_a)],
+ [GEOCODES_KEY, @geocodes.map(&:to_h)],
+ [POLYGONS_KEY, @polygons.map(&:to_h)])
+ end
+
+ def map_data?
+ @circles.any? || @polygons.any?
end
end
end
end