croudia4r 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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