class TFClient::Models::Nav

Constants

COMPASS_ORDER
LINE_IDENTIFIER

Attributes

asteroids[R]
brightness[R]
claimed_by[R]
coordinates[R]
planets[R]
structures[R]

Public Class Methods

new(lines:) click to toggle source
Calls superclass method TFClient::Models::Response::new
# File lib/textflight-client/models/nav.rb, line 52
def initialize(lines:)
  super(lines: lines)

  LINE_IDENTIFIER.each_with_index do |label, label_index|
    var_name = ResponseParser.snake_case_sym_from_string(string: label)
    class_name = ResponseParser.camel_case_from_string(string: label)

    clazz = ResponseParser.model_class_from_string(string: class_name)
    if clazz.nil?
      raise "could not find class name: #{class_name}"
    end

    line, _ = ResponseParser.line_and_index_for_beginning_with(lines: @lines,
                                                               string: label)

    next if line.nil?

    if label_index < 4
      var = clazz.new(line: line)
    else
      var = clazz.new(lines: @lines)
    end

    instance_variable_set("@#{var_name}", var)
  end
end

Public Instance Methods

response() click to toggle source
# File lib/textflight-client/models/nav.rb, line 79
def response
  puts @planets

  puts @links
  table = TTY::Table.new(rows: [[
    "#{@brightness.to_s}",
    "#{@asteroids.to_s}",
    "#{@coordinates}"]
  ])

  puts table.render(:ascii, Models::TABLE_OPTIONS) do |renderer|
    renderer.alignments= [:left, :center, :right]
  end

  puts @structures
end
to_s() click to toggle source
# File lib/textflight-client/models/nav.rb, line 96
def to_s
  "#<Nav: #{@coordinates.to_s}>"
end