croudia4r 0.1.1 → 0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8915cc116dcf489e508d7131a723b0938f9f8b17
4
- data.tar.gz: 2f8f0cc1ef1c271194f8c65152e635936c367108
3
+ metadata.gz: 8ae782038ce3273af484f13c1f95ec838db761a4
4
+ data.tar.gz: 75587bf12055968714c273bb7de5f0d05ae0c021
5
5
  SHA512:
6
- metadata.gz: 56c985332a0a8ec5d4538363a32cbd071284a95179d1354e2067d325309b6b639b4c9a2a9df55388d946115705e66ebdb05898cc6533926be0a6627fab35a054
7
- data.tar.gz: a5b6fe74278878223791173280c5acb753a2f698906db591928bec185fc6ee8f0cf0a210bc67da11a95b6aeaae9276cf0c53f1ae52c812eb2a0544557919fdcb
6
+ metadata.gz: 890f6d103429cbee5a3060557f6baa394b9e184ab40609d53e7725116d5271b217a57b92285ba533eebda5b9299d5b0cc3e375a0d6fd4bb9abe0b5e4cd9d8187
7
+ data.tar.gz: 17a19c09663448c3fb2bf3fc39c42d534b9b0126975a8770f79e44b9dee30050b684f717860c92afcd86a779f22309426847d560d4cf7e81583377561f5964ff
data/README.md CHANGED
@@ -1,4 +1,5 @@
1
1
  # Croudia for Ruby
2
+ [![Gem Version](https://badge.fury.io/rb/croudia4r.svg)](https://badge.fury.io/rb/croudia4r)
2
3
 
3
4
  [Croudia](https://croudia.com) API wrapper gem.
4
5
  You use as [twitter gem](https://github.com/sferik/twitter).
@@ -61,8 +61,8 @@ module Croudia
61
61
  request.run
62
62
  response = request.response
63
63
 
64
- if(response.code == "401")
65
-
64
+ if(response.code != "200")
65
+ raise Croudia::Error.from_response(response)
66
66
  end
67
67
  JSON.parse(response.body)
68
68
  end
@@ -77,7 +77,8 @@ module Croudia
77
77
  request.run
78
78
  response = request.response
79
79
 
80
- if(response.code == "401")
80
+ if(response.code != "200")
81
+ raise Croudia::Error.from_response(response)
81
82
  end
82
83
  JSON.parse(response.body)
83
84
  end
data/lib/croudia/error.rb CHANGED
@@ -1,5 +1,59 @@
1
1
  module Croudia
2
2
  class Error < StandardError
3
3
 
4
+ attr_reader :code, :message
5
+
6
+ ClientError = Class.new(self)
7
+
8
+ # 400 ~
9
+ BadRequest = Class.new(ClientError)
10
+ Unauthorized = Class.new(ClientError)
11
+ Forbidden = Class.new(ClientError)
12
+ NotFound = Class.new(ClientError)
13
+ NotAcceptable = Class.new(ClientError)
14
+ Gone = Class.new(ClientError) # x
15
+ UnprocessableEntity = Class.new(ClientError) # x
16
+ TooManyRequests = Class.new(ClientError) # x
17
+
18
+
19
+ ServerError = Class.new(self)
20
+
21
+ # 500 ~
22
+ InternalServerError = Class.new(ServerError)
23
+ BadGateway = Class.new(ServerError)
24
+ ServiceUnavailable = Class.new(ServerError)
25
+ GatewayTimeout = Class.new(ServerError)
26
+
27
+ ERRORS = {
28
+ "400" => Croudia::Error::BadRequest,
29
+ "401" => Croudia::Error::Unauthorized,
30
+ "403" => Croudia::Error::Forbidden,
31
+ "404" => Croudia::Error::NotFound,
32
+ "406" => Croudia::Error::NotAcceptable,
33
+ "410" => Croudia::Error::Gone,
34
+ "422" => Croudia::Error::UnprocessableEntity,
35
+ "429" => Croudia::Error::TooManyRequests,
36
+ "500" => Croudia::Error::InternalServerError,
37
+ "502" => Croudia::Error::BadGateway,
38
+ "503" => Croudia::Error::ServiceUnavailable,
39
+ "504" => Croudia::Error::GatewayTimeout
40
+ }
41
+
42
+ def initialize(code, message)
43
+ super(message)
44
+
45
+ @code = code
46
+ @message = message
47
+ end
48
+
49
+ class << self
50
+ def from_response(response)
51
+ if (response.body.nil? || response.body.strip.empty?)
52
+ ERRORS[response.code.to_s].new(response.code, 'No message')
53
+ else
54
+ ERRORS[response.code.to_s].new(response.code, JSON.parse(response.body).message)
55
+ end
56
+ end
57
+ end
4
58
  end
5
59
  end
@@ -6,7 +6,7 @@ require 'croudia/object/source'
6
6
  module Croudia
7
7
  module Object
8
8
  class Status < Identity
9
- attr_reader :text, :favorited, :favorites_count,
9
+ attr_reader :text, :favorited, :favorited_count,
10
10
  :spread, :spread_count, :in_reply_to_status_id,
11
11
  :in_reply_to_status_id_str, :in_reply_to_user_id,
12
12
  :in_reply_to_user_id_str, :created_at
@@ -1,3 +1,3 @@
1
1
  module Croudia
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: croudia4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikazuki Fuyuno
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-28 00:00:00.000000000 Z
11
+ date: 2015-12-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: typhoeus