Class: AIXM::Component::FATO

Inherits:
AIXM::Component show all
Includes:
AIXM::Concerns::Association, AIXM::Concerns::Marking, AIXM::Concerns::Remarks
Defined in:
lib/aixm/component/fato.rb

Overview

FATO (final approach and take-off area) for vertical take-off aircraft such as helicopters.

Cheat Sheet in Pseudo Code:

fato = AIXM.fato(
  name: String
)
fato.dimensions = AIXM.r or nil
fato.surface = AIXM.surface
fato.marking = String or nil
fato.profile = String or nil
fato.status = STATUSES or nil
fato.remarks = String or nil
fato.add_direction(
  name: String
) do |direction|
  direction.geographic_bearing = AIXM.a or nil
  direction.vasis = AIXM.vasis or nil (default: unspecified VASIS)
  fato.add_lighting = AIXM.lighting
  fato.add_approach_lighting = AIXM.approach_lighting
  direction.remarks = String or nil
end

Defined Under Namespace

Classes: Direction

Constant Summary collapse

STATUSES =
{
  CLSD: :closed,
  WIP: :work_in_progress,          # e.g. construction work
  PARKED: :parked_aircraft,        # parked or disabled aircraft on FATO
  FAILAID: :visual_aids_failure,   # failure or irregular operation of visual aids
  SPOWER: :secondary_power,        # secondary power supply in operation
  OTHER: :other                    # specify in remarks
}.freeze

Instance Attribute Summary collapse

Attributes included from AIXM::Concerns::Remarks

#remarks

Attributes included from AIXM::Concerns::Marking

#marking

Attributes inherited from AIXM::Component

#meta

Instance Method Summary collapse

Methods included from AIXM::Concerns::Association

included

Methods included from AIXM::Concerns::HashEquality

#eql?, #hash

Methods included from AIXM::Concerns::XMLBuilder

#build_fragment, #to_uid, #to_xml

Methods included from AIXM::Concerns::Memoize

included, method

Constructor Details

#initialize(name:) ⇒ FATO

See the cheat sheet for examples on how to create instances of this class.



102
103
104
105
# File 'lib/aixm/component/fato.rb', line 102

def initialize(name:)
  self.name = name
  self.surface = AIXM.surface
end

Instance Attribute Details

#dimensionsAIXM::R? #dimensions=(value) ⇒ Object

Dimensions

Overloads:



81
82
83
# File 'lib/aixm/component/fato.rb', line 81

def dimensions
  @dimensions
end

#nameString #name=(value) ⇒ Object

Full name (e.g. “H1”)

Overloads:

  • #nameString

    Returns:

    • (String)
  • #name=(value) ⇒ Object

    Parameters:

    • value (String)


73
74
75
# File 'lib/aixm/component/fato.rb', line 73

def name
  @name
end

#profileString? #profile=(value) ⇒ Object

Profile description

Overloads:

  • #profileString?

    Returns:

    • (String, nil)
  • #profile=(value) ⇒ Object

    Parameters:

    • value (String, nil)


89
90
91
# File 'lib/aixm/component/fato.rb', line 89

def profile
  @profile
end

#statusSymbol? #status=(value) ⇒ Object

Status of the FATO

Overloads:

  • #statusSymbol?

    Returns any of STATUSES or nil for normal operation.

    Returns:

    • (Symbol, nil)

      any of STATUSES or nil for normal operation

  • #status=(value) ⇒ Object

    Parameters:

    • value (Symbol, nil)

      any of STATUSES or nil for normal operation



98
99
100
# File 'lib/aixm/component/fato.rb', line 98

def status
  @status
end

Instance Method Details

#add_direction(direction) ⇒ self

Parameters:

  • direction (AIXM::A)

    name of the FATO direction (e.g. “12” or “16L”)

Returns:

  • (self)


57
# File 'lib/aixm/component/fato.rb', line 57

has_many :directions, accept: 'AIXM::Component::FATO::Direction' do |direction, name:| end

#airportAIXM::Feature::Airport

Returns airport this FATO belongs to.

Returns:



61
# File 'lib/aixm/component/fato.rb', line 61

belongs_to :airport

#directionsArray<AIXM::Component::FATO::Direction>

Returns maps added direction names to full FATO directions.

Returns:



57
# File 'lib/aixm/component/fato.rb', line 57

has_many :directions, accept: 'AIXM::Component::FATO::Direction' do |direction, name:| end

#helipadAIXM::Component::Helipad

Returns helipad situated on this FATO.

Returns:



65
# File 'lib/aixm/component/fato.rb', line 65

belongs_to :helipad

#inspectString

Returns:

  • (String)


108
109
110
# File 'lib/aixm/component/fato.rb', line 108

def inspect
  %Q(#<#{self.class} airport=#{airport&.id.inspect} name=#{name.inspect}>)
end

#surfaceAIXM::Component::Surface

Returns surface of the FATO.

Returns:



49
# File 'lib/aixm/component/fato.rb', line 49

has_one :surface

#surface=(surface) ⇒ Object

Parameters:



49
# File 'lib/aixm/component/fato.rb', line 49

has_one :surface