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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a533a53524d6ab2e3f35b6682c8a19cb53449761
4
- data.tar.gz: 557be1d304bf8f0c2902f3fa541232a8036281ef
3
+ metadata.gz: caa7bbd47c9d2326827488405d9bb8f7c204c0ca
4
+ data.tar.gz: c3bdafca68b394498a4d8df0479b75892496bc9c
5
5
  SHA512:
6
- metadata.gz: 82d7669f924d2a853bda847c3a42fa4f5b846143e643c9fa3c96a23d46b210522721f9af073a2d422318401ccb99520c3312005493d81c9723a73591bd9f9929
7
- data.tar.gz: a57f096949946d4c9eeace474a4c4d9e397b4cb75da76df60d7dd3412522cc6efefbed5805ac42f898d4c86dda820d36fef5b0b9332d8cc7a5f8d8244eafdf18
6
+ metadata.gz: 3114fb19aaae40ef324004136be9d79f6727466183d0284214ce535009027a6547fa6f251baff45ed07156bfd19a53178ed3f83f1cf9aaf2ad6787b596abe838
7
+ data.tar.gz: 27a3d65fcd6356c06bb41bae2e7da1bea50902ab681121c572e873ec1084895e56151c150f7d1365055d688b597db8e1d6a247fc88aa15014eeb2ed8ff944c21
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # MarsPhotos
2
2
 
3
+ [![Test Coverage](https://codeclimate.com/github/cltweedie/mars_photos/badges/coverage.svg)](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(1000) # retrieves photos taken by curiosity on sol 1000
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
@@ -6,18 +6,10 @@ module MarsPhotos
6
6
  @key = key
7
7
  end
8
8
 
9
- def get(rover:, sol: nil, earth_date: nil, cam: nil)
10
- if sol
11
- date = "&sol=#{sol}"
12
- elsif earth_date
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 }
@@ -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 get(parameter = {})
9
- url = MarsPhotos::Calculations.build_url(name, parameter)
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
@@ -1,3 +1,3 @@
1
1
  module MarsPhotos
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/mars_photos.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  require 'httparty'
2
2
  require 'mars_photos/rover'
3
3
  require 'mars_photos/api'
4
- require 'mars_photos/mars_photos_calculations'
4
+ require 'mars_photos/url'
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.0
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