Sha256: c65f2bc0fe00260da4b21e7d39145abb183cb1e76a425bd4598b8f75fa0de8d4

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

module ShackKit
  module Data
    class SOTASummits
      def self.update(source_file = SOURCES_DIR + "/summitslist.csv")
        summits = DB[:sota_summits]
        summits.delete
        CSV.foreach(source_file, headers: true, skip_lines: /SOTA Summits List/) do |row|
          summits.insert(
            summit_code: row["SummitCode"],
            association_name: row["AssociationName"],
            region_name: row["RegionName"],
            summit_name: row["SummitName"],
            alt_m: row["AltM"].to_i,
            alt_ft: row["AltFt"].to_i,
            grid_ref1: row["GridRef1"],
            grid_ref2: row["GridRef2"],
            longitude: row["Longitude"].to_f,
            latitude: row["Latitude"].to_f,
            points: row["Points"].to_i,
            bonus_points: row["BonusPoints"].to_i,
            valid_from: Date.parse(row["ValidFrom"]),
            valid_to: Date.parse(row["ValidTo"]),
            activation_count: row["ActivationCount"].to_i,
            activation_date: row["ActivationDate"].nil? ? nil : Date.parse(row["ActivationDate"]),
            activation_call: row["ActivationCall"]
          )
        end
        summits.count
      end

      def self.check(reference)
        summit = DB[:sota_summits].where(summit_code: reference).first
        return false if summit.nil?
        locator = Maidenhead.to_maidenhead(summit[:latitude], summit[:longitude], 3)
        summit.merge(maidenhead_locator: locator)
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
shack_kit-0.2.2 lib/shack_kit/data/sota_summits.rb
shack_kit-0.2.1 lib/shack_kit/data/sota_summits.rb
shack_kit-0.2.0 lib/shack_kit/data/sota_summits.rb