maremma 4.4 → 4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,29 +1,30 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- maremma (4.4)
4
+ maremma (4.5)
5
5
  activesupport (>= 4.2.5, < 6)
6
6
  addressable (>= 2.3.6)
7
7
  builder (~> 3.2, >= 3.2.2)
8
- excon (~> 0.67.0)
9
- faraday (~> 0.17.0)
8
+ excon (~> 0.71.0)
9
+ faraday (= 0.17.0)
10
10
  faraday-encoding (~> 0.0.4)
11
11
  faraday_middleware (~> 0.13.1)
12
- multi_json (~> 1.12)
13
12
  nokogiri (~> 1.10.4)
14
13
  oj (>= 2.8.3)
14
+ oj_mimic_json (~> 1.0, >= 1.0.1)
15
15
 
16
16
  GEM
17
17
  remote: https://rubygems.org/
18
18
  specs:
19
- activesupport (5.2.3)
19
+ activesupport (5.2.4.1)
20
20
  concurrent-ruby (~> 1.0, >= 1.0.2)
21
21
  i18n (>= 0.7, < 2)
22
22
  minitest (~> 5.1)
23
23
  tzinfo (~> 1.1)
24
24
  addressable (2.7.0)
25
25
  public_suffix (>= 2.0.2, < 5.0)
26
- builder (3.2.3)
26
+ ast (2.4.0)
27
+ builder (3.2.4)
27
28
  codeclimate-test-reporter (1.0.9)
28
29
  simplecov (<= 0.13)
29
30
  concurrent-ruby (1.1.5)
@@ -31,7 +32,7 @@ GEM
31
32
  safe_yaml (~> 1.0.0)
32
33
  diff-lcs (1.3)
33
34
  docile (1.1.5)
34
- excon (0.67.0)
35
+ excon (0.71.1)
35
36
  faraday (0.17.0)
36
37
  multipart-post (>= 1.2, < 3)
37
38
  faraday-encoding (0.0.5)
@@ -41,19 +42,24 @@ GEM
41
42
  hashdiff (1.0.0)
42
43
  i18n (1.7.0)
43
44
  concurrent-ruby (~> 1.0)
44
- json (2.2.0)
45
+ jaro_winkler (1.5.4)
46
+ json (2.3.0)
45
47
  mini_portile2 (2.4.0)
46
- minitest (5.12.2)
47
- multi_json (1.13.1)
48
+ minitest (5.13.0)
48
49
  multipart-post (2.1.1)
49
- nokogiri (1.10.4)
50
+ nokogiri (1.10.7)
50
51
  mini_portile2 (~> 2.4.0)
51
- oj (3.9.2)
52
+ oj (3.10.0)
53
+ oj_mimic_json (1.0.1)
54
+ parallel (1.19.1)
55
+ parser (2.6.5.0)
56
+ ast (~> 2.4.0)
52
57
  public_suffix (4.0.1)
53
- rack (2.0.7)
58
+ rack (2.0.8)
54
59
  rack-test (0.8.3)
55
60
  rack (>= 1.0, < 3)
56
- rake (13.0.0)
61
+ rainbow (3.0.0)
62
+ rake (13.0.1)
57
63
  rspec (3.9.0)
58
64
  rspec-core (~> 3.9.0)
59
65
  rspec-expectations (~> 3.9.0)
@@ -67,6 +73,16 @@ GEM
67
73
  diff-lcs (>= 1.2.0, < 2.0)
68
74
  rspec-support (~> 3.9.0)
69
75
  rspec-support (3.9.0)
76
+ rubocop (0.77.0)
77
+ jaro_winkler (~> 1.5.1)
78
+ parallel (~> 1.10)
79
+ parser (>= 2.6)
80
+ rainbow (>= 2.2.2, < 4.0)
81
+ ruby-progressbar (~> 1.7)
82
+ unicode-display_width (>= 1.4.0, < 1.7)
83
+ rubocop-performance (1.5.1)
84
+ rubocop (>= 0.71.0)
85
+ ruby-progressbar (1.10.1)
70
86
  safe_yaml (1.0.5)
71
87
  simplecov (0.13.0)
72
88
  docile (~> 1.1.0)
@@ -76,6 +92,7 @@ GEM
76
92
  thread_safe (0.3.6)
77
93
  tzinfo (1.2.5)
78
94
  thread_safe (~> 0.1)
95
+ unicode-display_width (1.6.0)
79
96
  vcr (3.0.3)
80
97
  webmock (3.7.6)
81
98
  addressable (>= 2.3.6)
@@ -86,15 +103,17 @@ PLATFORMS
86
103
  ruby
87
104
 
88
105
  DEPENDENCIES
89
- bundler (~> 1.0)
106
+ bundler (~> 2.0)
90
107
  codeclimate-test-reporter (~> 1.0)
91
108
  maremma!
92
109
  rack-test (~> 0)
93
110
  rake
94
111
  rspec (~> 3.4)
112
+ rubocop (~> 0.77.0)
113
+ rubocop-performance (~> 1.5, >= 1.5.1)
95
114
  simplecov
96
115
  vcr (~> 3.0, >= 3.0.3)
97
116
  webmock (~> 3.0, >= 3.0.1)
98
117
 
99
118
  BUNDLED WITH
100
- 1.17.3
119
+ 2.0.2
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/all'
4
- require 'json'
5
- require 'nokogiri'
6
- require 'faraday'
7
- require 'faraday_middleware'
8
- require 'faraday/encoding'
9
- require 'excon'
10
- require 'uri'
11
- require 'addressable/uri'
12
- require 'maremma/xml_converter'
13
- require 'maremma/version'
3
+ require "active_support/all"
4
+ require "json"
5
+ require "nokogiri"
6
+ require "faraday"
7
+ require "faraday_middleware"
8
+ require "faraday/encoding"
9
+ require "excon"
10
+ require "uri"
11
+ require "addressable/uri"
12
+ require "maremma/xml_converter"
13
+ require "maremma/version"
14
14
 
15
15
  module Maremma
16
16
  DEFAULT_TIMEOUT = 60
@@ -26,7 +26,7 @@ module Maremma
26
26
  NoMethodError,
27
27
  TypeError]
28
28
 
29
- # ActiveSupport::XmlMini.backend = 'Nokogiri'
29
+ # ActiveSupport::XmlMini.backend = "Nokogiri"
30
30
 
31
31
  def self.post(url, options={})
32
32
  self.method(url, options.merge(method: "post"))
@@ -63,18 +63,20 @@ module Maremma
63
63
  conn.options[:timeout] = options[:timeout] || DEFAULT_TIMEOUT
64
64
 
65
65
  response = case options[:method]
66
- when "get" then conn.get url, {}, options[:headers]
66
+ when "get" then conn.get url, {}, options[:headers] do |request|
67
+ request.headers["Host"] = URI.parse(url.to_s).host
68
+ end
67
69
  when "post" then conn.post url, {}, options[:headers] do |request|
68
70
  request.body = options[:data]
69
- request.headers['Host'] = URI.parse(url.to_s).host
71
+ request.headers["Host"] = URI.parse(url.to_s).host
70
72
  end
71
73
  when "put" then conn.put url, {}, options[:headers] do |request|
72
74
  request.body = options[:data]
73
- request.headers['Host'] = URI.parse(url.to_s).host
75
+ request.headers["Host"] = URI.parse(url.to_s).host
74
76
  end
75
77
  when "patch" then conn.patch url, {}, options[:headers] do |request|
76
78
  request.body = options[:data]
77
- request.headers['Host'] = URI.parse(url.to_s).host
79
+ request.headers["Host"] = URI.parse(url.to_s).host
78
80
  end
79
81
  when "delete" then conn.delete url, {}, options[:headers]
80
82
  when "head" then conn.head url, {}, options[:headers]
@@ -82,7 +84,7 @@ module Maremma
82
84
 
83
85
  # return error if we are close to the rate limit, if supported in headers
84
86
  if get_rate_limit_remaining(response.headers) < 3
85
- return OpenStruct.new(body: { "errors" => [{ 'status' => 429, 'title' => "Too many requests" }] },
87
+ return OpenStruct.new(body: { "errors" => [{ "status" => 429, "title" => "Too many requests" }] },
86
88
  headers: response.headers,
87
89
  status: response.status)
88
90
  end
@@ -115,12 +117,12 @@ module Maremma
115
117
  Faraday.new do |c|
116
118
  c.ssl.verify = false if options[:ssl_self_signed]
117
119
  c.options.params_encoder = Faraday::FlatParamsEncoder
118
- c.headers['Content-type'] = options[:headers]['Content-type'] if options[:headers]['Content-type'].present?
119
- c.headers['Accept'] = options[:headers]['Accept']
120
- c.headers['User-Agent'] = options[:headers]['User-Agent']
120
+ c.headers["Content-type"] = options[:headers]["Content-type"] if options[:headers]["Content-type"].present?
121
+ c.headers["Accept"] = options[:headers]["Accept"]
122
+ c.headers["User-Agent"] = options[:headers]["User-Agent"]
121
123
  c.use FaradayMiddleware::FollowRedirects, limit: limit, cookie: :all if limit > 0
122
124
  c.request :multipart
123
- c.request :json if options[:headers]['Accept'] == 'application/json'
125
+ c.request :json if options[:headers]["Accept"] == "application/json"
124
126
  c.response :encoding
125
127
  c.adapter :excon
126
128
  end
@@ -132,30 +134,30 @@ module Maremma
132
134
  end
133
135
 
134
136
  def self.set_request_headers(url, options={})
135
- header_options = { "html" => 'text/html;charset=UTF-8',
136
- "xml" => 'application/xml;charset=UTF-8',
137
- "json" => 'application/json;charset=UTF-8' }
137
+ header_options = { "html" => "text/html;charset=UTF-8",
138
+ "xml" => "application/xml;charset=UTF-8",
139
+ "json" => "application/json;charset=UTF-8" }
138
140
 
139
141
  headers = options[:headers] ||= {}
140
142
 
141
143
  # set useragent
142
- headers['User-Agent'] = ENV['USER_AGENT'] || "Mozilla/5.0 (compatible; Maremma/#{Maremma::VERSION}; +https://github.com/datacite/maremma)"
144
+ headers["User-Agent"] = ENV["USER_AGENT"] || "Mozilla/5.0 (compatible; Maremma/#{Maremma::VERSION}; +https://github.com/datacite/maremma)"
143
145
 
144
146
  # set host, needed for some services behind proxy
145
- #headers['Host'] = URI.parse(url).host #if options[:host]
147
+ #headers["Host"] = URI.parse(url).host #if options[:host]
146
148
 
147
149
  # set Content-Type
148
- headers['Content-type'] = header_options.fetch(options[:content_type], options[:content_type]) if options[:content_type].present?
150
+ headers["Content-type"] = header_options.fetch(options[:content_type], options[:content_type]) if options[:content_type].present?
149
151
 
150
152
  if options[:accept].present?
151
- headers['Accept'] = header_options.fetch(options[:accept], options[:accept])
153
+ headers["Accept"] = header_options.fetch(options[:accept], options[:accept])
152
154
  else
153
155
  # accept all content
154
- headers['Accept'] ||= "text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5"
156
+ headers["Accept"] ||= "text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5"
155
157
  end
156
158
 
157
159
  if options[:bearer].present?
158
- headers['Authorization'] = "Bearer #{options[:bearer]}"
160
+ headers["Authorization"] = "Bearer #{options[:bearer]}"
159
161
  elsif options[:token].present?
160
162
  headers["Authorization"] = "Token token=#{options[:token]}"
161
163
  elsif options[:github_token].present?
@@ -171,18 +173,18 @@ module Maremma
171
173
 
172
174
  def self.rescue_faraday_error(error, response)
173
175
  if error.is_a?(Faraday::ResourceNotFound)
174
- { 'errors' => [{ 'status' => 404, 'title' => "Not found" }] }
176
+ { "errors" => [{ "status" => 404, "title" => "Not found" }] }
175
177
  elsif error.message == "the server responded with status 401" || error.try(:response) && error.response[:status] == 401
176
- { 'errors' => [{ 'status' => 401, 'title' =>"Unauthorized" }] }
178
+ { "errors" => [{ "status" => 401, "title" =>"Unauthorized" }] }
177
179
  elsif error.is_a?(Faraday::ConnectionFailed)
178
- { 'errors' => [{ 'status' => 403, 'title' => parse_error_response(error.message) }] }
180
+ { "errors" => [{ "status" => 403, "title" => parse_error_response(error.message) }] }
179
181
 
180
182
  elsif error.is_a?(Faraday::TimeoutError) || (error.try(:response) && error.response[:status] == 408)
181
- { 'errors' => [{ 'status' => 408, 'title' =>"Request timeout" }] }
183
+ { "errors" => [{ "status" => 408, "title" =>"Request timeout" }] }
182
184
  else
183
185
  status = response ? response.status : 400
184
186
  title = response ? parse_error_response(response.body) : parse_error_response(error.message)
185
- { 'errors' => [{ 'status' => status, 'title' => title }] }
187
+ { "errors" => [{ "status" => status, "title" => title }] }
186
188
  end
187
189
  end
188
190
 
@@ -193,9 +195,9 @@ module Maremma
193
195
 
194
196
  if string.blank?
195
197
  { "data" => nil }
196
- elsif string.is_a?(Hash) && string['hash']
197
- { "data" => string['hash'] }
198
- elsif string.is_a?(Hash) && string['data']
198
+ elsif string.is_a?(Hash) && string["hash"]
199
+ { "data" => string["hash"] }
200
+ elsif string.is_a?(Hash) && string["data"]
199
201
  string
200
202
  else
201
203
  { "data" => string }
@@ -205,19 +207,19 @@ module Maremma
205
207
  def self.parse_error_response(string)
206
208
  string = parse_response(string)
207
209
 
208
- string = string['hash'] if string.is_a?(Hash) && string['hash']
210
+ string = string["hash"] if string.is_a?(Hash) && string["hash"]
209
211
 
210
- if string.is_a?(Hash) && string['error']
211
- string['error']
212
- elsif string.is_a?(Hash) && string['errors']
213
- string.dig('errors', 0, "title")
212
+ if string.is_a?(Hash) && string["error"]
213
+ string["error"]
214
+ elsif string.is_a?(Hash) && string["errors"]
215
+ string.dig("errors", 0, "title")
214
216
  else
215
217
  string
216
218
  end
217
219
  end
218
220
 
219
221
  def self.parse_response(string, options={})
220
- string = string.dup.force_encoding('UTF-8')
222
+ string = string.dup.force_encoding("UTF-8")
221
223
  return string if options[:raw]
222
224
 
223
225
  from_json(string) || from_xml(string) || from_string(string)
@@ -238,7 +240,7 @@ module Maremma
238
240
  string.gsub!("</#{tag}>", "&lt;/#{tag}&gt;")
239
241
  end
240
242
 
241
- if Nokogiri::XML(string, nil, 'UTF-8').errors.empty?
243
+ if Nokogiri::XML(string, nil, "UTF-8").errors.empty?
242
244
  Hash.from_xml(string)
243
245
  else
244
246
  nil
@@ -1,3 +1,3 @@
1
1
  module Maremma
2
- VERSION = "4.4"
2
+ VERSION = "4.5"
3
3
  end
@@ -1,5 +1,5 @@
1
1
  require "date"
2
- require File.expand_path("../lib/maremma/version", __FILE__)
2
+ require File.expand_path("lib/maremma/version", __dir__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.authors = "Martin Fenner"
@@ -12,29 +12,31 @@ Gem::Specification.new do |s|
12
12
  s.require_paths = ["lib"]
13
13
  s.version = Maremma::VERSION
14
14
  s.extra_rdoc_files = ["README.md"]
15
- s.license = 'MIT'
15
+ s.license = "MIT"
16
16
 
17
17
  s.files = `git ls-files`.split("\n")
18
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
- s.require_paths = ["lib"]
20
19
 
21
20
  # Declary dependencies here, rather than in the Gemfile
22
- s.add_dependency 'builder', '~> 3.2', '>= 3.2.2'
23
- s.add_dependency 'excon', '~> 0.67.0'
24
- s.add_dependency 'faraday', '~> 0.17.0'
25
- s.add_dependency 'faraday-encoding', '~> 0.0.4'
26
- s.add_dependency 'faraday_middleware', '~> 0.13.1'
27
- s.add_dependency 'nokogiri', '~> 1.10.4'
28
- s.add_dependency 'multi_json', '~> 1.12'
29
- s.add_dependency 'oj', '>= 2.8.3'
30
- s.add_dependency 'activesupport', '>= 4.2.5', '< 6'
31
- s.add_dependency 'addressable', '>= 2.3.6'
32
- s.add_development_dependency 'bundler', '~> 1.0'
33
- s.add_development_dependency 'rspec', '~> 3.4'
34
- s.add_development_dependency 'rake'
35
- s.add_development_dependency 'rack-test', '~> 0'
36
- s.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
37
- s.add_development_dependency 'webmock', '~> 3.0', '>= 3.0.1'
38
- s.add_development_dependency 'codeclimate-test-reporter', "~> 1.0"
39
- s.add_development_dependency 'simplecov'
21
+ s.add_dependency "activesupport", ">= 4.2.5", "< 6"
22
+ s.add_dependency "addressable", ">= 2.3.6"
23
+ s.add_dependency "builder", "~> 3.2", ">= 3.2.2"
24
+ s.add_dependency "excon", "~> 0.71.0"
25
+ s.add_dependency "faraday", "0.17.0"
26
+ s.add_dependency "faraday-encoding", "~> 0.0.4"
27
+ s.add_dependency "faraday_middleware", "~> 0.13.1"
28
+ s.add_dependency "nokogiri", "~> 1.10.4"
29
+ s.add_dependency "oj", ">= 2.8.3"
30
+ s.add_dependency "oj_mimic_json", "~> 1.0", ">= 1.0.1"
31
+ s.add_development_dependency "bundler", "~> 2.0"
32
+ s.add_development_dependency "codeclimate-test-reporter", "~> 1.0"
33
+ s.add_development_dependency "rack-test", "~> 0"
34
+ s.add_development_dependency "rake"
35
+ s.add_development_dependency "rspec", "~> 3.4"
36
+ s.add_development_dependency "rubocop", "~> 0.77.0"
37
+ s.add_development_dependency "rubocop-performance", "~> 1.5", ">= 1.5.1"
38
+ s.add_development_dependency "simplecov"
39
+ s.add_development_dependency "vcr", "~> 3.0", ">= 3.0.3"
40
+ s.add_development_dependency "webmock", "~> 3.0", ">= 3.0.1"
41
+
40
42
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spec_helper'
3
+ require "spec_helper"
4
4
 
5
5
  describe Maremma do
6
6
  subject { Maremma }
@@ -20,7 +20,7 @@ describe Maremma do
20
20
 
21
21
  it "get xml" do
22
22
  stub = stub_request(:get, url).to_return(:body => data.to_xml, :status => 200, :headers => { "Content-Type" => "application/xml" })
23
- response = subject.get(url, accept: 'xml')
23
+ response = subject.get(url, accept: "xml")
24
24
  expect(response.body).to eq("data"=>data)
25
25
  expect(response.headers).to eq("Content-Type"=>"application/xml")
26
26
  expect(stub).to have_been_requested
@@ -28,7 +28,7 @@ describe Maremma do
28
28
 
29
29
  it "get html" do
30
30
  stub = stub_request(:get, url).to_return(:body => data.to_s, :status => 200, :headers => { "Content-Type" => "text/html" })
31
- response = subject.get(url, accept: 'html')
31
+ response = subject.get(url, accept: "html")
32
32
  expect(response.body).to eq("data" => data.to_s)
33
33
  expect(response.headers).to eq("Content-Type"=>"text/html")
34
34
  expect(stub).to have_been_requested
@@ -39,9 +39,9 @@ describe Maremma do
39
39
  fl: "doi,title,description,publisher,publicationYear,resourceType,resourceTypeGeneral,rightsURI,datacentre_symbol,xml,minted,updated",
40
40
  fq: %w(has_metadata:true is_active:true),
41
41
  facet: "true",
42
- 'facet.field' => %w(resourceType_facet publicationYear datacentre_facet),
43
- 'facet.limit' => 10,
44
- 'f.resourceType_facet.facet.limit' => 15,
42
+ "facet.field" => %w(resourceType_facet publicationYear datacentre_facet),
43
+ "facet.limit" => 10,
44
+ "f.resourceType_facet.facet.limit" => 15,
45
45
  wt: "json" }.compact
46
46
  url = "https://search.datacite.org/api?" + URI.encode_www_form(params)
47
47
  expect(url).to eq("https://search.datacite.org/api?q=*%3A*&fl=doi%2Ctitle%2Cdescription%2Cpublisher%2CpublicationYear%2CresourceType%2CresourceTypeGeneral%2CrightsURI%2Cdatacentre_symbol%2Cxml%2Cminted%2Cupdated&fq=has_metadata%3Atrue&fq=is_active%3Atrue&facet=true&facet.field=resourceType_facet&facet.field=publicationYear&facet.field=datacentre_facet&facet.limit=10&f.resourceType_facet.facet.limit=15&wt=json")
@@ -63,7 +63,7 @@ describe Maremma do
63
63
 
64
64
  it "get xml raw" do
65
65
  stub = stub_request(:get, url).to_return(:body => data.to_xml, :status => 200, :headers => { "Content-Type" => "application/xml" })
66
- response = subject.get(url, accept: 'xml', raw: true)
66
+ response = subject.get(url, accept: "xml", raw: true)
67
67
  expect(response.body).to eq("data"=>data.to_xml)
68
68
  expect(response.headers).to eq("Content-Type"=>"application/xml")
69
69
  expect(stub).to have_been_requested
@@ -73,7 +73,7 @@ describe Maremma do
73
73
  context "head" do
74
74
  it "head html" do
75
75
  stub = stub_request(:head, url).to_return(:status => 200, :headers => { "Content-Type" => "text/html" })
76
- response = subject.head(url, accept: 'html')
76
+ response = subject.head(url, accept: "html")
77
77
  expect(response.body).to be_nil
78
78
  expect(response.headers).to eq("Content-Type"=>"text/html")
79
79
  expect(stub).to have_been_requested
@@ -83,13 +83,13 @@ describe Maremma do
83
83
  context "post" do
84
84
  it "post json" do
85
85
  stub = stub_request(:post, url).with(:body => post_data.to_json).to_return(:body => data.to_json, :status => 200, :headers => { "Content-Type" => "application/json" })
86
- subject.post(url, content_type: 'json', data: post_data.to_json) { |response| expect(response.body).to eq(2) }
86
+ subject.post(url, content_type: "json", data: post_data.to_json) { |response| expect(response.body).to eq(2) }
87
87
  expect(stub).to have_been_requested
88
88
  end
89
89
 
90
90
  it "post xml" do
91
91
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_return(:body => data.to_xml, :status => 200, :headers => { "Content-Type" => "text/html" })
92
- subject.post(url, content_type: 'xml', data: post_data.to_xml) { |response| expect(Hash.from_xml(response.body.to_s)["hash"]).to eq(data) }
92
+ subject.post(url, content_type: "xml", data: post_data.to_xml) { |response| expect(Hash.from_xml(response.body.to_s)["hash"]).to eq(data) }
93
93
  expect(stub).to have_been_requested
94
94
  end
95
95
  end
@@ -97,13 +97,13 @@ describe Maremma do
97
97
  context "put" do
98
98
  it "put json" do
99
99
  stub = stub_request(:put, url).with(:body => post_data.to_json).to_return(:body => data.to_json, :status => 200, :headers => { "Content-Type" => "application/json" })
100
- subject.put(url, content_type: 'json', data: post_data.to_json) { |response| expect(JSON.parse(response.body.to_s)).to eq(data) }
100
+ subject.put(url, content_type: "json", data: post_data.to_json) { |response| expect(JSON.parse(response.body.to_s)).to eq(data) }
101
101
  expect(stub).to have_been_requested
102
102
  end
103
103
 
104
104
  it "put xml" do
105
105
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_return(:body => data.to_xml, :status => 200, :headers => { "Content-Type" => "text/html" })
106
- subject.put(url, content_type: 'xml', data: post_data.to_xml) { |response| expect(Hash.from_xml(response.body.to_s)["hash"]).to eq(data) }
106
+ subject.put(url, content_type: "xml", data: post_data.to_xml) { |response| expect(Hash.from_xml(response.body.to_s)["hash"]).to eq(data) }
107
107
  expect(stub).to have_been_requested
108
108
  end
109
109
  end
@@ -111,13 +111,13 @@ describe Maremma do
111
111
  context "patch" do
112
112
  it "patch json" do
113
113
  stub = stub_request(:patch, url).with(:body => post_data.to_json).to_return(:body => data.to_json, :status => 200, :headers => { "Content-Type" => "application/json" })
114
- subject.patch(url, content_type: 'json', data: post_data.to_json) { |response| expect(JSON.parse(response.body.to_s)).to eq(data) }
114
+ subject.patch(url, content_type: "json", data: post_data.to_json) { |response| expect(JSON.parse(response.body.to_s)).to eq(data) }
115
115
  expect(stub).to have_been_requested
116
116
  end
117
117
 
118
118
  it "patch xml" do
119
119
  stub = stub_request(:patch, url).with(:body => post_data.to_xml).to_return(:body => data.to_xml, :status => 200, :headers => { "Content-Type" => "text/html" })
120
- subject.patch(url, content_type: 'xml', data: post_data.to_xml) { |response| expect(Hash.from_xml(response.body.to_s)["hash"]).to eq(data) }
120
+ subject.patch(url, content_type: "xml", data: post_data.to_xml) { |response| expect(Hash.from_xml(response.body.to_s)["hash"]).to eq(data) }
121
121
  expect(stub).to have_been_requested
122
122
  end
123
123
  end
@@ -133,7 +133,7 @@ describe Maremma do
133
133
 
134
134
  it "get xml" do
135
135
  stub = stub_request(:get, url).to_return(:body => nil, :status => 200, :headers => { "Content-Type" => "application/xml" })
136
- response = subject.get(url, accept: 'xml')
136
+ response = subject.get(url, accept: "xml")
137
137
  expect(response.body).to eq("data"=>nil)
138
138
  expect(response.headers).to eq("Content-Type"=>"application/xml")
139
139
  expect(stub).to have_been_requested
@@ -141,7 +141,7 @@ describe Maremma do
141
141
 
142
142
  it "get html" do
143
143
  stub = stub_request(:get, url).to_return(:body => nil, :status => 200, :headers => { "Content-Type" => "text/html" })
144
- response = subject.get(url, accept: 'html')
144
+ response = subject.get(url, accept: "html")
145
145
  expect(response.body).to eq("data" => nil)
146
146
  expect(response.headers).to eq("Content-Type"=>"text/html")
147
147
  expect(stub).to have_been_requested
@@ -149,13 +149,13 @@ describe Maremma do
149
149
 
150
150
  it "post xml" do
151
151
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_return(:body => nil, :status => 200, :headers => { "Content-Type" => "application/xml" })
152
- subject.post(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to eq("data" => nil) }
152
+ subject.post(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to eq("data" => nil) }
153
153
  expect(stub).to have_been_requested
154
154
  end
155
155
 
156
156
  it "put xml" do
157
157
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_return(:body => nil, :status => 200, :headers => { "Content-Type" => "application/xml" })
158
- subject.put(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to eq("data" => nil) }
158
+ subject.put(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to eq("data" => nil) }
159
159
  expect(stub).to have_been_requested
160
160
  end
161
161
  end
@@ -165,41 +165,41 @@ describe Maremma do
165
165
 
166
166
  it "get json" do
167
167
  stub = stub_request(:get, url).to_return(:body => error.to_json, :status => [404], :headers => { "Content-Type" => "application/json" })
168
- response = subject.get(url, accept: 'json')
168
+ response = subject.get(url, accept: "json")
169
169
  expect(response.body).to eq(error)
170
170
  expect(stub).to have_been_requested
171
171
  end
172
172
 
173
173
  it "get xml" do
174
174
  stub = stub_request(:get, url).to_return(:body => error.to_xml, :status => [404], :headers => { "Content-Type" => "application/xml" })
175
- response = subject.get(url, accept: 'xml')
175
+ response = subject.get(url, accept: "xml")
176
176
  expect(response.body).to eq(error)
177
177
  expect(stub).to have_been_requested
178
178
  end
179
179
 
180
180
  it "get html" do
181
181
  stub = stub_request(:get, url).to_return(:body => error.to_s, :status => [404], :headers => { "Content-Type" => "text/html" })
182
- response = subject.get(url, accept: 'html')
182
+ response = subject.get(url, accept: "html")
183
183
  expect(response.body).to eq(error)
184
184
  expect(stub).to have_been_requested
185
185
  end
186
186
 
187
187
  it "head html" do
188
188
  stub = stub_request(:head, url).to_return(:body => error.to_s, :status => [404], :headers => { "Content-Type" => "text/html" })
189
- response = subject.head(url, accept: 'html')
189
+ response = subject.head(url, accept: "html")
190
190
  expect(response.status).to eq(404)
191
191
  expect(stub).to have_been_requested
192
192
  end
193
193
 
194
194
  it "post xml" do
195
195
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_return(:body => error.to_xml, :status => [404], :headers => { "Content-Type" => "application/xml" })
196
- subject.post(url, accept: 'xml', data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
196
+ subject.post(url, accept: "xml", data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
197
197
  expect(stub).to have_been_requested
198
198
  end
199
199
 
200
200
  it "put xml" do
201
201
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_return(:body => error.to_xml, :status => [404], :headers => { "Content-Type" => "application/xml" })
202
- subject.put(url, accept: 'xml', data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
202
+ subject.put(url, accept: "xml", data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
203
203
  expect(stub).to have_been_requested
204
204
  end
205
205
  end
@@ -209,41 +209,41 @@ describe Maremma do
209
209
 
210
210
  it "get json" do
211
211
  stub = stub_request(:get, url).to_return(:body => error.to_json, :status => [405], :headers => { "Content-Type" => "application/json" })
212
- response = subject.get(url, accept: 'json')
212
+ response = subject.get(url, accept: "json")
213
213
  expect(response.body).to eq(error)
214
214
  expect(stub).to have_been_requested
215
215
  end
216
216
 
217
217
  it "get xml" do
218
218
  stub = stub_request(:get, url).to_return(:body => error.to_xml, :status => [405], :headers => { "Content-Type" => "application/xml" })
219
- response = subject.get(url, accept: 'xml')
219
+ response = subject.get(url, accept: "xml")
220
220
  expect(response.body).to eq(error)
221
221
  expect(stub).to have_been_requested
222
222
  end
223
223
 
224
224
  it "get html" do
225
225
  stub = stub_request(:get, url).to_return(:body => error.dig("errors", 0, "title"), :status => [405], :headers => { "Content-Type" => "text/html" })
226
- response = subject.get(url, accept: 'html')
226
+ response = subject.get(url, accept: "html")
227
227
  expect(response.body).to eq(error)
228
228
  expect(stub).to have_been_requested
229
229
  end
230
230
 
231
231
  it "head html" do
232
232
  stub = stub_request(:head, url).to_return(:body => error.to_s, :status => [405], :headers => { "Content-Type" => "text/html" })
233
- response = subject.head(url, accept: 'html')
233
+ response = subject.head(url, accept: "html")
234
234
  expect(response.status).to eq(405)
235
235
  expect(stub).to have_been_requested
236
236
  end
237
237
 
238
238
  it "post xml" do
239
239
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_return(:body => error.to_xml, :status => [405], :headers => { "Content-Type" => "application/xml" })
240
- subject.post(url, accept: 'xml', data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
240
+ subject.post(url, accept: "xml", data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
241
241
  expect(stub).to have_been_requested
242
242
  end
243
243
 
244
244
  it "put xml" do
245
245
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_return(:body => error.to_xml, :status => [405], :headers => { "Content-Type" => "application/xml" })
246
- subject.put(url, accept: 'xml', data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
246
+ subject.put(url, accept: "xml", data: post_data.to_xml) { |response| expect(Hash.from_xml(response.to_s)["hash"]).to eq(error) }
247
247
  expect(stub).to have_been_requested
248
248
  end
249
249
  end
@@ -258,34 +258,34 @@ describe Maremma do
258
258
 
259
259
  it "get xml" do
260
260
  stub = stub_request(:get, url).to_return(:status => [408])
261
- response = subject.get(url, accept: 'xml')
261
+ response = subject.get(url, accept: "xml")
262
262
  expect(response.body).to eq("errors"=>[{"status"=>408, "title"=>"Request timeout"}])
263
263
  expect(stub).to have_been_requested
264
264
  end
265
265
 
266
266
  it "get html" do
267
267
  stub = stub_request(:get, url).to_return(:status => [408])
268
- response = subject.get(url, accept: 'html')
268
+ response = subject.get(url, accept: "html")
269
269
  expect(response.body).to eq("errors"=>[{"status"=>408, "title"=>"Request timeout"}])
270
270
  expect(stub).to have_been_requested
271
271
  end
272
272
 
273
273
  it "head html" do
274
274
  stub = stub_request(:head, url).to_return(:status => [408])
275
- response = subject.head(url, accept: 'html')
275
+ response = subject.head(url, accept: "html")
276
276
  expect(response.status).to eq(408)
277
277
  expect(stub).to have_been_requested
278
278
  end
279
279
 
280
280
  it "post xml" do
281
281
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_return(:status => [408])
282
- subject.post(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
282
+ subject.post(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
283
283
  expect(stub).to have_been_requested
284
284
  end
285
285
 
286
286
  it "put xml" do
287
287
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_return(:status => [408])
288
- subject.put(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
288
+ subject.put(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
289
289
  expect(stub).to have_been_requested
290
290
  end
291
291
  end
@@ -311,27 +311,27 @@ describe Maremma do
311
311
 
312
312
  it "get xml" do
313
313
  stub = stub_request(:get, url).to_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
314
- response = subject.get(url, accept: 'xml')
314
+ response = subject.get(url, accept: "xml")
315
315
  expect(response.body).to eq("errors"=>[{"status"=>403, "title"=>"Connection refused - connect(2)"}])
316
316
  expect(stub).to have_been_requested
317
317
  end
318
318
 
319
319
  it "get html" do
320
320
  stub = stub_request(:get, url).to_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
321
- response = subject.get(url, accept: 'html')
321
+ response = subject.get(url, accept: "html")
322
322
  expect(response.body).to eq("errors"=>[{"status"=>403, "title"=>"Connection refused - connect(2)"}])
323
323
  expect(stub).to have_been_requested
324
324
  end
325
325
 
326
326
  it "post xml" do
327
327
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
328
- subject.post(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
328
+ subject.post(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
329
329
  expect(stub).to have_been_requested
330
330
  end
331
331
 
332
332
  it "put xml" do
333
333
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_raise(Faraday::ConnectionFailed.new("Connection refused - connect(2)"))
334
- subject.put(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
334
+ subject.put(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
335
335
  expect(stub).to have_been_requested
336
336
  end
337
337
  end
@@ -346,21 +346,21 @@ describe Maremma do
346
346
 
347
347
  it "get xml" do
348
348
  stub = stub_request(:get, url).to_raise(Faraday::Error::ClientError.new("the server responded with status 401"))
349
- response = subject.get(url, accept: 'xml')
349
+ response = subject.get(url, accept: "xml")
350
350
  expect(response.body).to eq("errors"=>[{"status"=>401, "title"=>"Unauthorized"}])
351
351
  expect(stub).to have_been_requested
352
352
  end
353
353
 
354
354
  it "get html" do
355
355
  stub = stub_request(:get, url).to_raise(Faraday::Error::ClientError.new("the server responded with status 401"))
356
- response = subject.get(url, accept: 'html')
356
+ response = subject.get(url, accept: "html")
357
357
  expect(response.body).to eq("errors"=>[{"status"=>401, "title"=>"Unauthorized"}])
358
358
  expect(stub).to have_been_requested
359
359
  end
360
360
 
361
361
  it "post xml" do
362
362
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_raise(Faraday::Error::ClientError.new("the server responded with status 401"))
363
- subject.post(url, accept: 'xml', data: post_data.to_xml) do |response|
363
+ subject.post(url, accept: "xml", data: post_data.to_xml) do |response|
364
364
  expect(response.body).to be_nil
365
365
  expect(response.status).to eq("errors"=>[{"status"=>401, "title"=>"Unauthorized"}])
366
366
  end
@@ -369,7 +369,7 @@ describe Maremma do
369
369
 
370
370
  it "put xml" do
371
371
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_raise(Faraday::Error::ClientError.new("the server responded with status 401"))
372
- subject.put(url, accept: 'xml', data: post_data.to_xml) do |response|
372
+ subject.put(url, accept: "xml", data: post_data.to_xml) do |response|
373
373
  expect(response.body).to be_nil
374
374
  expect(response.status).to eq("errors"=>[{"status"=>401, "title"=>"Unauthorized"}])
375
375
  end
@@ -387,64 +387,64 @@ describe Maremma do
387
387
 
388
388
  it "get xml" do
389
389
  stub = stub_request(:get, url).to_timeout
390
- response = subject.get(url, accept: 'xml')
390
+ response = subject.get(url, accept: "xml")
391
391
  expect(response.body).to eq("errors"=>[{"status"=>408, "title"=>"Request timeout"}])
392
392
  expect(stub).to have_been_requested
393
393
  end
394
394
 
395
395
  it "get html" do
396
396
  stub = stub_request(:get, url).to_timeout
397
- response = subject.get(url, accept: 'html')
397
+ response = subject.get(url, accept: "html")
398
398
  expect(response.body).to eq("errors"=>[{"status"=>408, "title"=>"Request timeout"}])
399
399
  expect(stub).to have_been_requested
400
400
  end
401
401
 
402
402
  it "post xml" do
403
403
  stub = stub_request(:post, url).with(:body => post_data.to_xml).to_timeout
404
- subject.post(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
404
+ subject.post(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
405
405
  expect(stub).to have_been_requested
406
406
  end
407
407
 
408
408
  it "put xml" do
409
409
  stub = stub_request(:put, url).with(:body => post_data.to_xml).to_timeout
410
- subject.put(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
410
+ subject.put(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
411
411
  expect(stub).to have_been_requested
412
412
  end
413
413
  end
414
414
 
415
415
  context "rate limit exceeded" do
416
416
  it "get json" do
417
- stub = stub_request(:get, url).to_return(status: 200, headers: { 'X-Rate-Limit-Remaining' => 2 })
417
+ stub = stub_request(:get, url).to_return(status: 200, headers: { "X-Rate-Limit-Remaining" => 2 })
418
418
  response = subject.get(url)
419
419
  expect(response.body).to eq("errors"=>[{"status"=>429, "title"=>"Too many requests"}])
420
420
  expect(stub).to have_been_requested
421
421
  end
422
422
 
423
423
  it "get xml" do
424
- stub = stub_request(:get, url).to_return(status: 200, headers: { 'X-Rate-Limit-Remaining' => 2 })
425
- response = subject.get(url, accept: 'xml')
424
+ stub = stub_request(:get, url).to_return(status: 200, headers: { "X-Rate-Limit-Remaining" => 2 })
425
+ response = subject.get(url, accept: "xml")
426
426
  expect(response.body).to eq("errors"=>[{"status"=>429, "title"=>"Too many requests"}])
427
427
  expect(stub).to have_been_requested
428
428
  end
429
429
 
430
430
  it "get html" do
431
- stub = stub_request(:get, url).to_return(status: 200, headers: { 'X-Rate-Limit-Remaining' => 2 })
432
- response = subject.get(url, accept: 'html')
431
+ stub = stub_request(:get, url).to_return(status: 200, headers: { "X-Rate-Limit-Remaining" => 2 })
432
+ response = subject.get(url, accept: "html")
433
433
  expect(response.body).to eq("errors"=>[{"status"=>429, "title"=>"Too many requests"}])
434
434
  expect(stub).to have_been_requested
435
435
  end
436
436
 
437
437
  it "post xml" do
438
438
  stub = stub_request(:post, url).with(:body => post_data.to_xml)
439
- .to_return(status: 200, headers: { 'X-Rate-Limit-Remaining' => 3 })
440
- subject.post(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
439
+ .to_return(status: 200, headers: { "X-Rate-Limit-Remaining" => 3 })
440
+ subject.post(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
441
441
  expect(stub).to have_been_requested
442
442
  end
443
443
 
444
444
  it "put xml" do
445
445
  stub = stub_request(:put, url).with(:body => post_data.to_xml)
446
- .to_return(status: 200, headers: { 'X-Rate-Limit-Remaining' => 3 })
447
- subject.put(url, accept: 'xml', data: post_data.to_xml) { |response| expect(response.body).to be_nil }
446
+ .to_return(status: 200, headers: { "X-Rate-Limit-Remaining" => 3 })
447
+ subject.put(url, accept: "xml", data: post_data.to_xml) { |response| expect(response.body).to be_nil }
448
448
  expect(stub).to have_been_requested
449
449
  end
450
450
  end
@@ -530,159 +530,159 @@ describe Maremma do
530
530
  end
531
531
  end
532
532
 
533
- context 'parse_error_response' do
534
- it 'json' do
535
- string = '{ "error": "An error occured." }'
533
+ context "parse_error_response" do
534
+ it "json" do
535
+ string = "{ \"error\": \"An error occured.\" }"
536
536
  expect(subject.parse_error_response(string)).to eq("An error occured.")
537
537
  end
538
538
 
539
- it 'json not error' do
540
- string = '{ "customError": "An error occured." }'
539
+ it "json not error" do
540
+ string = "{ \"customError\": \"An error occured.\" }"
541
541
  expect(subject.parse_error_response(string)).to eq("customError"=>"An error occured.")
542
542
  end
543
543
 
544
- it 'xml' do
545
- string = '<error>An error occured.</error>'
544
+ it "xml" do
545
+ string = "<error>An error occured.</error>"
546
546
  expect(subject.parse_error_response(string)).to eq("An error occured.")
547
547
  end
548
548
  end
549
549
 
550
- context 'parse_success_response' do
551
- it 'from_json' do
552
- string = '{ "word": "abc" }'
553
- expect(subject.parse_success_response(string)).to eq({"data"=>{"word"=>"abc"}})
550
+ context "parse_success_response" do
551
+ it "from_json" do
552
+ string = "{ \"word\": \"abc\" }"
553
+ expect(subject.parse_success_response(string)).to eq({ "data" => { "word"=>"abc" }})
554
554
  end
555
555
 
556
- it 'from_json with data' do
557
- string = '{ "data": { "word": "abc" }}'
556
+ it "from_json with data" do
557
+ string = "{ \"data\": { \"word\": \"abc\" }}"
558
558
  expect(subject.parse_success_response(string)).to eq({"data"=>{"word"=>"abc"}})
559
559
  end
560
560
 
561
- it 'from_json with data and meta' do
562
- string = '{ "data": { "word": "abc" }, "meta": { "total": 12 }}'
561
+ it "from_json with data and meta" do
562
+ string = "{ \"data\": { \"word\": \"abc\" }, \"meta\": { \"total\": 12 }}"
563
563
  expect(subject.parse_success_response(string)).to eq({"data"=>{"word"=>"abc"},"meta"=>{"total"=>12}})
564
564
  end
565
565
 
566
- it 'from_xml' do
566
+ it "from_xml" do
567
567
  string = "<word>abc</word>"
568
568
  expect(subject.parse_success_response(string)).to eq("data"=>{"word"=>"abc"})
569
569
  end
570
570
 
571
- it 'from_xml with attribute' do
572
- string = '<word type="small">abc</word>'
571
+ it "from_xml with attribute" do
572
+ string = "<word type='small'>abc</word>"
573
573
  expect(subject.parse_success_response(string)).to eq("data"=>{"word"=>{"type"=>"small", "__content__"=>"abc"}})
574
574
  end
575
575
 
576
- # it 'from_xml with allowed content attributes' do
577
- # string = '<title>Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i></title>'
576
+ # it "from_xml with allowed content attributes" do
577
+ # string = "<title>Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i></title>"
578
578
  # expect(subject.parse_success_response(string)).to eq("data"=>{"title"=>"Sexual conflict and correlated evolution between male persistence and female resistance traits in the seed beetle <i>Callosobruchus maculatus</i>"})
579
579
  # end
580
580
 
581
- it 'from_xml with attribute type string' do
582
- string = '<crm-item name="publisher-name" type="string">eLife Sciences Publications, Ltd</crm-item>'
581
+ it "from_xml with attribute type string" do
582
+ string = "<crm-item name='publisher-name' type='string'>eLife Sciences Publications, Ltd</crm-item>"
583
583
  expect(subject.parse_success_response(string)).to eq("data"=>{"crm_item"=>"eLife Sciences Publications, Ltd"})
584
584
  end
585
585
 
586
- it 'from_xml with mixed attribute' do
587
- string = '<word type="small">abc<footnote>1</footnote></word>'
586
+ it "from_xml with mixed attribute" do
587
+ string = "<word type='small'>abc<footnote>1</footnote></word>"
588
588
  expect(subject.parse_success_response(string)).to eq("data"=>{"word"=>{"type"=>"small", "footnote"=>"1", "__content__"=>"abc"}})
589
589
  end
590
590
 
591
- it 'from_string' do
591
+ it "from_string" do
592
592
  string = "abc"
593
593
  expect(subject.parse_success_response(string)).to eq("data"=>"abc")
594
594
  end
595
595
 
596
- it 'from_string with utf-8' do
596
+ it "from_string with utf-8" do
597
597
  string = "fön "
598
598
  expect(subject.parse_success_response(string)).to eq("data"=>"fön")
599
599
  end
600
600
  end
601
601
 
602
- context 'accept headers' do
603
- it 'default' do
602
+ context "accept headers" do
603
+ it "default" do
604
604
  headers = subject.set_request_headers(url)
605
605
  expect(headers["Accept"]).to eq("text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5")
606
606
  end
607
607
 
608
- it 'json' do
609
- headers = subject.set_request_headers(url, accept: 'json')
608
+ it "json" do
609
+ headers = subject.set_request_headers(url, accept: "json")
610
610
  expect(headers["Accept"]).to eq("application/json;charset=UTF-8")
611
611
  end
612
612
 
613
- it 'xml' do
614
- headers = subject.set_request_headers(url, accept: 'xml')
613
+ it "xml" do
614
+ headers = subject.set_request_headers(url, accept: "xml")
615
615
  expect(headers["Accept"]).to eq("application/xml;charset=UTF-8")
616
616
  end
617
617
 
618
- it 'html' do
619
- headers = subject.set_request_headers(url, accept: 'html')
618
+ it "html" do
619
+ headers = subject.set_request_headers(url, accept: "html")
620
620
  expect(headers["Accept"]).to eq("text/html;charset=UTF-8")
621
621
  end
622
622
 
623
- it 'other' do
624
- headers = subject.set_request_headers(url, accept: 'application/x-bibtex')
623
+ it "other" do
624
+ headers = subject.set_request_headers(url, accept: "application/x-bibtex")
625
625
  expect(headers["Accept"]).to eq("application/x-bibtex")
626
626
  end
627
627
  end
628
628
 
629
- context 'authentication' do
630
- it 'no auth' do
629
+ context "authentication" do
630
+ it "no auth" do
631
631
  options = {}
632
632
  expect(subject.set_request_headers(url, options)["Authorization"]).to be nil
633
633
  end
634
634
 
635
- it 'bearer' do
636
- options = { bearer: 'mF_9.B5f-4.1JqM' }
635
+ it "bearer" do
636
+ options = { bearer: "mF_9.B5f-4.1JqM" }
637
637
  expect(subject.set_request_headers(url, options)["Authorization"]).to eq("Bearer mF_9.B5f-4.1JqM")
638
638
  end
639
639
 
640
- it 'token' do
641
- options = { token: '12345' }
640
+ it "token" do
641
+ options = { token: "12345" }
642
642
  expect(subject.set_request_headers(url, options)["Authorization"]).to eq("Token token=12345")
643
643
  end
644
644
 
645
- it 'github_token' do
646
- options = { github_token: '12345' }
645
+ it "github_token" do
646
+ options = { github_token: "12345" }
647
647
  expect(subject.set_request_headers(url, options)["Authorization"]).to eq("Token 12345")
648
648
  end
649
649
 
650
- it 'github_token' do
651
- options = { github_token: '12345' }
650
+ it "github_token" do
651
+ options = { github_token: "12345" }
652
652
  expect(subject.set_request_headers(url, options)).to eq("User-Agent"=>"Mozilla/5.0 (compatible; Maremma/#{Maremma::VERSION}; +https://github.com/datacite/maremma)", "Accept"=>accept_header, "Authorization"=>"Token 12345")
653
653
  end
654
654
 
655
- it 'basic' do
656
- options = { username: 'foo', password: '12345' }
655
+ it "basic" do
656
+ options = { username: "foo", password: "12345" }
657
657
  basic = Base64.strict_encode64("foo:12345")
658
658
  expect(subject.set_request_headers(url, options)["Authorization"]).to eq("Basic #{basic}")
659
659
  end
660
660
  end
661
661
 
662
- context 'set host' do
663
- it 'crossref', vcr: true do
662
+ context "set host" do
663
+ it "crossref", vcr: true do
664
664
  url = "https://api.eventdata.crossref.org/v1/events?mailto=info@datacite.org&rows=0&source=crossref"
665
665
  response = subject.get(url)
666
666
  expect(response.status).to eq(200)
667
667
  expect(response.body.dig("data", "message", "total-results")).to eq(57969)
668
668
  end
669
669
 
670
- it 'ornl.gov', vcr: true do
670
+ it "ornl.gov", vcr: true do
671
671
  url = "https://daac.ornl.gov/cgi-bin/dsviewer.pl?ds_id=1339"
672
672
  response = subject.get(url)
673
673
  expect(response.status).to eq(200)
674
- doc = Nokogiri::XML(response.body.fetch("data", nil), nil, 'UTF-8')
674
+ doc = Nokogiri::XML(response.body.fetch("data", nil), nil, "UTF-8")
675
675
  nodeset = doc.css("script")
676
676
  string = nodeset.find { |element| element["type"] == "application/ld+json" }
677
677
  json = JSON.parse(string)
678
678
  expect(json["@id"]).to eq("https://doi.org/10.3334/ORNLDAAC/1339")
679
679
  end
680
680
 
681
- it 'redirection', vcr: true do
681
+ it "redirection", vcr: true do
682
682
  url = "https://doi.org/10.3334/ornldaac/1339"
683
683
  response = subject.get(url)
684
684
  expect(response.status).to eq(200)
685
- doc = Nokogiri::XML(response.body.fetch("data", nil), nil, 'UTF-8')
685
+ doc = Nokogiri::XML(response.body.fetch("data", nil), nil, "UTF-8")
686
686
  nodeset = doc.css("script")
687
687
  string = nodeset.find { |element| element["type"] == "application/ld+json" }
688
688
  json = JSON.parse(string)
@@ -690,14 +690,14 @@ describe Maremma do
690
690
  end
691
691
  end
692
692
 
693
- context 'ssl verify', vcr: true do
694
- it 'default' do
693
+ context "ssl verify", vcr: true do
694
+ it "default" do
695
695
  url = "https://doi.org/10.5281/ZENODO.21430"
696
696
  response = subject.get(url)
697
697
  expect(response.status).to eq(200)
698
698
  end
699
699
 
700
- it 'self-signed' do
700
+ it "self-signed" do
701
701
  url = "https://38.100.138.135:8000/api/handles/10.5281/ZENODO.21430?index=1"
702
702
  options = { ssl_self_signed: true}
703
703
  response = subject.get(url, options)