tinplate 2.1.1 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01e93f8f4d2f05ea8d7ae8cdfa3e002a49d6cf84c2bdb91dfcaa1a8daaa64bc4
4
- data.tar.gz: 84ef0144e226efb3bf0ec58ce3727651e6a165de6a0b29dc69e508c830e3bd24
3
+ metadata.gz: 6c74f1bc36e6e016c34542b3ec3b489566d8f72a176945428ab7976cd9043524
4
+ data.tar.gz: 7b3c0d39b2332801d355b4b38ddc2c5cbdd96c5c99430e38700253d5c743f8fd
5
5
  SHA512:
6
- metadata.gz: d6c9ebfcedf2ad635f866db6425e8501eb07a9f2ece2051b8ebe31d5752f31def2ac0c91343d4c89a225e93c6cc76a610946fec88758fda17ce1704f20e78d9c
7
- data.tar.gz: abfddee5e25022fb25129e24a288a236b9c77aeeb09a978f1d7d02a4faa4abe1d7f6524f4794aa6d2521f151c35819710ae0248f7195aad86cdf712d134f3a2e
6
+ metadata.gz: '03899e5fbb07db090225c108c9c6a5db00ba4801819d405a174069e4a9a2dcfccc00ac344c42db806050dca3e124fbf9b29f9db57a8a741ef63700ed81fd72d2'
7
+ data.tar.gz: ac14fe344b6c537f8daacc3a9afe0d581e34c4a21bdd9188b02681c317126d233c4b33e6b06f7bb9186c18fd7d26cbcaf340f9cd83045532b03864cf70d8e442
@@ -1,20 +1,34 @@
1
1
  module Tinplate
2
2
  class Error < StandardError
3
- def self.from_response(code, type, message)
4
- klass = case message
5
- when /503 Service Unavailable/ then Tinplate::ServiceUnavailableError
6
- when /service is busy due to high load/ then Tinplate::ServiceUnavailableError
7
- when /Image too simple/ then Tinplate::NoSignatureError
8
- when /purchase another bundle/ then Tinplate::NoCreditsRemainingError
9
- else
10
- Tinplate::Error
11
- end
3
+ def self.from_response(code, messages)
4
+ return UnauthorizedError.new(messages.first) if code == 403
12
5
 
13
- klass.new(message)
6
+ messages.each do |message|
7
+ klass = class_from_message(message)
8
+ return klass.new(messages.join("\n")) if klass
9
+ end
10
+
11
+ Tinplate::Error.new(messages.join("\n"))
12
+ end
13
+
14
+ def self.class_from_message(message)
15
+ case message
16
+ when /503 Service Unavailable/ then Tinplate::ServiceUnavailableError
17
+ when /service is busy due to high load/ then Tinplate::ServiceUnavailableError
18
+ when /Image too simple/ then Tinplate::NoSignatureError
19
+ when /purchase another bundle/ then Tinplate::NoCreditsRemainingError
20
+ when /Could not download/ then Tinplate::InaccessibleURLError
21
+ when /Please supply an image/ then Tinplate::InvalidSearchError
22
+ when /Error reading image data/ then Tinplate::InvalidImageDataError
23
+ end
14
24
  end
15
25
  end
16
26
 
17
27
  class ServiceUnavailableError < Error; end
18
28
  class NoSignatureError < Error; end
19
29
  class NoCreditsRemainingError < Error; end
20
- end
30
+ class UnauthorizedError < Error; end
31
+ class InaccessibleURLError < Error; end
32
+ class InvalidSearchError < Error; end
33
+ class InvalidImageDataError < Error; end
34
+ end
@@ -55,7 +55,7 @@ module Tinplate
55
55
  response = ::JSON.parse(response.body)
56
56
 
57
57
  if response["code"] != 200
58
- raise Tinplate::Error.from_response(response["code"], response["messages"][0], response["messages"][1])
58
+ raise Tinplate::Error.from_response(response["code"], response["messages"])
59
59
  end
60
60
 
61
61
  response
@@ -1,3 +1,3 @@
1
1
  module Tinplate
2
- VERSION = "2.1.1"
2
+ VERSION = "2.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tinplate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Klaassen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-12 00:00:00.000000000 Z
11
+ date: 2022-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -86,7 +86,7 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
- description:
89
+ description:
90
90
  email:
91
91
  - aaron@unsplash.com
92
92
  executables: []
@@ -113,7 +113,7 @@ homepage: https://github.com/unsplash/tinplate
113
113
  licenses:
114
114
  - MIT
115
115
  metadata: {}
116
- post_install_message:
116
+ post_install_message:
117
117
  rdoc_options: []
118
118
  require_paths:
119
119
  - lib
@@ -129,7 +129,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
129
  version: '0'
130
130
  requirements: []
131
131
  rubygems_version: 3.1.4
132
- signing_key:
132
+ signing_key:
133
133
  specification_version: 4
134
134
  summary: A wrapper around the TinEye API.
135
135
  test_files: []