onebox 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +7 -452
- data/Gemfile +1 -1
- data/README.md +23 -45
- data/lib/onebox.rb +21 -13
- data/lib/onebox/engine.rb +53 -43
- data/lib/onebox/engine/amazon_onebox.rb +34 -7
- data/lib/onebox/engine/classic_google_maps_onebox.rb +37 -0
- data/lib/onebox/engine/github_blob_onebox.rb +27 -7
- data/lib/onebox/engine/github_commit_onebox.rb +8 -15
- data/lib/onebox/engine/github_gist_onebox.rb +10 -10
- data/lib/onebox/engine/github_pullrequest_onebox.rb +7 -15
- data/lib/onebox/engine/google_play_app_onebox.rb +30 -0
- data/lib/onebox/engine/html.rb +10 -1
- data/lib/onebox/engine/image_onebox.rb +13 -0
- data/lib/onebox/engine/stack_exchange_onebox.rb +25 -11
- data/lib/onebox/engine/standard_embed.rb +48 -0
- data/lib/onebox/engine/twitter_status_onebox.rb +100 -0
- data/lib/onebox/engine/whitelisted_generic_onebox.rb +223 -0
- data/lib/onebox/engine/wikipedia_onebox.rb +27 -5
- data/lib/onebox/engine/youtube_onebox.rb +22 -0
- data/lib/onebox/helpers.rb +24 -0
- data/lib/onebox/layout.rb +67 -0
- data/lib/onebox/layout_support.rb +16 -0
- data/lib/onebox/matcher.rb +6 -1
- data/lib/onebox/preview.rb +19 -6
- data/lib/onebox/version.rb +1 -1
- data/lib/onebox/view.rb +7 -12
- data/onebox.gemspec +7 -5
- data/spec/fixtures/amazon.response +1336 -2971
- data/spec/fixtures/githubblob.response +49 -921
- data/spec/fixtures/{android.response → googleplayapp.response} +1 -1
- data/spec/fixtures/stackexchange.response +1 -1889
- data/spec/fixtures/twitterstatus.response +3006 -0
- data/spec/fixtures/youtube-json.response +1 -0
- data/spec/fixtures/youtube.response +1625 -0
- data/spec/lib/onebox/engine/amazon_onebox_spec.rb +5 -20
- data/spec/lib/onebox/engine/classic_google_maps_onebox_spec.rb +28 -0
- data/spec/lib/onebox/engine/github_blob_onebox_spec.rb +6 -15
- data/spec/lib/onebox/engine/github_commit_onebox_spec.rb +14 -22
- data/spec/lib/onebox/engine/github_gist_onebox_spec.rb +6 -14
- data/spec/lib/onebox/engine/github_pullrequest_onebox_spec.rb +14 -26
- data/spec/lib/onebox/engine/google_play_app_onebox_spec.rb +28 -0
- data/spec/lib/onebox/engine/html_spec.rb +4 -6
- data/spec/lib/onebox/engine/json_spec.rb +4 -6
- data/spec/lib/onebox/engine/stack_exchange_onebox_spec.rb +4 -17
- data/spec/lib/onebox/engine/twitter_status_onebox_spec.rb +103 -0
- data/spec/lib/onebox/engine/whitelisted_generic_onebox_spec.rb +51 -0
- data/spec/lib/onebox/engine/wikipedia_onebox_spec.rb +4 -17
- data/spec/lib/onebox/engine/youtube_onebox_spec.rb +17 -0
- data/spec/lib/onebox/engine_spec.rb +35 -32
- data/spec/lib/onebox/layout_spec.rb +77 -0
- data/spec/lib/onebox/matcher_spec.rb +0 -15
- data/spec/lib/onebox/preview_spec.rb +39 -9
- data/spec/lib/onebox_spec.rb +15 -11
- data/spec/spec_helper.rb +60 -4
- data/spec/support/html_spec_helper.rb +2 -1
- data/templates/_layout.mustache +11 -4
- data/templates/amazon.mustache +4 -3
- data/templates/githubblob.mustache +7 -5
- data/templates/githubcommit.mustache +20 -11
- data/templates/githubpullrequest.mustache +19 -12
- data/templates/googleplayapp.mustache +4 -0
- data/templates/stackexchange.mustache +19 -3
- data/templates/twitterstatus.mustache +12 -0
- data/templates/whitelistedgeneric.mustache +5 -0
- data/templates/wikipedia.mustache +4 -3
- metadata +57 -166
- data/lib/onebox/engine/bliptv_onebox.rb +0 -28
- data/lib/onebox/engine/clikthrough_onebox.rb +0 -25
- data/lib/onebox/engine/college_humor_onebox.rb +0 -27
- data/lib/onebox/engine/dailymotion_onebox.rb +0 -28
- data/lib/onebox/engine/dotsub_onebox.rb +0 -27
- data/lib/onebox/engine/example_onebox.rb +0 -24
- data/lib/onebox/engine/flickr_onebox.rb +0 -26
- data/lib/onebox/engine/funny_or_die_onebox.rb +0 -28
- data/lib/onebox/engine/hulu_onebox.rb +0 -29
- data/lib/onebox/engine/imgur_image_onebox.rb +0 -26
- data/lib/onebox/engine/itunes_onebox.rb +0 -28
- data/lib/onebox/engine/kinomap_onebox.rb +0 -27
- data/lib/onebox/engine/nfb_onebox.rb +0 -28
- data/lib/onebox/engine/open_graph.rb +0 -11
- data/lib/onebox/engine/qik_onebox.rb +0 -25
- data/lib/onebox/engine/revision3_onebox.rb +0 -27
- data/lib/onebox/engine/slideshare_onebox.rb +0 -27
- data/lib/onebox/engine/sound_cloud_onebox.rb +0 -27
- data/lib/onebox/engine/spotify_onebox.rb +0 -27
- data/lib/onebox/engine/ted_onebox.rb +0 -28
- data/lib/onebox/engine/twitter_onebox.rb +0 -31
- data/lib/onebox/engine/viddler_onebox.rb +0 -28
- data/lib/onebox/engine/vimeo_onebox.rb +0 -27
- data/lib/onebox/engine/yfrog_onebox.rb +0 -28
- data/spec/fixtures/bliptv.response +0 -724
- data/spec/fixtures/clikthrough.response +0 -1472
- data/spec/fixtures/collegehumor.response +0 -1272
- data/spec/fixtures/dailymotion.response +0 -575
- data/spec/fixtures/dotsub.response +0 -1257
- data/spec/fixtures/example.response +0 -50
- data/spec/fixtures/flickr.response +0 -1292
- data/spec/fixtures/funnyordie.response +0 -2010
- data/spec/fixtures/githubgist.response +0 -468
- data/spec/fixtures/hulu.response +0 -339
- data/spec/fixtures/imguralbum.response +0 -941
- data/spec/fixtures/imgurimage.response +0 -872
- data/spec/fixtures/itunes.response +0 -402
- data/spec/fixtures/kinomap.response +0 -299
- data/spec/fixtures/nfb.response +0 -810
- data/spec/fixtures/opengraph.response +0 -27
- data/spec/fixtures/qik.response +0 -371
- data/spec/fixtures/revision3.response +0 -985
- data/spec/fixtures/rottentomatoesfresh.response +0 -3275
- data/spec/fixtures/rottentomatoesincomplete.response +0 -2313
- data/spec/fixtures/rottentomatoesrotten.response +0 -3549
- data/spec/fixtures/slideshare.response +0 -1745
- data/spec/fixtures/soundcloud.response +0 -1409
- data/spec/fixtures/spotify.response +0 -250
- data/spec/fixtures/ted.response +0 -1341
- data/spec/fixtures/twitter.response +0 -1712
- data/spec/fixtures/viddler.response +0 -442
- data/spec/fixtures/vimeo.response +0 -571
- data/spec/fixtures/yfrog.response +0 -464
- data/spec/lib/onebox/engine/bliptv_onebox_spec.rb +0 -37
- data/spec/lib/onebox/engine/clikthrough_onebox_spec.rb +0 -29
- data/spec/lib/onebox/engine/college_humor_onebox_spec.rb +0 -37
- data/spec/lib/onebox/engine/dailymotion_onebox_spec.rb +0 -39
- data/spec/lib/onebox/engine/dotsub_onebox_spec.rb +0 -39
- data/spec/lib/onebox/engine/example_onebox_spec.rb +0 -21
- data/spec/lib/onebox/engine/flickr_onebox_spec.rb +0 -33
- data/spec/lib/onebox/engine/funny_or_die_onebox_spec.rb +0 -37
- data/spec/lib/onebox/engine/hulu_onebox_spec.rb +0 -37
- data/spec/lib/onebox/engine/imgur_image_onebox_spec.rb +0 -29
- data/spec/lib/onebox/engine/itunes_onebox_spec.rb +0 -29
- data/spec/lib/onebox/engine/kinomap_onebox_spec.rb +0 -37
- data/spec/lib/onebox/engine/nfb_onebox_spec.rb +0 -38
- data/spec/lib/onebox/engine/open_graph_spec.rb +0 -27
- data/spec/lib/onebox/engine/qik_onebox_spec.rb +0 -38
- data/spec/lib/onebox/engine/revision3_onebox_spec.rb +0 -39
- data/spec/lib/onebox/engine/slideshare_onebox_spec.rb +0 -33
- data/spec/lib/onebox/engine/sound_cloud_onebox_spec.rb +0 -39
- data/spec/lib/onebox/engine/spotify_onebox_spec.rb +0 -36
- data/spec/lib/onebox/engine/ted_onebox_spec.rb +0 -33
- data/spec/lib/onebox/engine/twitter_onebox_spec.rb +0 -47
- data/spec/lib/onebox/engine/viddler_onebox_spec.rb +0 -39
- data/spec/lib/onebox/engine/vimeo_onebox_spec.rb +0 -37
- data/spec/lib/onebox/engine/yfrog_onebox_spec.rb +0 -33
- data/spec/lib/onebox/view_spec.rb +0 -16
- data/templates/bliptv.mustache +0 -5
- data/templates/clikthrough.mustache +0 -4
- data/templates/collegehumor.mustache +0 -5
- data/templates/dailymotion.mustache +0 -5
- data/templates/dotsub.mustache +0 -5
- data/templates/example.mustache +0 -2
- data/templates/flickr.mustache +0 -4
- data/templates/funnyordie.mustache +0 -6
- data/templates/githubgist.mustache +0 -3
- data/templates/hulu.mustache +0 -6
- data/templates/imgurimage.mustache +0 -3
- data/templates/itunes.mustache +0 -4
- data/templates/kinomap.mustache +0 -5
- data/templates/nfb.mustache +0 -5
- data/templates/qik.mustache +0 -4
- data/templates/revision3.mustache +0 -5
- data/templates/slideshare.mustache +0 -4
- data/templates/soundcloud.mustache +0 -5
- data/templates/spotify.mustache +0 -4
- data/templates/ted.mustache +0 -5
- data/templates/twitter.mustache +0 -7
- data/templates/viddler.mustache +0 -5
- data/templates/vimeo.mustache +0 -5
- data/templates/yfrog.mustache +0 -4
@@ -1,28 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class BliptvOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("blip")
|
11
|
-
has(".tv").maybe("/")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.title,
|
20
|
-
image: raw.images.first,
|
21
|
-
description: raw.description,
|
22
|
-
video: raw.metadata[:video].first[:_value]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class ClikThroughOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("clikthrough")
|
11
|
-
has(".com").either("/theater", "/video").maybe("/")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.title,
|
20
|
-
description: raw.description
|
21
|
-
}
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class CollegeHumorOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
domain("collegehumor")
|
10
|
-
has(".com").maybe("/video").maybe("/")
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def data
|
16
|
-
{
|
17
|
-
url: @url,
|
18
|
-
title: raw.title,
|
19
|
-
image: raw.images.first,
|
20
|
-
description: raw.description,
|
21
|
-
video: raw.metadata[:video].first[:_value]
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class DailymotionOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("dailymotion")
|
11
|
-
has(".com").maybe("/")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.title,
|
20
|
-
image: raw.images.first,
|
21
|
-
description: raw.description,
|
22
|
-
video: raw.metadata[:video][1][:_value]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class DotsubOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("dotsub")
|
11
|
-
has(".com").maybe("/")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.title,
|
20
|
-
image: raw.images.first,
|
21
|
-
description: raw.description,
|
22
|
-
video: raw.metadata[:video].first[:_value]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class ExampleOnebox
|
4
|
-
include Engine
|
5
|
-
include HTML
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("example")
|
11
|
-
has(".com").maybe("/")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
header: raw.css("h1").inner_text
|
19
|
-
}
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class FlickrOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
domain("flickr")
|
10
|
-
has(".com").maybe("/")
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def data
|
16
|
-
{
|
17
|
-
url: @url,
|
18
|
-
title: raw.title,
|
19
|
-
image: raw.images.first,
|
20
|
-
description: raw.description
|
21
|
-
}
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class FunnyOrDieOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("funnyordie")
|
11
|
-
has(".com").maybe("/videos").maybe("/")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.title,
|
20
|
-
image: raw.images.first,
|
21
|
-
description: raw.description,
|
22
|
-
video: raw.metadata[:video].first[:url].first[:_value]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class HuluOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("hulu")
|
11
|
-
tld("com")
|
12
|
-
with("/watch/")
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def data
|
18
|
-
{
|
19
|
-
url: @url,
|
20
|
-
title: raw.title,
|
21
|
-
image: raw.images.first,
|
22
|
-
description: raw.description,
|
23
|
-
video: raw.metadata[:video][1][:_value]
|
24
|
-
}
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
@@ -1,26 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class ImgurImageOnebox
|
4
|
-
include Engine
|
5
|
-
include HTML
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
domain("imgur")
|
10
|
-
tld("com")
|
11
|
-
with("/gallery")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.css("h2#image-title").inner_text,
|
20
|
-
image: raw.css("#image img").first["src"]
|
21
|
-
}
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class ItunesOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
# matcher /^https?:\/\/itunes.apple.com\/.+$/
|
9
|
-
http
|
10
|
-
domain("itunes")
|
11
|
-
has(".")
|
12
|
-
domain("apple")
|
13
|
-
tld("com")
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def data
|
19
|
-
{
|
20
|
-
url: @url,
|
21
|
-
title: raw.title,
|
22
|
-
image: raw.images.first,
|
23
|
-
description: raw.description,
|
24
|
-
}
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class KinomapOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
domain("kinomap")
|
10
|
-
tld("com")
|
11
|
-
with("/watch/")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.title,
|
20
|
-
image: raw.images.first,
|
21
|
-
description: raw.description,
|
22
|
-
video: raw.metadata[:video].first[:_value]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class NFBOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("nfb")
|
11
|
-
tld("ca")
|
12
|
-
with("/film")
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def data
|
18
|
-
{
|
19
|
-
url: @url,
|
20
|
-
title: raw.title,
|
21
|
-
description: raw.description,
|
22
|
-
video: raw.metadata[:video].first[:_value]
|
23
|
-
}
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
@@ -1,25 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class QikOnebox
|
4
|
-
include Engine
|
5
|
-
include HTML
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
domain("qik")
|
10
|
-
tld("com")
|
11
|
-
with("/video")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.css(".info h2").inner_text,
|
20
|
-
image: raw.css(".userphoto").first["src"]
|
21
|
-
}
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class Revision3Onebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
domain("revision3")
|
10
|
-
tld("com")
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def data
|
16
|
-
{
|
17
|
-
url: @url,
|
18
|
-
title: raw.title,
|
19
|
-
image: raw.images.first,
|
20
|
-
description: raw.description,
|
21
|
-
video: raw.metadata[:video].first[:_value]
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Onebox
|
2
|
-
module Engine
|
3
|
-
class SlideshareOnebox
|
4
|
-
include Engine
|
5
|
-
include OpenGraph
|
6
|
-
|
7
|
-
matches do
|
8
|
-
http
|
9
|
-
maybe("www.")
|
10
|
-
domain("slideshare")
|
11
|
-
tld("net")
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def data
|
17
|
-
{
|
18
|
-
url: @url,
|
19
|
-
title: raw.title,
|
20
|
-
image: raw.images.first,
|
21
|
-
description: raw.description
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|