Class: AIXM::Component::Layer
- Inherits:
-
AIXM::Component
- Object
- AIXM::Component
- AIXM::Component::Layer
- Defined in:
- lib/aixm/component/layer.rb
Overview
Each airspace has one or more layers with optional airspace class and mandatory vertical limit.
Cheat Sheet in Pseudo Code:
layer = AIXM.layer(
class: String or nil
location_indicator: String or nil
vertical_limit: AIXM.vertical_limit
)
layer.activity = String or nil
layer.timetable = AIXM.timetable or nil
layer.selective = true or false (default)
layer.remarks = String or nil
layer.add_service(AIXM.service)
Constant Summary collapse
- CLASSES =
(:A..:G).freeze
- ACTIVITIES =
{ ACCIDENT: :accident_investigation, ACROBAT: :acrobatics, AIRGUN: :aerial_gunnery, AIRMODEL: :aeromodelling, AIRSHOW: :air_show, ANTIHAIL: :anti_hail_rocket, ARTILERY: :artillary_firing, ASCENT: :probe, ATS: :air_traffic_services, BALLOON: :balloon, BIRD: :bird_hazard, 'BIRD-MGR': :bird_migration, BLAST: :blasting_operation, DROP: :dropping, DUSTING: :crop_dusting, EQUIPMENT: :special_equipment_required, 'EQUIPMENT-833': :radio_8_33_required, 'EQUIPMENT-RNAV': :rnav_equipment_required, 'EQUIPMENT-RSVM': :rsvm_equipment_required, EXERCISE: :combat_exercise, FAUNA: :sensitive_fauna, FIRE: :fire_suppression, FIREWORK: :fireworks, GAZ: :gaz_field, GLIDER: :gliding, HANGGLIDER: :hanggliding, 'HI-LIGHT': :high_intensity_light, 'HI-RADIO': :high_intensity_radio, 'IND-CHEM': :chemical_plant, 'IND-NUCLEAR': :nuclear_activity, 'IND-OIL': :oil_refinery, JETCLIMB: :jet_climb, LASER: :laser_light, MILOPS: :military_operation, MISSILES: :guided_missiles, NATURE: :natural_reserve, NAVAL: :ship_exercise, 'NO-NOISE': :noise_abatement, OIL: :oil_field, PARACHUTE: :parachuting, PARAGLIDER: :paragliding, POPULATION: :highly_populated, PROCEDURE: :special_procedure, REFUEL: :refuelling, SHOOT: :shooting_from_ground, SPACEFLT: :space_flight, SPORT: :sport, TECHNICAL: :technical_activity, 'TFC-AD': :aerodrome_traffic, 'TFC-HELI': :helicopter_traffic, TOWING: :towing_traffic, TRG: :training, UAV: :drone, ULM: :ultra_light_flight, VIP: :vip, 'VIP-PRES': :president, 'VIP-VICE': :vice_president, WATERBLAST: :underwater_explosion, WINCH: :glider_winch, WORK: :aerial_work, OTHER: :other }.freeze
Instance Attribute Summary collapse
-
#activity ⇒ Object
Primary activity.
-
#class ⇒ Object
Class of layer.
-
#location_indicator ⇒ Object
Four letter location identifier as published in the ICAO DOC 7910.
-
#selective ⇒ Object
Whether the layer may be activated selectively.
Attributes included from AIXM::Concerns::Remarks
Attributes included from AIXM::Concerns::Timetable
Attributes inherited from AIXM::Component
Instance Method Summary collapse
- #add_service(service) ⇒ Object
-
#airspace ⇒ AIXM::Feature::Airspace
Airspace the layer defines.
-
#initialize(class: nil, location_indicator: nil, vertical_limit:) ⇒ Layer
constructor
See the cheat sheet for examples on how to create instances of this class.
- #inspect ⇒ String
-
#selective? ⇒ Object
Whether the layer may be activated selectively.
-
#services ⇒ Array<AIXM::Component::Service>
Services.
-
#vertical_limit ⇒ AIXM::Component::VerticalLimit
Vertical limit of this layer.
- #vertical_limit=(vertical_limit) ⇒ Object
Methods included from AIXM::Concerns::Association
Methods included from AIXM::Concerns::HashEquality
Methods included from AIXM::Concerns::XMLBuilder
#build_fragment, #to_uid, #to_xml
Methods included from AIXM::Concerns::Memoize
Constructor Details
#initialize(class: nil, location_indicator: nil, vertical_limit:) ⇒ Layer
See the cheat sheet for examples on how to create instances of this class.
129 130 131 132 133 |
# File 'lib/aixm/component/layer.rb', line 129 def initialize(class: nil, location_indicator: nil, vertical_limit:) self.class = binding.local_variable_get(:class) self.location_indicator, self.vertical_limit = location_indicator, vertical_limit self.selective = false end |
Instance Attribute Details
#activity ⇒ Symbol? #activity=(value) ⇒ Object
Primary activity
125 126 127 |
# File 'lib/aixm/component/layer.rb', line 125 def activity @activity end |
#class ⇒ Symbol #class=(value) ⇒ Object
Use Object#__class__ alias to query the Ruby object class.
Class of layer.
149 150 151 |
# File 'lib/aixm/component/layer.rb', line 149 def class @klass end |
#location_indicator ⇒ String? #location_indicator=(value) ⇒ Object
Four letter location identifier as published in the ICAO DOC 7910
117 118 119 |
# File 'lib/aixm/component/layer.rb', line 117 def location_indicator @location_indicator end |
#selective? ⇒ Boolean #selective=(value) ⇒ Object
Whether the layer may be activated selectively.
174 175 176 |
# File 'lib/aixm/component/layer.rb', line 174 def selective? @selective end |
Instance Method Details
#add_service(service) ⇒ Object
105 |
# File 'lib/aixm/component/layer.rb', line 105 has_many :services |
#airspace ⇒ AIXM::Feature::Airspace
Returns airspace the layer defines.
109 |
# File 'lib/aixm/component/layer.rb', line 109 belongs_to :airspace |
#inspect ⇒ String
136 137 138 |
# File 'lib/aixm/component/layer.rb', line 136 def inspect %Q(#<#{__class__} class=#{@klass.inspect}>) end |
#selective? ⇒ Boolean #selective=(value) ⇒ Object
Whether the layer may be activated selectively.
174 175 176 |
# File 'lib/aixm/component/layer.rb', line 174 def selective? @selective end |
#services ⇒ Array<AIXM::Component::Service>
Returns services.
105 |
# File 'lib/aixm/component/layer.rb', line 105 has_many :services |
#vertical_limit ⇒ AIXM::Component::VerticalLimit
Returns vertical limit of this layer.
98 |
# File 'lib/aixm/component/layer.rb', line 98 has_one :vertical_limit |
#vertical_limit=(vertical_limit) ⇒ Object
98 |
# File 'lib/aixm/component/layer.rb', line 98 has_one :vertical_limit |