nasa_apod 1.1.1 → 1.2.0
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 +9 -0
- data/lib/nasa_apod/client.rb +2 -2
- data/lib/nasa_apod/search_results.rb +13 -0
- data/lib/nasa_apod/version.rb +1 -1
- data/spec/nasa_apod_spec.rb +17 -10
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 61d6d9f7704b23273d740a7209453dd814a39fb1
|
|
4
|
+
data.tar.gz: 5ec5a5f6460072032eb478590625e3cc07ac1741
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d7316997ecbc3a6f01ea70a0189de1983c19cae7155a484788d7c9357a96e57080b4b85016a595078df363364dc130e835a9efe135354c25e5630d345f30ba75
|
|
7
|
+
data.tar.gz: b6d01c6d16305eeb275b5241fde5a0a8f1b2b39c40732b2635f74f7fa228227345c03278e09cc5125d004963649e78f3aa8b521ae9da9c5853db9585c2d04bdc
|
data/README.md
CHANGED
|
@@ -46,6 +46,15 @@ result = client.search
|
|
|
46
46
|
result.url #=> "http://apod.nasa.gov/apod/image/1506/CeresMountain_Dawn_1041.jpg"
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
Note: Sometimes result.url will return a video url. You should build logic to handle both media_type: 'image' and media_type: 'video'.
|
|
50
|
+
|
|
51
|
+
If the media_type: 'video', you can use video_thumbnail_url to get a jpg thumbnail of the video.
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
result = client.search
|
|
55
|
+
result.video_thumbnail_url #=> 'http://img.youtube.com/vi/3LdZ_NftIh8/sddefault.jpg'
|
|
56
|
+
```
|
|
57
|
+
|
|
49
58
|
Get HD image URL:
|
|
50
59
|
|
|
51
60
|
```
|
data/lib/nasa_apod/client.rb
CHANGED
|
@@ -40,14 +40,14 @@ module NasaApod
|
|
|
40
40
|
|
|
41
41
|
alias wormhole random_post
|
|
42
42
|
|
|
43
|
+
private
|
|
44
|
+
|
|
43
45
|
def attributes
|
|
44
46
|
instance_variables.each_with_object({}) do |var, hash|
|
|
45
47
|
hash[var.to_s.delete('@')] = instance_variable_get(var)
|
|
46
48
|
end
|
|
47
49
|
end
|
|
48
50
|
|
|
49
|
-
private
|
|
50
|
-
|
|
51
51
|
def handle_response(response)
|
|
52
52
|
if response['error'].nil?
|
|
53
53
|
NasaApod::SearchResults.new(response)
|
|
@@ -2,6 +2,7 @@ module NasaApod
|
|
|
2
2
|
|
|
3
3
|
class SearchResults
|
|
4
4
|
attr_accessor :url, :media_type, :title, :explanation, :hd_url, :date, :copyright
|
|
5
|
+
attr_reader :video_thumbnail_url
|
|
5
6
|
|
|
6
7
|
def initialize(attributes={})
|
|
7
8
|
@url = attributes["url"]
|
|
@@ -12,6 +13,18 @@ module NasaApod
|
|
|
12
13
|
@date = attributes["date"]
|
|
13
14
|
@copyright = attributes["copyright"]
|
|
14
15
|
end
|
|
16
|
+
|
|
17
|
+
def video_thumbnail_url
|
|
18
|
+
if @media_type == 'video'
|
|
19
|
+
"http://img.youtube.com/vi/#{youtube_id}/sddefault.jpg"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
def youtube_id
|
|
26
|
+
@url.match(/(?:youtube\.com\/(?:[^\/]+\/.+\/|(?:v|e(?:mbed)?)\/|.*[?&]v=)|youtu\.be\/)([^"&?\/ ]{11})/)[1]
|
|
27
|
+
end
|
|
15
28
|
end
|
|
16
29
|
|
|
17
30
|
end
|
data/lib/nasa_apod/version.rb
CHANGED
data/spec/nasa_apod_spec.rb
CHANGED
|
@@ -42,7 +42,7 @@ module NasaApod
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it 'returns a HD image with params' do
|
|
45
|
-
results = client.search(:hd => true)
|
|
45
|
+
results = client.search(:date => Date.parse("2016-05-08"), :hd => true)
|
|
46
46
|
expect(results.hd_url).to_not be(nil)
|
|
47
47
|
end
|
|
48
48
|
end
|
|
@@ -57,15 +57,6 @@ module NasaApod
|
|
|
57
57
|
end
|
|
58
58
|
end
|
|
59
59
|
|
|
60
|
-
describe '#attributes' do
|
|
61
|
-
let(:client) { Client.new }
|
|
62
|
-
|
|
63
|
-
it 'returns a hash of attributes' do
|
|
64
|
-
attributes = client.attributes
|
|
65
|
-
expect(attributes.class).to eq(Hash)
|
|
66
|
-
expect(attributes['api_key']).to eq('DEMO_KEY')
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
60
|
end
|
|
70
61
|
|
|
71
62
|
describe SearchResults do
|
|
@@ -84,6 +75,22 @@ module NasaApod
|
|
|
84
75
|
end
|
|
85
76
|
end
|
|
86
77
|
end
|
|
78
|
+
|
|
79
|
+
context 'when media_type is video' do
|
|
80
|
+
describe "#video_thumbnail_url" do
|
|
81
|
+
let(:result) { SearchResults.new(attributes) }
|
|
82
|
+
let(:attributes) {{"url" => "https://www.youtube.com/embed/3LdZ_NftIh8?rel=0",
|
|
83
|
+
"media_type" => "video",
|
|
84
|
+
"title" => "Test title",
|
|
85
|
+
"explanation" => "Test explanation",
|
|
86
|
+
"date" => "1995-06-16"
|
|
87
|
+
}}
|
|
88
|
+
|
|
89
|
+
it 'returns a image url' do
|
|
90
|
+
expect(result.video_thumbnail_url).to eq('http://img.youtube.com/vi/3LdZ_NftIh8/sddefault.jpg')
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
87
94
|
end
|
|
88
95
|
|
|
89
96
|
describe Error do
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: nasa_apod
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Gabe Dominguez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-05-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|