mars_photos 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/README.md +7 -1
- data/lib/mars_photos/api.rb +4 -12
- data/lib/mars_photos/rover.rb +28 -2
- data/lib/mars_photos/url.rb +17 -0
- data/lib/mars_photos/version.rb +1 -1
- data/lib/mars_photos.rb +1 -1
- data/mars_photos.gemspec +2 -0
- metadata +30 -2
- data/lib/mars_photos/mars_photos_calculations.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: caa7bbd47c9d2326827488405d9bb8f7c204c0ca
|
4
|
+
data.tar.gz: c3bdafca68b394498a4d8df0479b75892496bc9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3114fb19aaae40ef324004136be9d79f6727466183d0284214ce535009027a6547fa6f251baff45ed07156bfd19a53178ed3f83f1cf9aaf2ad6787b596abe838
|
7
|
+
data.tar.gz: 27a3d65fcd6356c06bb41bae2e7da1bea50902ab681121c572e873ec1084895e56151c150f7d1365055d688b597db8e1d6a247fc88aa15014eeb2ed8ff944c21
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# MarsPhotos
|
2
2
|
|
3
|
+
[](https://codeclimate.com/github/cltweedie/mars_photos/coverage)
|
4
|
+
|
3
5
|
A Ruby wrapper for NASAs Mars Rover Photos API.
|
4
6
|
|
5
7
|
## Installation
|
@@ -60,7 +62,11 @@ You can also instantiate the Rover class:
|
|
60
62
|
```ruby
|
61
63
|
@curiosity = MarsPhotos::Rover.new('curiosity')
|
62
64
|
|
63
|
-
@curiosity.get(
|
65
|
+
@curiosity.get(sol: 1000)
|
66
|
+
@curiosity.get(earth_date: '2015-6-3')
|
67
|
+
|
68
|
+
@curiosity.get_by_sol(1000)
|
69
|
+
@curiosity.get_by_earth_date('2015-6-3')
|
64
70
|
```
|
65
71
|
|
66
72
|
### Rovers
|
data/lib/mars_photos/api.rb
CHANGED
@@ -6,18 +6,10 @@ module MarsPhotos
|
|
6
6
|
@key = key
|
7
7
|
end
|
8
8
|
|
9
|
-
def get(
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
date = "&earth_date=#{earth_date}"
|
14
|
-
else
|
15
|
-
raise "You must provide a sol or earth date"
|
16
|
-
end
|
17
|
-
|
18
|
-
camera = cam ? "&camera=#{cam}" : ""
|
19
|
-
|
20
|
-
response = HTTParty.get("https://api.nasa.gov/mars-photos/api/v1/rovers/#{rover}/photos?api_key=#{@key}#{date}#{camera}")
|
9
|
+
def get(params={})
|
10
|
+
params[:key] = @key
|
11
|
+
url = MarsPhotos::URL.build(params)
|
12
|
+
response = HTTParty.get(url)
|
21
13
|
|
22
14
|
if block_given?
|
23
15
|
response['photos'].each { |photo| yield photo }
|
data/lib/mars_photos/rover.rb
CHANGED
@@ -1,12 +1,38 @@
|
|
1
|
+
require 'pry'
|
2
|
+
|
1
3
|
module MarsPhotos
|
2
4
|
class Rover
|
3
5
|
attr_accessor :name
|
4
6
|
def initialize(name)
|
5
7
|
@name = name
|
8
|
+
@key = 'DEMO_KEY'
|
9
|
+
end
|
10
|
+
|
11
|
+
def get(parameters = {})
|
12
|
+
parameters[:rover] = @name
|
13
|
+
parameters[:key] = @key
|
14
|
+
url = MarsPhotos::URL.build(parameters)
|
15
|
+
response = HTTParty.get(url)
|
16
|
+
response['photos']
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_by_sol(sol)
|
20
|
+
url = MarsPhotos::URL.build(rover: name, sol: sol, key: @key)
|
21
|
+
response = HTTParty.get(url)
|
22
|
+
response['photos']
|
23
|
+
end
|
24
|
+
|
25
|
+
def get_by_earth_date(earth_date)
|
26
|
+
url = MarsPhotos::URL.build(rover: name, earth_date: earth_date, key: @key)
|
27
|
+
response = HTTParty.get(url)
|
28
|
+
response['photos']
|
6
29
|
end
|
7
30
|
|
8
|
-
def
|
9
|
-
|
31
|
+
def get_by_sol_and_cam(parameters)
|
32
|
+
sol = parameters[:sol]
|
33
|
+
cam = parameters[:cam]
|
34
|
+
url_rovers = "https://api.nasa.gov/mars-photos/api/v1/rovers/"
|
35
|
+
url = "#{url_rovers}#{name}/photos?sol=#{sol}&camera=#{cam}&api_key=DEMO_KEY"
|
10
36
|
response = HTTParty.get(url)
|
11
37
|
response['photos']
|
12
38
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module MarsPhotos::URL
|
2
|
+
def self.build(params={})
|
3
|
+
base_url = "https://api.nasa.gov/mars-photos/api/v1/rovers/"
|
4
|
+
|
5
|
+
if params[:sol]
|
6
|
+
date = "&sol=#{params[:sol]}"
|
7
|
+
elsif params[:earth_date]
|
8
|
+
date = "&earth_date=#{params[:earth_date]}"
|
9
|
+
else
|
10
|
+
raise "You must provide a sol or earth date"
|
11
|
+
end
|
12
|
+
|
13
|
+
camera = params[:cam] ? "&camera=#{params[:cam]}" : ""
|
14
|
+
|
15
|
+
"#{base_url}#{params[:rover]}/photos?api_key=#{params[:key]}#{date}#{camera}"
|
16
|
+
end
|
17
|
+
end
|
data/lib/mars_photos/version.rb
CHANGED
data/lib/mars_photos.rb
CHANGED
data/mars_photos.gemspec
CHANGED
@@ -31,8 +31,10 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency "rake", "~> 10.0"
|
32
32
|
spec.add_development_dependency "rspec"
|
33
33
|
spec.add_development_dependency "simplecov"
|
34
|
+
spec.add_development_dependency "pry-byebug"
|
34
35
|
spec.add_development_dependency "webmock"
|
35
36
|
spec.add_development_dependency "vcr"
|
37
|
+
spec.add_development_dependency "codeclimate-test-reporter"
|
36
38
|
|
37
39
|
spec.add_dependency "httparty"
|
38
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mars_photos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Tweedie
|
@@ -67,6 +67,20 @@ dependencies:
|
|
67
67
|
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: pry-byebug
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
85
|
name: webmock
|
72
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,6 +109,20 @@ dependencies:
|
|
95
109
|
- - ">="
|
96
110
|
- !ruby/object:Gem::Version
|
97
111
|
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: codeclimate-test-reporter
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
98
126
|
- !ruby/object:Gem::Dependency
|
99
127
|
name: httparty
|
100
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,8 +157,8 @@ files:
|
|
129
157
|
- bin/setup
|
130
158
|
- lib/mars_photos.rb
|
131
159
|
- lib/mars_photos/api.rb
|
132
|
-
- lib/mars_photos/mars_photos_calculations.rb
|
133
160
|
- lib/mars_photos/rover.rb
|
161
|
+
- lib/mars_photos/url.rb
|
134
162
|
- lib/mars_photos/version.rb
|
135
163
|
- mars_photos.gemspec
|
136
164
|
homepage: https://github.com/cltweedie/mars_photos
|
@@ -1,8 +0,0 @@
|
|
1
|
-
module MarsPhotos::Calculations
|
2
|
-
def self.build_url(rover_name, parameter)
|
3
|
-
url_rovers = "https://api.nasa.gov/mars-photos/api/v1/rovers/"
|
4
|
-
key = parameter.keys.first.to_s
|
5
|
-
value = parameter[parameter.keys.first]
|
6
|
-
"#{url_rovers}#{rover_name}/photos?#{key}=#{value}&api_key=DEMO_KEY"
|
7
|
-
end
|
8
|
-
end
|