From 3375c03f5900cab9063a7b50f32e7884401f6eb2 Mon Sep 17 00:00:00 2001
From: Alex Reisner <alex@alexreisner.com>
Date: Sun, 17 Jun 2018 19:21:25 -0600
Subject: [PATCH] Remove :okf lookup.

Appears to be defunct.
---
 README_API_GUIDE.md              |  12 ----
 lib/geocoder/lookup.rb           |   1 -
 lib/geocoder/lookups/okf.rb      |  44 -------------
 lib/geocoder/results/okf.rb      | 106 -------------------------------
 test/fixtures/okf_kirstinmaki    |  67 -------------------
 test/fixtures/okf_no_results     |   4 --
 test/test_helper.rb              |   8 ---
 test/unit/error_handling_test.rb |   4 +-
 test/unit/lookups/okf_test.rb    |  37 -----------
 9 files changed, 2 insertions(+), 281 deletions(-)
 delete mode 100644 lib/geocoder/lookups/okf.rb
 delete mode 100644 lib/geocoder/results/okf.rb
 delete mode 100644 test/fixtures/okf_kirstinmaki
 delete mode 100644 test/fixtures/okf_no_results
 delete mode 100644 test/unit/lookups/okf_test.rb

diff --git a/README_API_GUIDE.md b/README_API_GUIDE.md
index c7ca51b9..04627915 100644
--- a/README_API_GUIDE.md
+++ b/README_API_GUIDE.md
@@ -265,18 +265,6 @@ Data Science Toolkit provides an API whose response format is like Google's but
 * **Terms of Service**: http://smartystreets.com/legal/terms-of-service
 * **Limitations**: No reverse geocoding.
 
-
-### OKF Geocoder (`:okf`)
-
-* **API key**: none
-* **Quota**: none
-* **Region**: FI
-* **SSL support**: no
-* **Languages**: fi
-* **Documentation**: http://books.okf.fi/geocoder/_full/
-* **Terms of Service**: http://www.itella.fi/liitteet/palvelutjatuotteet/yhteystietopalvelut/Postinumeropalvelut-Palvelukuvausjakayttoehdot.pdf
-* **Limitations**: ?
-
 ### Geoportail.lu (`:geoportail_lu`)
 
 * **API key**: none
diff --git a/lib/geocoder/lookup.rb b/lib/geocoder/lookup.rb
index baa85c9d..df284da4 100644
--- a/lib/geocoder/lookup.rb
+++ b/lib/geocoder/lookup.rb
@@ -45,7 +45,6 @@ module Geocoder
         :baidu,
         :geocodio,
         :smarty_streets,
-        :okf,
         :postcode_anywhere_uk,
         :postcodes_io,
         :geoportail_lu,
diff --git a/lib/geocoder/lookups/okf.rb b/lib/geocoder/lookups/okf.rb
deleted file mode 100644
index 54909bb2..00000000
--- a/lib/geocoder/lookups/okf.rb
+++ /dev/null
@@ -1,44 +0,0 @@
-require 'geocoder/lookups/base'
-require "geocoder/results/okf"
-
-module Geocoder::Lookup
-  class Okf < Base
-
-    def name
-      "Okf"
-    end
-
-    def query_url(query)
-      "#{protocol}://data.okf.fi/gis/1/geocode/json?" + url_query_string(query)
-    end
-
-    private # ---------------------------------------------------------------
-
-    def valid_response?(response)
-      json = parse_json(response.body)
-      status = json["status"] if json
-      super(response) and ['OK', 'ZERO_RESULTS'].include?(status)
-    end
-
-    def results(query)
-      return [] unless doc = fetch_data(query)
-      case doc['status']; when "OK" # OK status implies >0 results
-        return doc['results']
-      end
-      return []
-    end
-
-    def query_url_okf_params(query)
-      params = {
-        (query.reverse_geocode? ? :latlng : :address) => query.sanitized_text,
-        :sensor => "false",
-        :language => (query.language || configuration.language)
-      }
-      params
-    end
-
-    def query_url_params(query)
-      query_url_okf_params(query).merge(super)
-    end
-  end
-end
diff --git a/lib/geocoder/results/okf.rb b/lib/geocoder/results/okf.rb
deleted file mode 100644
index 97392259..00000000
--- a/lib/geocoder/results/okf.rb
+++ /dev/null
@@ -1,106 +0,0 @@
-require 'geocoder/results/base'
-
-module Geocoder::Result
-  class Okf < Base
-
-    def coordinates
-      ['lat', 'lng'].map{ |i| geometry['location'][i] }
-    end
-
-    def address(format = :full)
-      formatted_address
-    end
-
-    def city
-      fields = [:locality, :sublocality,
-        :administrative_area_level_3,
-        :administrative_area_level_2]
-      fields.each do |f|
-        if entity = address_components_of_type(f).first
-          return entity['long_name']
-        end
-      end
-      return nil # no appropriate components found
-    end
-
-  def state
-    ""
-  end
-
-  def sub_state
-    ""
-  end
-
-  def state_code
-    ""
-  end
-
-    def country
-      if country = address_components_of_type(:country).first
-        country['long_name']
-      end
-    end
-
-    def country_code
-      if country = address_components_of_type(:country).first
-        country['short_name']
-      end
-    end
-
-    def postal_code
-      if postal = address_components_of_type(:postal_code).first
-        postal['long_name']
-      end
-    end
-
-    def route
-      if route = address_components_of_type(:route).first
-        route['long_name']
-      end
-    end
-
-    def street_number
-      if street_number = address_components_of_type(:street_number).first
-        street_number['long_name']
-      end
-    end
-
-    def street_address
-      [route, street_number].compact.join(' ')
-    end
-
-    def types
-      @data['types']
-    end
-
-    def formatted_address
-      @data['formatted_address']
-    end
-
-    def address_components
-      @data['address_components']
-    end
-
-    ##
-    # Get address components of a given type. Valid types are defined in
-    # Google's Geocoding API documentation and include (among others):
-    #
-    #   :street_number
-    #   :locality
-    #   :neighborhood
-    #   :route
-    #   :postal_code
-    #
-    def address_components_of_type(type)
-      address_components.select{ |c| c['types'].include?(type.to_s) }
-    end
-
-    def geometry
-      @data['geometry']
-    end
-
-    def precision
-      geometry['location_type'] if geometry
-    end
-  end
-end
diff --git a/test/fixtures/okf_kirstinmaki b/test/fixtures/okf_kirstinmaki
deleted file mode 100644
index 79d50b96..00000000
--- a/test/fixtures/okf_kirstinmaki
+++ /dev/null
@@ -1,67 +0,0 @@
-{
-   "status" : "OK",
-   "results" : [
-      {
-         "formatted_address" : "Kirstinmäki 1, 02760 Espoo, Suomi",
-         "sources" : [
-            {
-               "name" : "National Land Survey of Finland - Topographic Dataset (2013-03-08)",
-               "terms_of_use" : "National Land Survey open data licence - version 1.0 - 1 May 2012\nhttp://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501"
-            },
-            {
-               "name" : "Itella perusosoitteisto (2014-02-01)",
-               "terms_of_use" : "http://www.itella.fi/liitteet/palvelutjatuotteet/yhteystietopalvelut/Postinumeropalvelut-Palvelukuvausjakayttoehdot.pdf"
-            }
-         ],
-         "types" : [
-            "street_address"
-         ],
-         "address_components" : [
-            {
-               "types" : [
-                  "street_number"
-               ],
-               "short_name" : "1",
-               "long_name" : "1"
-            },
-            {
-               "types" : [
-                  "route"
-               ],
-               "short_name" : "Kirstinmäki",
-               "long_name" : "Kirstinmäki"
-            },
-            {
-               "types" : [
-                  "administrative_area_level_3",
-                  "political"
-               ],
-               "short_name" : "Espoo",
-               "long_name" : "Espoo"
-            },
-            {
-               "types" : [
-                  "postal_code"
-               ],
-               "short_name" : "02760",
-               "long_name" : "02760"
-            },
-            {
-               "types" : [
-                  "country",
-                  "political"
-               ],
-               "short_name" : "FI",
-               "long_name" : "Suomi"
-            }
-         ],
-         "geometry" : {
-            "location" : {
-               "lat" : 60.2015185792087,
-               "lng" : 24.6667520050026
-            },
-            "location_type" : "RANGE_INTERPOLATED"
-         }
-      }
-   ]
-}
diff --git a/test/fixtures/okf_no_results b/test/fixtures/okf_no_results
deleted file mode 100644
index 184b56de..00000000
--- a/test/fixtures/okf_no_results
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-   "status" : "ZERO_RESULTS",
-   "results" : []
-}
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 1f67af1b..62749565 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -318,14 +318,6 @@ module Geocoder
       end
     end
 
-    require 'geocoder/lookups/okf'
-    class Okf
-      private
-      def default_fixture_filename
-        "okf_kirstinmaki"
-      end
-    end
-
     require 'geocoder/lookups/postcode_anywhere_uk'
     class PostcodeAnywhereUk
       private
diff --git a/test/unit/error_handling_test.rb b/test/unit/error_handling_test.rb
index 689d1fe5..00066a3f 100644
--- a/test/unit/error_handling_test.rb
+++ b/test/unit/error_handling_test.rb
@@ -19,7 +19,7 @@ class ErrorHandlingTest < GeocoderTestCase
 
   def test_always_raise_response_parse_error
     Geocoder.configure(:always_raise => [Geocoder::ResponseParseError])
-    [:freegeoip, :google, :ipdata_co, :okf].each do |l|
+    [:freegeoip, :google, :ipdata_co].each do |l|
       lookup = Geocoder::Lookup.get(l)
       set_api_key!(l)
       assert_raises Geocoder::ResponseParseError do
@@ -29,7 +29,7 @@ class ErrorHandlingTest < GeocoderTestCase
   end
 
   def test_never_raise_response_parse_error
-    [:freegeoip, :google, :ipdata_co, :okf].each do |l|
+    [:freegeoip, :google, :ipdata_co].each do |l|
       lookup = Geocoder::Lookup.get(l)
       set_api_key!(l)
       silence_warnings do
diff --git a/test/unit/lookups/okf_test.rb b/test/unit/lookups/okf_test.rb
deleted file mode 100644
index b05cce85..00000000
--- a/test/unit/lookups/okf_test.rb
+++ /dev/null
@@ -1,37 +0,0 @@
-# encoding: utf-8
-require 'test_helper'
-
-class OkfTest < GeocoderTestCase
-
-  def setup
-    Geocoder.configure(lookup: :okf)
-  end
-
-  def test_okf_result_components
-    result = Geocoder.search("Kirstinmäki 11b28").first
-    assert_equal "Espoo",
-      result.address_components_of_type(:administrative_area_level_3).first['long_name']
-  end
-
-  def test_okf_result_components_contains_route
-    result = Geocoder.search("Kirstinmäki 11b28").first
-    assert_equal "Kirstinmäki",
-      result.address_components_of_type(:route).first['long_name']
-  end
-
-  def test_okf_result_components_contains_street_number
-    result = Geocoder.search("Kirstinmäki 11b28").first
-    assert_equal "1",
-      result.address_components_of_type(:street_number).first['long_name']
-  end
-
-  def test_okf_street_address_returns_formatted_street_address
-    result = Geocoder.search("Kirstinmäki 11b28").first
-    assert_equal "Kirstinmäki 1", result.street_address
-  end
-
-  def test_okf_precision
-    result = Geocoder.search("Kirstinmäki 11b28").first
-    assert_equal "RANGE_INTERPOLATED", result.precision
-  end
-end
-- 
GitLab