gyazz 0.0.2 → 0.0.3

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.
Files changed (3) hide show
  1. data/lib/gyazz.rb +17 -8
  2. data/test/test_gyazz.rb +13 -0
  3. metadata +3 -3
data/lib/gyazz.rb CHANGED
@@ -4,7 +4,7 @@ $:.unshift(File.dirname(__FILE__)) unless
4
4
  require 'net/http'
5
5
 
6
6
  class Gyazz
7
- VERSION = '0.0.2'
7
+ VERSION = '0.0.3'
8
8
 
9
9
  def initialize(name,user=nil,pass=nil)
10
10
  @name = name
@@ -13,16 +13,18 @@ class Gyazz
13
13
  end
14
14
 
15
15
  def http_get(addr)
16
- ret = ''
16
+ ret = nil
17
17
  begin
18
18
  Net::HTTP.start('gyazz.com', 80) {|http|
19
19
  req = Net::HTTP::Get.new(addr)
20
20
  req.basic_auth @user,@pass if @user
21
21
  response = http.request(req)
22
+ raise "status code error (#{response.code})" if response.code != "200"
22
23
  ret = response.body
23
24
  }
24
25
  rescue
25
26
  end
27
+ raise "http_get failed" if ret == nil
26
28
  ret.chomp
27
29
  end
28
30
 
@@ -35,6 +37,7 @@ class Gyazz
35
37
  }
36
38
  rescue
37
39
  end
40
+ raise "List failed" if ret == nil
38
41
  return ret
39
42
  end
40
43
 
@@ -44,6 +47,7 @@ class Gyazz
44
47
  s = http_get("/#{@name}/#{title.gsub(/ /,'%20')}/text")
45
48
  rescue
46
49
  end
50
+ raise "text failed" if s == nil
47
51
  return s
48
52
  end
49
53
 
@@ -52,12 +56,17 @@ class Gyazz
52
56
  val = val.join("\n")
53
57
  end
54
58
  data = @name + "\n" + title + "\n" + val
55
- Net::HTTP.start('gyazz.com', 80) {|http|
56
- req = Net::HTTP::Post.new('/__write__')
57
- req.set_form_data('data' => data)
58
- req.basic_auth @user,@pass if @user
59
- response = http.request(req)
60
- }
59
+ begin
60
+ Net::HTTP.start('gyazz.com', 80) {|http|
61
+ req = Net::HTTP::Post.new('/__write__')
62
+ req.set_form_data('data' => data)
63
+ req.basic_auth @user,@pass if @user
64
+ response = http.request(req)
65
+ raise "status code error (#{response.code})" if response.code != "302"
66
+ }
67
+ rescue
68
+ raise "settext failed"
69
+ end
61
70
  end
62
71
 
63
72
  def get(title)
data/test/test_gyazz.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # -*- coding: utf-8 -*-
1
2
  require File.dirname(__FILE__) + '/test_helper.rb'
2
3
 
3
4
  class TestGyazz < Test::Unit::TestCase
@@ -31,4 +32,16 @@ class TestGyazz < Test::Unit::TestCase
31
32
  g.set('test','99999')
32
33
  assert_equal(g.get('test'),'99999')
33
34
  end
35
+
36
+ def __test_exception
37
+ # 通信失敗をエミュレーションするにはどうするのか?
38
+ error = ''
39
+ begin
40
+ g = Gyazz.new('testxxxx')
41
+ s = g.get('nonexistent page')
42
+ rescue => e
43
+ error = e.to_s
44
+ end
45
+ assert(error != '')
46
+ end
34
47
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gyazz
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
9
+ - 3
10
+ version: 0.0.3
11
11
  platform: ruby
12
12
  authors:
13
13
  - Toshiyuki Masui