Gem Build Status Code Climate Dependency Status Coverage Status

YandexLocator

Ruby gem for Yandex locator (https://tech.yandex.ru/locator/). Yandex locator is a service that finds mobile devices in a region delineated by a circle. The service returns longitude, latitude and precision.

Yandex locator can lookup by IP, wifi networks, gsm cells

Installation

Add this line to your application's Gemfile:

gem 'yandex_locator'

And then execute:

$ bundle

Or install it yourself as:

$ gem install yandex_locator

Usage

Configure gem credentials

 YandexLocator.configure do |config|
   config.api_key = 'api key'
   config.version = '1.0'
 end

or

  client = YandexLocator::Client.new(api_key: 'api key', version: '1.0')
  client.lookup(ip: { address_v4: '178.247.233.3' })

Make request

  client = YandexLocator::Client.new(api_key: 'api key', version: '1.0')
  result = client.lookup(ip: { address_v4: '178.247.233.3' })
  result.position
  # => {"altitude"=>0.0, "altitude_precision"=>30.0, "latitude"=>41.00892639160156, "longitude"=>28.96711158752441, "precision"=>100000.0, "type"=>"ip"}
  result = client.lookup(
    wifi_networks: [{
      mac: 'ec:43:f6:d1:a2:1e'
    }],
    gsm_cells: [{
      countrycode: 250,
      operatorid: 99,
      cellid: 12_082,
      lac: 25_254
    }],
    ip: {
      address_v4: '178.247.233.3'
    }
  )
  result.position
  # => {"altitude"=>0.0, "altitude_precision"=>30.0, "latitude"=>56.87141036987305, "longitude"=>60.61107635498047, "precision"=>1066.041137695312, "type"=>"gsm"}

Location Handle

  result = client.lookup(ip: '176.69.53.253')
  if result.position
    # do thangs....
  else
    p result.error['text']
  end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/sergey-chechaev/yandex_locator.