Sha256: c278a7b941d0f54be50e61696834edb792b84583108d319c0bb4eb6ed2963e85

Contents?: true

Size: 1.08 KB

Versions: 18

Compression:

Stored size: 1.08 KB

Contents

require_relative 'lab_resource'

module Medivo
  class Lab < LabResource
    unless defined? LAB_CORP_ID
      LAB_CORP_ID = 129
      QUEST_ID = 119
      LAB_CORP_NAME = :lab_corp
      QUEST_NAME = :quest
      LAB_ID_TO_NAME = {LAB_CORP_ID => LAB_CORP_NAME, QUEST_ID => QUEST_NAME}
      LAB_ID_TO_SHORT_NAME = {LAB_CORP_ID => 'LC', QUEST_ID => 'QD'}
      LAB_ID_TO_PRETTY_NAME = {LAB_CORP_ID => 'Lab Corp', QUEST_ID => 'Quest Diagnostics'}
    end

    def self.findLabs(zip_code, radius = 15)
      find(:all, :from => "/find_psc/#{zip_code}", :params=>{:radius=>radius}).sort_by(&:distance)
    end

    def self.data_for_zip(zip='')
      zip = zip.to_s.match(/(\d{5})/) ? $1 : nil
      return {} unless zip
      labs = findLabs(zip)
      zip_info = Geocoder.coordinates(zip) rescue nil
      zip_location = { :title=>zip, :lat=>zip_info[0], :lng=>zip_info[1] } if zip_info
      {:labs => labs, :zip_location=>zip_location}
    end

    def lab_name
      LAB_ID_TO_PRETTY_NAME[lab_id]
    end

    def as_json(options={})
      attributes.merge(:lab_name => self.lab_name)
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
medivo-0.2.21 app/models/medivo/lab.rb
medivo-0.2.20 app/models/medivo/lab.rb
medivo-0.2.19 app/models/medivo/lab.rb
medivo-0.2.18 app/models/medivo/lab.rb
medivo-0.2.17 app/models/medivo/lab.rb
medivo-0.2.16 app/models/medivo/lab.rb
medivo-0.2.15 app/models/medivo/lab.rb
medivo-0.2.14 app/models/medivo/lab.rb
medivo-0.2.13 app/models/medivo/lab.rb
medivo-0.2.12 app/models/medivo/lab.rb
medivo-0.2.11 app/models/medivo/lab.rb
medivo-0.2.10 app/models/medivo/lab.rb
medivo-0.2.9 app/models/medivo/lab.rb
medivo-0.2.8 app/models/medivo/lab.rb
medivo-0.2.7 app/models/medivo/lab.rb
medivo-0.2.6 app/models/medivo/lab.rb
medivo-0.2.5 app/models/medivo/lab.rb
medivo-0.2.3 app/models/medivo/lab.rb