bikeshare 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +9 -9
  2. data/lib/bikeshare.rb +38 -43
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MjdlMGQxOWIxY2Y2ZWJmNGM2MTU1MjMyNGU4Mzk2NDhlZGVmYTAxNA==
4
+ MDVhZTYyNTljNjAzMGUwMWEwYjBiMDYwODljYTYyYzMwYTg1MjgwNA==
5
5
  data.tar.gz: !binary |-
6
- Nzc4MDUxNzA0ZjNhN2RmYmRiOTc0NTUzOTI5YmU5OTE0Y2MzZDVlOA==
7
- SHA512:
6
+ YTM5MmJmZWIwN2QyM2JhNDlhZmNlNGI3NTRhZjk5Y2Y5N2FmMjNhZA==
7
+ !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZjdjNjI1YzFjYzIwMmM4ZjM3NWIyNDk1ZWM1MWQ2MzlhY2ExYzdhMWJkZWQ4
10
- NjkzZWY1NTg5ZTU2YjEyMDk0ZTA5MTc3YTBmYzQ0NzdiMDcyY2VjYWIwODAx
11
- ZTBlYWJjMjZkMGZiNmZjMWE1MDZmOTUwZTliYTcyZWRmYzU1NDc=
9
+ OTAzMDJhNDFlZmFlMmQxMmVkNTY3MmVjZmY0MGM5OTI2ZWY4ZmVlNTdmNDlj
10
+ NDRhOTcxOTFmOTg5YWIzYzVkNWNiNjM1NzQ5OWI2OWI5NjRiMzVlMjdmMmUz
11
+ MDNhZDYxZWU4YzE2MzkzNDVkMzM0YzQ2Zjk3ZmYwNzkwMGJlZWE=
12
12
  data.tar.gz: !binary |-
13
- YjEzZmE4ODI4YmNlYThiMzMxZGQ4MDg5YmZmM2I4ZGNkYjEwNmRjYzE2ZWZm
14
- YTY1OTI0MWQ3YzAzMmY2YTYzZWRjY2QxZTYxZTk2YTk3YjA2YWZkNDRhMWU5
15
- NTJkMzljNTI2MDljZjA0MWFjYzU2MWExYmVkN2VmMDgxN2FmNGY=
13
+ Yzk1ZjUxYzQzZWExNjBkY2E0MTMyNjYzYjM0ZDY4ZTIzYmU5MWQyY2Q3NzMy
14
+ YmI4Njk4NjIxNDkwMTFlOTg0NmYzMDdiMzk5ZjhlMGIxNjU2MzI0NDQ3MWQ0
15
+ ZDU3YWFlZWFmYjgxMWU1ZjcyMzYyNGRmMmJjZTkzNDdkOWNlMTU=
data/lib/bikeshare.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  class BikeShare
2
2
 
3
+ FIRST_STATION_ID = 2
4
+
3
5
  def initialize
4
6
  response = JSON.parse(open("http://bayareabikeshare.com/stations/json").read)
5
7
  @response = response["stationBeanList"]
@@ -9,17 +11,11 @@ class BikeShare
9
11
  @response.last["id"]
10
12
  end
11
13
 
12
- def between?(min, max)
13
- (min >= 2 && max <= get_last_station) ? true : false
14
- end
15
-
16
14
  def station_info(station_id)
17
- if station_id.between?(2, get_last_station)
18
- station = @response.select { |station| station["id"] == station_id }
19
- station.first
20
- else
21
- raise "Please enter a station id in between 2 and #{last_station}"
22
- end
15
+ check_valid_station_id!(station_id)
16
+
17
+ station = @response.select { |station| station["id"] == station_id }
18
+ station.first
23
19
  end
24
20
 
25
21
  def stations(*city_name)
@@ -37,56 +33,46 @@ class BikeShare
37
33
  end
38
34
 
39
35
  def empty?(station_id)
40
- if station_id.between?(2, get_last_station)
41
- station = @response.select { |station| station["id"] == station_id }
36
+ check_valid_station_id!(station_id)
42
37
 
43
- station.first["availableBikes"] == 0 ? true : false
44
- else
45
- raise "Please enter a station id in between 2 and #{last_station}"
46
- end
38
+ station = @response.select { |station| station["id"] == station_id }
39
+
40
+ station.first["availableBikes"] == 0 ? true : false
47
41
  end
48
42
 
49
43
  def full?(station_id)
50
- if station_id.between?(2, get_last_station)
51
- station = @response.select { |station| station["id"] == station_id }
44
+ check_valid_station_id!(station_id)
52
45
 
53
- station.first["availableBikes"] == station.first["totalDocks"] ? true : false
54
- else
55
- raise "Please enter a station id in between 2 and #{last_station}"
56
- end
46
+ station = @response.select { |station| station["id"] == station_id }
47
+
48
+ station.first["availableBikes"] == station.first["totalDocks"] ? true : false
57
49
  end
58
50
 
59
51
  def available_bikes(station_id)
60
- if station_id.between?(2, get_last_station)
61
- station = @response.select { |station| station["id"] == station_id }
52
+ check_valid_station_id!(station_id)
62
53
 
63
- station.first["availableBikes"]
64
- else
65
- raise "Please enter a station id in between 2 and #{last_station}"
66
- end
54
+ station = @response.select { |station| station["id"] == station_id }
55
+
56
+ station.first["availableBikes"]
67
57
  end
68
58
 
69
59
  def total_docks(station_id)
70
- if station_id.between?(2, get_last_station)
71
- station = @response.select { |station| station["id"] == station_id }
72
- station.first["totalDocks"]
73
- else
74
- raise "Please enter a station id in between 2 and #{last_station}"
75
- end
60
+ check_valid_station_id!(station_id)
61
+
62
+ station = @response.select { |station| station["id"] == station_id }
63
+ station.first["totalDocks"]
76
64
  end
77
65
 
78
66
  def percent_available(station_id)
79
- if station_id.between?(2, get_last_station)
80
- station = @response.select { |station| station["id"] == station_id }
67
+ check_valid_station_id!(station_id)
81
68
 
82
- available = (station.first["availableBikes"]).to_f
83
- total = (station.first["totalDocks"]).to_f
69
+ station = @response.select { |station| station["id"] == station_id }
84
70
 
85
- percentage = (available * 100.0) / total
86
- percentage.round(2)
87
- else
88
- raise "Please enter a station id in between 2 and #{last_station}"
89
- end
71
+ available = (station.first["availableBikes"]).to_f
72
+ total = (station.first["totalDocks"]).to_f
73
+
74
+ percentage = (available * 100.0) / total
75
+ percentage.round(2)
90
76
  end
91
77
 
92
78
  def offline_stations
@@ -95,4 +81,13 @@ class BikeShare
95
81
  list.empty? ? [] : list
96
82
  end
97
83
 
84
+ private
85
+
86
+ def check_valid_station_id!(station_id)
87
+ first = FIRST_STATION_ID
88
+ last = get_last_station
89
+
90
+ raise "Please enter a station id in between #{first} and #{last}" unless station_id.between?(first, last)
91
+ end
92
+
98
93
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bikeshare
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zack Shapiro
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-06 00:00:00.000000000 Z
11
+ date: 2013-10-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A Ruby wrapper for Bay Area Bike Share station information
13
+ description: Ditto
14
14
  email: zack@zackshapiro.com
15
15
  executables: []
16
16
  extensions: []
@@ -37,7 +37,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
37
37
  version: '0'
38
38
  requirements: []
39
39
  rubyforge_project:
40
- rubygems_version: 2.1.5
40
+ rubygems_version: 2.0.7
41
41
  signing_key:
42
42
  specification_version: 4
43
43
  summary: A Ruby wrapper for Bay Area Bike Share station information