Class: DiscordDistanceCalculator::MessageHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/discord_distance_calculator/message_handler.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message) ⇒ MessageHandler

Returns a new instance of MessageHandler.



5
6
7
8
# File 'lib/discord_distance_calculator/message_handler.rb', line 5

def initialize(message)
  @message = message
  @calculator = DistanceCalculator.new(get_locations)
end

Instance Attribute Details

#calculatorObject (readonly)

Returns the value of attribute calculator.



3
4
5
# File 'lib/discord_distance_calculator/message_handler.rb', line 3

def calculator
  @calculator
end

#messageObject (readonly)

Returns the value of attribute message.



3
4
5
# File 'lib/discord_distance_calculator/message_handler.rb', line 3

def message
  @message
end

Instance Method Details

#distance_calculator(unit_type = "mi") ⇒ Object



23
24
25
# File 'lib/discord_distance_calculator/message_handler.rb', line 23

def distance_calculator(unit_type = "mi")
  unit_type == "mi" ? calculator.get_miles : calculator.get_kilometers
end

#get_locationsObject



18
19
20
21
# File 'lib/discord_distance_calculator/message_handler.rb', line 18

def get_locations
  parts = message.split(" ")
  [parts[1], parts[2]]
end

#get_responseObject



27
28
29
30
31
32
# File 'lib/discord_distance_calculator/message_handler.rb', line 27

def get_response
  response = "The distance between these two points is"
  if has_command?
    has_km? ? "#{response} #{distance_calculator("km")} kilometers." : "#{response} #{distance_calculator} miles."
  end
end

#has_command?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/discord_distance_calculator/message_handler.rb', line 10

def has_command?
  message.start_with?('!distance')
end

#has_km?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/discord_distance_calculator/message_handler.rb', line 14

def has_km?
  message.end_with?(' km')
end