onebox 1.8.1 → 1.8.2
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/lib/onebox/engine/pubmed_onebox.rb +5 -5
- data/lib/onebox/engine/twitter_status_onebox.rb +2 -2
- data/lib/onebox/helpers.rb +4 -4
- data/lib/onebox/version.rb +1 -1
- data/spec/fixtures/pubmed-electronic-xml.response +175 -0
- data/spec/fixtures/pubmed-electronic.response +307 -0
- data/spec/fixtures/pubmed-xml.response +1 -1
- data/spec/fixtures/twitterstatus.response +1530 -3724
- data/spec/lib/onebox/engine/pubmed_onebox_spec.rb +46 -0
- data/spec/lib/onebox/engine/twitter_status_onebox_spec.rb +130 -51
- metadata +8 -3
@@ -29,5 +29,51 @@ describe Onebox::Engine::PubmedOnebox do
|
|
29
29
|
it "has the URL to the resource" do
|
30
30
|
expect(html).to include(link)
|
31
31
|
end
|
32
|
+
|
33
|
+
context "Pubmed electronic print" do
|
34
|
+
let(:link) { "http://www.ncbi.nlm.nih.gov/pubmed/24737116" }
|
35
|
+
let(:xml_link) { "http://www.ncbi.nlm.nih.gov/pubmed/24737116?report=xml&format=text" }
|
36
|
+
let(:html) { described_class.new(link).to_html }
|
37
|
+
|
38
|
+
before do
|
39
|
+
fake(link, response("pubmed-electronic"))
|
40
|
+
fake(xml_link, response("pubmed-electronic-xml"))
|
41
|
+
end
|
42
|
+
|
43
|
+
it "has the paper's title" do
|
44
|
+
expect(html).to include("Cushingoid facies on (18)F-FDG PET/CT.")
|
45
|
+
end
|
46
|
+
|
47
|
+
it "has the paper's author" do
|
48
|
+
expect(html).to include("van Rheenen")
|
49
|
+
end
|
50
|
+
|
51
|
+
it "has the paper's date" do
|
52
|
+
expect(html).to include("Jul 2014")
|
53
|
+
end
|
54
|
+
|
55
|
+
it "has the URL to the resource" do
|
56
|
+
expect(html).to include(link)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
context "regex URI match" do
|
61
|
+
|
62
|
+
it "matches on specific articles" do
|
63
|
+
expect(match("http://www.ncbi.nlm.nih.gov/pubmed/7288891")).to eq true
|
64
|
+
end
|
65
|
+
|
66
|
+
it "does not match on search" do
|
67
|
+
expect(match("http://www.ncbi.nlm.nih.gov/pubmed/?term=rheenen+r")).to eq false
|
68
|
+
end
|
69
|
+
|
70
|
+
it "does not match on the root" do
|
71
|
+
expect(match("http://www.ncbi.nlm.nih.gov/pubmed/")).to eq false
|
72
|
+
end
|
73
|
+
|
74
|
+
def match(url)
|
75
|
+
Onebox::Engine::PubmedOnebox === URI(url)
|
76
|
+
end
|
77
|
+
end
|
32
78
|
end
|
33
79
|
|
@@ -15,10 +15,9 @@ describe Onebox::Engine::TwitterStatusOnebox do
|
|
15
15
|
# expect(html).to include("http://www.peers.org/action/peers-pledgea")
|
16
16
|
# end
|
17
17
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
# end
|
18
|
+
it "gets the correct timestamp" do
|
19
|
+
expect(onebox.send(:timestamp)).to eq("6:59 PM - 1 Aug 2013")
|
20
|
+
end
|
22
21
|
|
23
22
|
it "includes name" do
|
24
23
|
expect(html).to include("Vyki Englert")
|
@@ -29,7 +28,7 @@ describe Onebox::Engine::TwitterStatusOnebox do
|
|
29
28
|
end
|
30
29
|
|
31
30
|
it "includes user avatar" do
|
32
|
-
expect(html).to include("
|
31
|
+
expect(html).to include("732349210264133632/RTNgZLrm_normal.jpg")
|
33
32
|
end
|
34
33
|
end
|
35
34
|
|
@@ -42,52 +41,9 @@ describe Onebox::Engine::TwitterStatusOnebox do
|
|
42
41
|
context "with twitter client" do
|
43
42
|
before(:each) do
|
44
43
|
@twitter_client = double("TwitterClient")
|
45
|
-
allow(@twitter_client).to receive("status")
|
46
|
-
|
47
|
-
|
48
|
-
id: 363_116_819_147_538_433,
|
49
|
-
id_str: "363116819147538433",
|
50
|
-
text:
|
51
|
-
"I'm a sucker for pledges. @Peers Pledge #sharingeconomy http://t.co/T4Sc47KAzh",
|
52
|
-
source:
|
53
|
-
"<a href=\"http://twitter.com/tweetbutton\" rel=\"nofollow\">Tweet Button</a>",
|
54
|
-
user:
|
55
|
-
{ id: 1_087_064_150,
|
56
|
-
id_str: "1087064150",
|
57
|
-
name: "Vyki Englert",
|
58
|
-
screen_name: "vyki_e",
|
59
|
-
location: "Los Angeles, CA",
|
60
|
-
description: "I am woman, hear me #RoR.",
|
61
|
-
url: "http://t.co/umZG76wmv2",
|
62
|
-
protected: false,
|
63
|
-
followers_count: 249,
|
64
|
-
friends_count: 907,
|
65
|
-
listed_count: 6,
|
66
|
-
created_at: "Sun Jan 13 19:53:00 +0000 2013",
|
67
|
-
favourites_count: 506,
|
68
|
-
statuses_count: 926,
|
69
|
-
lang: "en",
|
70
|
-
contributors_enabled: false,
|
71
|
-
is_translator: false,
|
72
|
-
profile_image_url:
|
73
|
-
"http://pbs.twimg.com/profile_images/568244395007168512/qQVXa2Ql_normal.jpeg",
|
74
|
-
profile_image_url_https:
|
75
|
-
"https://pbs.twimg.com/profile_images/568244395007168512/qQVXa2Ql_normal.jpeg",
|
76
|
-
following: true,
|
77
|
-
follow_request_sent: false,
|
78
|
-
notifications: nil },
|
79
|
-
geo: nil,
|
80
|
-
coordinates: nil,
|
81
|
-
place: nil,
|
82
|
-
contributors: nil,
|
83
|
-
retweet_count: 0,
|
84
|
-
favorite_count: 0,
|
85
|
-
favorited: false,
|
86
|
-
retweeted: false,
|
87
|
-
possibly_sensitive: false,
|
88
|
-
lang: "en"
|
89
|
-
}
|
90
|
-
end
|
44
|
+
allow(@twitter_client).to receive("status")
|
45
|
+
.and_return mockTwitterAPIReponse
|
46
|
+
|
91
47
|
allow(@twitter_client).to receive("prettify_tweet") do
|
92
48
|
"I'm a sucker for pledges. <a href='https://twitter.com/Peers' target='_blank'>@Peers</a> Pledge <a href='https://twitter.com/search?q=%23sharingeconomy' target='_blank'>#sharingeconomy</a> <a target='_blank' href='http://www.peers.org/action/peers-pledgea/'>peers.org/action/peers-p…</a>"
|
93
49
|
end
|
@@ -105,4 +61,127 @@ describe Onebox::Engine::TwitterStatusOnebox do
|
|
105
61
|
it_behaves_like "an engine"
|
106
62
|
it_behaves_like "#to_html"
|
107
63
|
end
|
64
|
+
|
65
|
+
def mockTwitterAPIReponse
|
66
|
+
{
|
67
|
+
created_at: "Fri Aug 02 01:59:30 +0000 2013",
|
68
|
+
id: 363116819147538400,
|
69
|
+
id_str: "363116819147538433",
|
70
|
+
text: "I'm a sucker for pledges. @Peers Pledge #sharingeconomy http://t.co/T4Sc47KAzh",
|
71
|
+
truncated: false,
|
72
|
+
entities: {
|
73
|
+
hashtags: [
|
74
|
+
{
|
75
|
+
text: "sharingeconomy",
|
76
|
+
indices: [
|
77
|
+
41,
|
78
|
+
56
|
79
|
+
]
|
80
|
+
}
|
81
|
+
],
|
82
|
+
symbols: [],
|
83
|
+
user_mentions: [
|
84
|
+
{
|
85
|
+
screen_name: "peers",
|
86
|
+
name: "Peers",
|
87
|
+
id: 1428357889,
|
88
|
+
id_str: "1428357889",
|
89
|
+
indices: [
|
90
|
+
27,
|
91
|
+
33
|
92
|
+
]
|
93
|
+
}
|
94
|
+
],
|
95
|
+
urls: [
|
96
|
+
{
|
97
|
+
url: "http://t.co/T4Sc47KAzh",
|
98
|
+
expanded_url: "http://www.peers.org/action/peers-pledgea/",
|
99
|
+
display_url: "peers.org/action/peers-p…",
|
100
|
+
indices: [
|
101
|
+
57,
|
102
|
+
79
|
103
|
+
]
|
104
|
+
}
|
105
|
+
]
|
106
|
+
},
|
107
|
+
source: "<a href=\"https://dev.twitter.com/docs/tfw\" rel=\"nofollow\">Twitter for Websites</a>",
|
108
|
+
in_reply_to_status_id: nil,
|
109
|
+
in_reply_to_status_id_str: nil,
|
110
|
+
in_reply_to_user_id: nil,
|
111
|
+
in_reply_to_user_id_str: nil,
|
112
|
+
in_reply_to_screen_name: nil,
|
113
|
+
user: {
|
114
|
+
id: 1087064150,
|
115
|
+
id_str: "1087064150",
|
116
|
+
name: "Vyki Englert",
|
117
|
+
screen_name: "vyki_e",
|
118
|
+
location: "Los Angeles, CA",
|
119
|
+
description: "Rides bikes, writes code, likes maps. @CompilerLA / @CityGrows / Brigade Captain @HackforLA",
|
120
|
+
url: "http://t.co/YCAP3asRG1",
|
121
|
+
entities: {
|
122
|
+
url: {
|
123
|
+
urls: [
|
124
|
+
{
|
125
|
+
url: "http://t.co/YCAP3asRG1",
|
126
|
+
expanded_url: "http://www.compiler.la",
|
127
|
+
display_url: "compiler.la",
|
128
|
+
indices: [
|
129
|
+
0,
|
130
|
+
22
|
131
|
+
]
|
132
|
+
}
|
133
|
+
]
|
134
|
+
},
|
135
|
+
description: {
|
136
|
+
urls: []
|
137
|
+
}
|
138
|
+
},
|
139
|
+
protected: false,
|
140
|
+
followers_count: 1128,
|
141
|
+
friends_count: 2244,
|
142
|
+
listed_count: 83,
|
143
|
+
created_at: "Sun Jan 13 19:53:00 +0000 2013",
|
144
|
+
favourites_count: 2928,
|
145
|
+
utc_offset: -25200,
|
146
|
+
time_zone: "Pacific Time (US & Canada)",
|
147
|
+
geo_enabled: true,
|
148
|
+
verified: false,
|
149
|
+
statuses_count: 3295,
|
150
|
+
lang: "en",
|
151
|
+
contributors_enabled: false,
|
152
|
+
is_translator: false,
|
153
|
+
is_translation_enabled: false,
|
154
|
+
profile_background_color: "ACDED6",
|
155
|
+
profile_background_image_url: "http://abs.twimg.com/images/themes/theme18/bg.gif",
|
156
|
+
profile_background_image_url_https: "https://abs.twimg.com/images/themes/theme18/bg.gif",
|
157
|
+
profile_background_tile: false,
|
158
|
+
profile_image_url: "http://pbs.twimg.com/profile_images/732349210264133632/RTNgZLrm_normal.jpg",
|
159
|
+
profile_image_url_https: "https://pbs.twimg.com/profile_images/732349210264133632/RTNgZLrm_normal.jpg",
|
160
|
+
profile_banner_url: "https://pbs.twimg.com/profile_banners/1087064150/1424315468",
|
161
|
+
profile_link_color: "4E99D1",
|
162
|
+
profile_sidebar_border_color: "EEEEEE",
|
163
|
+
profile_sidebar_fill_color: "F6F6F6",
|
164
|
+
profile_text_color: "333333",
|
165
|
+
profile_use_background_image: true,
|
166
|
+
has_extended_profile: false,
|
167
|
+
default_profile: false,
|
168
|
+
default_profile_image: false,
|
169
|
+
following: false,
|
170
|
+
follow_request_sent: false,
|
171
|
+
notifications: false
|
172
|
+
},
|
173
|
+
geo: nil,
|
174
|
+
coordinates: nil,
|
175
|
+
place: nil,
|
176
|
+
contributors: nil,
|
177
|
+
is_quote_status: false,
|
178
|
+
retweet_count: 0,
|
179
|
+
favorite_count: 0,
|
180
|
+
favorited: false,
|
181
|
+
retweeted: false,
|
182
|
+
possibly_sensitive: false,
|
183
|
+
possibly_sensitive_appealable: false,
|
184
|
+
lang: "en"
|
185
|
+
}
|
186
|
+
end
|
108
187
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onebox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.
|
4
|
+
version: 1.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joanna Zeta
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2017-02-
|
13
|
+
date: 2017-02-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: multi_json
|
@@ -396,6 +396,8 @@ files:
|
|
396
396
|
- spec/fixtures/image.response
|
397
397
|
- spec/fixtures/meetup.response.html
|
398
398
|
- spec/fixtures/meetup_oembed.response
|
399
|
+
- spec/fixtures/pubmed-electronic-xml.response
|
400
|
+
- spec/fixtures/pubmed-electronic.response
|
399
401
|
- spec/fixtures/pubmed-xml.response
|
400
402
|
- spec/fixtures/pubmed.response
|
401
403
|
- spec/fixtures/slides.response
|
@@ -489,7 +491,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
489
491
|
version: '0'
|
490
492
|
requirements: []
|
491
493
|
rubyforge_project:
|
492
|
-
rubygems_version: 2.6.
|
494
|
+
rubygems_version: 2.6.7
|
493
495
|
signing_key:
|
494
496
|
specification_version: 4
|
495
497
|
summary: A gem for turning URLs into previews.
|
@@ -505,6 +507,8 @@ test_files:
|
|
505
507
|
- spec/fixtures/image.response
|
506
508
|
- spec/fixtures/meetup.response.html
|
507
509
|
- spec/fixtures/meetup_oembed.response
|
510
|
+
- spec/fixtures/pubmed-electronic-xml.response
|
511
|
+
- spec/fixtures/pubmed-electronic.response
|
508
512
|
- spec/fixtures/pubmed-xml.response
|
509
513
|
- spec/fixtures/pubmed.response
|
510
514
|
- spec/fixtures/slides.response
|
@@ -554,3 +558,4 @@ test_files:
|
|
554
558
|
- spec/lib/onebox_spec.rb
|
555
559
|
- spec/spec_helper.rb
|
556
560
|
- spec/support/html_spec_helper.rb
|
561
|
+
has_rdoc:
|