Sha256: e26b223ab5056a15f103b48ad01fdc767aea837fe5eef9a8adcf68c165a93889

Contents?: true

Size: 895 Bytes

Versions: 1

Compression:

Stored size: 895 Bytes

Contents

require 'thor'
require 'geo_distance'

module GeoDistance
  class CLI < Thor

    desc "get_customers_in_radius customers_file_path latitude longitude radius",
         "Outputs a list of customers that are inside deisred radius (in meters) from specified location coordinates"
    def get_customers_in_radius(customers_file_path, latitude, longitude, radius)
      customers = GeoDistance::Parser::Json.get_customers_from_file(customers_file_path)
      location = GeoDistance::Model::Location.new(latitude, longitude)
      result = GeoDistance::Operation::Customer.get_customers_in_radius(customers, location, radius)
      sorted_result = GeoDistance::Transformer::Sort.acsending(result, "id")
      serialized_result = GeoDistance::Serializer::Customer.serialize_array(sorted_result, ["name", "id"])
      GeoDistance::Persistence::Console.print_array(serialized_result)
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
geo_distance-0.1.1 lib/geo_distance/cli.rb