kiita 0.1.0 → 0.1.1
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.
- data/.travis.yml +2 -0
- data/Gemfile +1 -0
- data/kiita.gemspec +1 -1
- data/lib/kiita/api.rb +1 -1
- data/lib/kiita/errors.rb +9 -7
- data/lib/kiita/version.rb +1 -1
- data/spec/kiita/post_spec.rb +5 -1
- data/spec/kiita/user_spec.rb +6 -1
- data/spec/support/api_responses/get_item.json +85 -0
- data/spec/support/api_responses/get_user.json +17 -0
- metadata +7 -3
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/kiita.gemspec
CHANGED
data/lib/kiita/api.rb
CHANGED
data/lib/kiita/errors.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
module Kiita
|
2
|
-
class
|
3
|
-
class
|
4
|
-
|
5
|
-
class
|
6
|
-
class
|
7
|
-
class
|
2
|
+
class Exception < StandardError; end
|
3
|
+
class InternalServerError < Exception; end # 500
|
4
|
+
|
5
|
+
class Error < Exception; end
|
6
|
+
class BadRequest < Error; end # 400
|
7
|
+
class Unauthorized < Error; end # 401
|
8
|
+
class Forbidden < Error; end # 403
|
9
|
+
class NotFound < Error; end # 404
|
8
10
|
|
9
11
|
module Errors
|
10
12
|
module HandlerMethods
|
@@ -34,7 +36,7 @@ module Kiita
|
|
34
36
|
if response.body.empty?
|
35
37
|
"#{response.http_header.request_method} #{response.http_header.request_uri.to_s}: #{response.status}"
|
36
38
|
else
|
37
|
-
|
39
|
+
MultiJson.load(response.body)["error"]
|
38
40
|
end
|
39
41
|
end
|
40
42
|
private :error_message
|
data/lib/kiita/version.rb
CHANGED
data/spec/kiita/post_spec.rb
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Kiita::Post do
|
5
|
-
|
5
|
+
def qiita_api_response(path)
|
6
|
+
File.new("#{File.dirname(__FILE__)}/../support/api_responses/#{path}")
|
7
|
+
end
|
6
8
|
|
7
9
|
describe "initialization" do
|
8
10
|
context "with valid attrs" do
|
@@ -44,6 +46,8 @@ describe Kiita::Post do
|
|
44
46
|
end
|
45
47
|
|
46
48
|
describe "#find" do
|
49
|
+
before { stub_request(:get, /^https:\/\/qiita.com/).to_return(body: qiita_api_response("get_item.json")) }
|
50
|
+
|
47
51
|
subject { Kiita::Post.find("2e6258b7c6a5b13b7d16") }
|
48
52
|
|
49
53
|
its(:id) { should == 1408 }
|
data/spec/kiita/user_spec.rb
CHANGED
@@ -2,7 +2,9 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Kiita::User do
|
5
|
-
|
5
|
+
def qiita_api_response(path)
|
6
|
+
File.new("#{File.dirname(__FILE__)}/../support/api_responses/#{path}")
|
7
|
+
end
|
6
8
|
|
7
9
|
describe "initialization" do
|
8
10
|
context "with valid attrs" do
|
@@ -44,7 +46,10 @@ describe Kiita::User do
|
|
44
46
|
end
|
45
47
|
|
46
48
|
describe "#find" do
|
49
|
+
before { stub_request(:get, /^https:\/\/qiita.com/).to_return(body: qiita_api_response("get_user.json")) }
|
50
|
+
|
47
51
|
subject { Kiita::User.find("yaotti") }
|
52
|
+
|
48
53
|
its(:url_name) { should == "yaotti" }
|
49
54
|
its(:profile_image_url){ should == "https://si0.twimg.com/profile_images/1476972552/face_normal.jpeg" }
|
50
55
|
its(:url) { should == "http://qiita.com/users/yaotti" }
|
@@ -0,0 +1,85 @@
|
|
1
|
+
{
|
2
|
+
"id":1408,
|
3
|
+
"uuid":"2e6258b7c6a5b13b7d16",
|
4
|
+
"user": {
|
5
|
+
"name":"Yuki Nishijima",
|
6
|
+
"url_name":"yuki24",
|
7
|
+
"profile_image_url":"https://secure.gravatar.com/avatar/bcd6fc0618a420ba3d59fe5bfaf2b323?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"
|
8
|
+
},
|
9
|
+
"title":"\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b gem \u3092\u5168\u3066\u524a\u9664\u3059\u308b\u3002",
|
10
|
+
"body":"<ol>\n<li><code>gemlist</code> \u3067\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3057\u3001</li>\n<li><code>cut-d" " -f1</code> \u3067\u540d\u524d\u3092\u62bd\u51fa\u3057\u3001</li>\n<li>\u305d\u308c\u3092<code>gem uninstall</code> \u306b\u6295\u3052\u308b\u3002</li>\n</ol>\n\n<p>\u3092\u4e0b\u8a18\u3067\u5b9f\u884c\u3067\u304d\u308b\u3002</p>\n<divclass=\"code-frame\"><div class=\"highlight\"><pre><span class=\"n\">gem</span><span class=\"n\">list</span> <span class=\"o\">|</span> <span class=\"n\">cut</span><span class=\"o\">-</span><span class=\"n\">d</span>" " <span class=\"o\">-</span><spanclass=\"n\">f1</span> <span class=\"o\">|</span> <span class=\"n\">xargs</span><span class=\"n\">gem</span> <span class=\"n\">uninstall</span> <span class=\"o\">-</span><spanclass=\"n\">aIx</span>\n</pre>\n</div>\n</div>",
|
11
|
+
"created_at":"2011-12-19 00:04:14 +0900",
|
12
|
+
"updated_at":"2012-03-16 11:30:26 +0900",
|
13
|
+
"created_at_in_words":"10\u30f6\u6708\u524d",
|
14
|
+
"updated_at_in_words":"7\u30f6\u6708\u524d",
|
15
|
+
"tags": [
|
16
|
+
{
|
17
|
+
"name":"Ruby",
|
18
|
+
"url_name":"Ruby",
|
19
|
+
"icon_url":"http://qiita.com/system/tags/icons/000/000/003/thumb/ruby.jpeg?1316130908",
|
20
|
+
"item_count":782,
|
21
|
+
"follower_count":2714,
|
22
|
+
"versions":[]
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"name":"Gems",
|
26
|
+
"url_name":"Gems",
|
27
|
+
"icon_url":"http://qiita.com/icons/thumb/missing.png",
|
28
|
+
"item_count":6,
|
29
|
+
"follower_count":0,
|
30
|
+
"versions":[]
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"name":"Rails",
|
34
|
+
"url_name":"Rails",
|
35
|
+
"icon_url":"http://qiita.com/system/tags/icons/000/000/034/thumb/Ruby_on_Rails_logo.jpeg?1320170723",
|
36
|
+
"item_count":453,
|
37
|
+
"follower_count":432,
|
38
|
+
"versions":[]
|
39
|
+
}
|
40
|
+
],
|
41
|
+
"stock_count":13,
|
42
|
+
"stock_users": [
|
43
|
+
"amazedkoumei@github",
|
44
|
+
"pisolino_jp",
|
45
|
+
"inouetakuya",
|
46
|
+
"naoty_k",
|
47
|
+
"arexsam",
|
48
|
+
"tkg24",
|
49
|
+
"kysnm",
|
50
|
+
"bris@github",
|
51
|
+
"cou_z",
|
52
|
+
"yusuke_1031",
|
53
|
+
"yang8",
|
54
|
+
"mdaisuke",
|
55
|
+
"yaotti"
|
56
|
+
],
|
57
|
+
"comment_count":2,
|
58
|
+
"url":"http://qiita.com/items/2e6258b7c6a5b13b7d16",
|
59
|
+
"gist_url":null,
|
60
|
+
"private":false,
|
61
|
+
"created_at_as_seconds":1324220654,
|
62
|
+
"raw_body":"1.`gem list` \u3067\u30ea\u30b9\u30c8\u3092\u8868\u793a\u3057\u3001\n2. `cut-d\" \" -f1` \u3067\u540d\u524d\u3092\u62bd\u51fa\u3057\u3001\n3. \u305d\u308c\u3092`gem uninstall` \u306b\u6295\u3052\u308b\u3002\n\n\u3092\u4e0b\u8a18\u3067\u5b9f\u884c\u3067\u304d\u308b\u3002\n\n```\ngemlist | cut -d\" \" -f1 | xargs gem uninstall -aIx\n```",
|
63
|
+
"comments": [
|
64
|
+
{
|
65
|
+
"id":471,
|
66
|
+
"uuid":"31c6572311d6304346b8",
|
67
|
+
"user": {
|
68
|
+
"name":"\u4f50\u5009\u674f\u5b50",
|
69
|
+
"url_name":"aereal",
|
70
|
+
"profile_image_url":"https://si0.twimg.com/profile_images/1796360201/a8b842d3448ded45259dd74d452c5972_normal.png"
|
71
|
+
},
|
72
|
+
"body":"<p>gemuni $(gem li --no-versions)</p>\n\n<p>\u3067\u540c\u3058\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u306d\u3002<br>\ngemlist\u306f\u51fa\u529b\u5148\u304cSTDOUT\u3060\u3068 "*** LOCAL GEMS***" \u3068\u304b\u51fa\u529b\u3055\u308c\u307e\u3059\u304c\u3001\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3055\u308c\u3066\u3044\u308b\u3068\u51fa\u529b\u3055\u308c\u306a\u3044\u306e\u3067\u3001\u3061\u3083\u3093\u3068gem\u306e\u540d\u524d\u3060\u3051\u304c\u51fa\u529b\u3055\u308c\u307e\u3059\u3002</p>\n"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"id":504,
|
76
|
+
"uuid":"934de2ca98f9601065cd",
|
77
|
+
"user": {
|
78
|
+
"name":"YukiNishijima",
|
79
|
+
"url_name":"yuki24",
|
80
|
+
"profile_image_url":"https://secure.gravatar.com/avatar/bcd6fc0618a420ba3d59fe5bfaf2b323?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png"
|
81
|
+
},
|
82
|
+
"body":"<p>\u304a\u3049\u3001\u3053\u308c\u306f\u30b7\u30f3\u30d7\u30eb\uff01\u3042\u308a\u304c\u3068\u3046\u3054\u3056\u3044\u307e\u3059\uff01</p>\n"
|
83
|
+
}
|
84
|
+
]
|
85
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"Name": "\u3084\u304a\u3063\u3061/Hiroshige Umino",
|
3
|
+
"url_name": "yaotti",
|
4
|
+
"profile_image_url": "https://si0.twimg.com/profile_images/1476972552/face_normal.jpeg",
|
5
|
+
"url": "http://qiita.com/users/yaotti",
|
6
|
+
"description": "Qiita(Ruby on Rails)\u3084Kobito(Mac\u30a2\u30d7\u30ea)\u306e\u958b\u767a\u3092\u3057\u3066\u3044\u307e\u3059\uff0e\r\n",
|
7
|
+
"website_url": "http://yaotti.hatenablog.com",
|
8
|
+
"organization": "Increments Inc",
|
9
|
+
"location": "Tokyo, Japan",
|
10
|
+
"facebook": "yaotti",
|
11
|
+
"linkedin": "yaotti",
|
12
|
+
"twitter": "yaotti",
|
13
|
+
"github": "yaotti",
|
14
|
+
"followers": 187,
|
15
|
+
"following_users": 129,
|
16
|
+
"items": 102
|
17
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kiita
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httpclient
|
@@ -28,7 +28,7 @@ dependencies:
|
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
31
|
+
name: multi_json
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
@@ -140,6 +140,8 @@ files:
|
|
140
140
|
- spec/kiita_spec.rb
|
141
141
|
- spec/spec_helper.rb
|
142
142
|
- spec/support/api_responses/auth.json
|
143
|
+
- spec/support/api_responses/get_item.json
|
144
|
+
- spec/support/api_responses/get_user.json
|
143
145
|
- spec/support/api_responses/search.json
|
144
146
|
- spec/support/api_responses/user.json
|
145
147
|
- spec/support/api_responses/user_stocks.json
|
@@ -177,6 +179,8 @@ test_files:
|
|
177
179
|
- spec/kiita_spec.rb
|
178
180
|
- spec/spec_helper.rb
|
179
181
|
- spec/support/api_responses/auth.json
|
182
|
+
- spec/support/api_responses/get_item.json
|
183
|
+
- spec/support/api_responses/get_user.json
|
180
184
|
- spec/support/api_responses/search.json
|
181
185
|
- spec/support/api_responses/user.json
|
182
186
|
- spec/support/api_responses/user_stocks.json
|