Class: Cimis::Station

Inherits:
Object
  • Object
show all
Defined in:
lib/cimis/station.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params) ⇒ Station

Returns a new instance of Station.



22
23
24
25
# File 'lib/cimis/station.rb', line 22

def initialize(params)
  processed_params = process_params(params)
  super(processed_params)
end

Class Method Details

.allObject



27
28
29
30
31
32
# File 'lib/cimis/station.rb', line 27

def self.all
  response = Cimis.connection.get("station")
  response.body["Stations"].map do |station|
    new(station)
  end 
end

Instance Method Details

#data(options = {}) ⇒ Object



53
54
55
56
57
58
59
# File 'lib/cimis/station.rb', line 53

def data(options = {})
  options.merge!({app_key: Cimis.app_key, targets: station_nbr})
  response = Cimis.connection.get("data?#{Cimis.to_query(options)}") 
  response.body["Data"]["Providers"].first["Records"].map do |record|
    StationData.new(record)
  end
end

#extract_coordinate(str) ⇒ Object



43
44
45
46
47
# File 'lib/cimis/station.rb', line 43

def extract_coordinate(str)
  word = str.dup
  word = word.split("/").last
  word.strip!
end

#parse_date(date_str) ⇒ Object



49
50
51
# File 'lib/cimis/station.rb', line 49

def parse_date(date_str)
  DateTime.strptime(date_str, "%m/%d/%Y")
end

#process_params(params) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/cimis/station.rb', line 34

def process_params(params)
  symbolized = Cimis.symbolize_keys(params)
  symbolized[:hms_latitude] = extract_coordinate(symbolized[:hms_latitude])
  symbolized[:hms_longitude] = extract_coordinate(symbolized[:hms_longitude])
  symbolized[:connect_date] = parse_date(symbolized[:connect_date])
  symbolized[:disconnect_date] = parse_date(symbolized[:disconnect_date]) 
  symbolized
end