zapt_in 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Gemfile.lock +4 -2
- data/README.md +21 -6
- data/lib/zapt_in/client.rb +3 -3
- data/lib/zapt_in/request.rb +2 -2
- data/lib/zapt_in/url.rb +11 -4
- data/lib/zapt_in/version.rb +1 -1
- data/lib/zapt_in.rb +25 -0
- data/test/fixtures/xml_response.rb +68 -0
- data/test/test_helper.rb +9 -2
- data/test/zapt_in/client_test.rb +14 -16
- data/test/zapt_in/request_test.rb +5 -11
- data/test/zapt_in/url_test.rb +57 -0
- data/test/zapt_in_test.rb +27 -0
- data/zapt_in.gemspec +2 -1
- metadata +26 -8
- data/test/fixtures/shorten_failure +0 -18
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
zapt_in (0.0.
|
4
|
+
zapt_in (0.0.2)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: http://rubygems.org/
|
8
8
|
specs:
|
9
9
|
ansi (1.2.5)
|
10
10
|
fakeweb (1.3.0)
|
11
|
+
mocha (0.9.12)
|
11
12
|
turn (0.8.2)
|
12
13
|
ansi (>= 1.2.2)
|
13
14
|
|
@@ -15,6 +16,7 @@ PLATFORMS
|
|
15
16
|
ruby
|
16
17
|
|
17
18
|
DEPENDENCIES
|
18
|
-
fakeweb
|
19
|
+
fakeweb (~> 1.3.0)
|
20
|
+
mocha
|
19
21
|
turn (~> 0.8.2)
|
20
22
|
zapt_in!
|
data/README.md
CHANGED
@@ -7,9 +7,9 @@ More information for API here:
|
|
7
7
|
http://zapt.in/pages/api
|
8
8
|
|
9
9
|
Project goals:
|
10
|
-
*
|
11
|
-
*
|
12
|
-
*
|
10
|
+
*Easy to use
|
11
|
+
*Flexible to configure
|
12
|
+
*No external dependencies
|
13
13
|
|
14
14
|
Installation
|
15
15
|
------------
|
@@ -19,13 +19,28 @@ Installation
|
|
19
19
|
Usage
|
20
20
|
-----
|
21
21
|
|
22
|
+
Case 1:
|
23
|
+
|
22
24
|
require "rubygems"
|
23
25
|
require "zapt_in"
|
24
26
|
|
25
|
-
client = ZaptIn::Client.new(:login => "login", :key => "Z_123")
|
26
|
-
url = client.shorten("http://google.com")
|
27
|
+
client = ZaptIn::Client.new(:login => "login", :key => "Z_123")
|
28
|
+
url = client.shorten("http://google.com")
|
27
29
|
url.short_url #=> "http://zapt.in/11jU"
|
28
30
|
|
31
|
+
Case 2:
|
32
|
+
|
33
|
+
require "rubygems"
|
34
|
+
require "zapt_in"
|
35
|
+
|
36
|
+
#This is useful to setup config at Rails initializer for example.
|
37
|
+
ZaptIn.setup do |client|
|
38
|
+
client.uri = "http://abr.io/api/links"
|
39
|
+
client.login = "login"
|
40
|
+
client.key = "key"
|
41
|
+
end
|
42
|
+
url = ZaptIn.shorten("http://google.com")
|
43
|
+
url.short_url #=> "http://abr.io/18VN"
|
29
44
|
|
30
45
|
Running the Tests
|
31
46
|
-----------------
|
@@ -36,7 +51,7 @@ Install development dependencies with:
|
|
36
51
|
|
37
52
|
To run the test suite:
|
38
53
|
|
39
|
-
$ rake
|
54
|
+
$ rake test
|
40
55
|
|
41
56
|
|
42
57
|
Contributing
|
data/lib/zapt_in/client.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
#Client proxy for Zapt.In or Abr.io API.
|
3
3
|
class ZaptIn::Client
|
4
4
|
|
5
|
-
|
5
|
+
attr_accessor :uri, :login, :key
|
6
6
|
|
7
7
|
DEFAULT_PARAMS = {:format => "xml", :version => "1.0"}
|
8
8
|
|
@@ -26,8 +26,8 @@ class ZaptIn::Client
|
|
26
26
|
return nil if long_url.nil? || long_url == ""
|
27
27
|
|
28
28
|
@uri = options.delete(:uri) || @uri
|
29
|
-
params = {:login =>
|
30
|
-
:key =>
|
29
|
+
params = {:login => options.delete(:login) || @login,
|
30
|
+
:key => options.delete(:key) || @key}.merge(DEFAULT_PARAMS)
|
31
31
|
params[:longUrl] = long_url
|
32
32
|
|
33
33
|
begin
|
data/lib/zapt_in/request.rb
CHANGED
@@ -10,10 +10,10 @@ class ZaptIn::Request
|
|
10
10
|
#
|
11
11
|
#Returns response body, a String.
|
12
12
|
def self.get(uri, parameters)
|
13
|
-
url = URI.parse(uri)
|
14
13
|
params = build_parameters(parameters)
|
15
14
|
|
16
15
|
begin
|
16
|
+
url = URI.parse(uri)
|
17
17
|
req = Net::HTTP::Get.new("#{url}?#{params}")
|
18
18
|
res = Net::HTTP.start(url.host, url.port) do |http|
|
19
19
|
http.request(req)
|
@@ -24,7 +24,7 @@ class ZaptIn::Request
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
-
|
27
|
+
private
|
28
28
|
|
29
29
|
#Receives a Hash.
|
30
30
|
#
|
data/lib/zapt_in/url.rb
CHANGED
@@ -17,16 +17,23 @@ class ZaptIn::Url
|
|
17
17
|
#
|
18
18
|
#See documentation at http://zapt.in/pages/api
|
19
19
|
def self.parse(xml_body)
|
20
|
+
validates_xml(xml_body)
|
21
|
+
|
20
22
|
doc = REXML::Document.new(xml_body)
|
21
23
|
|
22
|
-
attributes = {:status_code => doc.elements["
|
23
|
-
:error_message => doc.elements["
|
24
|
-
:error_code => doc.elements["
|
24
|
+
attributes = {:status_code => doc.elements["*/statusCode"].text,
|
25
|
+
:error_message => doc.elements["*/errorMessage"].text,
|
26
|
+
:error_code => doc.elements["*/errorCode"].text}
|
25
27
|
|
26
|
-
if (result = doc.elements["
|
28
|
+
if (result = doc.elements["*/results/nodeKeyVal"])
|
27
29
|
attributes.merge!({:short_url => result.elements["shortUrl"].text})
|
28
30
|
end
|
29
31
|
self.new(attributes)
|
30
32
|
end
|
31
33
|
|
34
|
+
def self.validates_xml(xml)
|
35
|
+
raise ZaptIn::Error.new("XML body cannot be blank") if xml.nil? || xml.empty?
|
36
|
+
raise ZaptIn::Error.new("Does not appear to be a valid ZaptIn or Abrio XML.\n\n#{xml}") unless xml.start_with?("<zaptin>") || xml.start_with?("<abrio>")
|
37
|
+
end
|
38
|
+
|
32
39
|
end
|
data/lib/zapt_in/version.rb
CHANGED
data/lib/zapt_in.rb
CHANGED
@@ -3,4 +3,29 @@ module ZaptIn
|
|
3
3
|
autoload :Request, "zapt_in/request"
|
4
4
|
autoload :Url, "zapt_in/url"
|
5
5
|
autoload :Error, "zapt_in/error"
|
6
|
+
|
7
|
+
# Useful to set ZaptIn client parameters.
|
8
|
+
#
|
9
|
+
# ZaptIn.setup do |client|
|
10
|
+
# client.uri = "http://abr.io/api/links"
|
11
|
+
# client.login = "login"
|
12
|
+
# client.key = "key"
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
def self.setup
|
16
|
+
yield(client) if block_given?
|
17
|
+
end
|
18
|
+
|
19
|
+
# Shortcut to ZaptIn::Client.shorten
|
20
|
+
def self.shorten(long_url, options = {})
|
21
|
+
client.shorten(long_url, options)
|
22
|
+
end
|
23
|
+
|
24
|
+
protected
|
25
|
+
|
26
|
+
#Returns ZaptIn::Client instance
|
27
|
+
def self.client
|
28
|
+
@@client ||= Client.new
|
29
|
+
end
|
30
|
+
|
6
31
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
module ZaptIn::Fixtures
|
2
|
+
|
3
|
+
module XmlResponse
|
4
|
+
|
5
|
+
def zaptin_success_xml
|
6
|
+
<<XML
|
7
|
+
<zaptin>
|
8
|
+
<errorCode>0</errorCode>
|
9
|
+
<errorMessage></errorMessage>
|
10
|
+
<results>
|
11
|
+
<nodeKeyVal>
|
12
|
+
<userHash>11jU</userHash>
|
13
|
+
<shortKeywordUrl></shortKeywordUrl>
|
14
|
+
<hash>9</hash>
|
15
|
+
<nodeKey>
|
16
|
+
<![CDATA[http://google.com]]>
|
17
|
+
</nodeKey>
|
18
|
+
<shortUrl>http://zapt.in/11jU</shortUrl>
|
19
|
+
</nodeKeyVal>
|
20
|
+
</results>
|
21
|
+
<statusCode>OK</statusCode>
|
22
|
+
</zaptin>
|
23
|
+
XML
|
24
|
+
end
|
25
|
+
|
26
|
+
def zaptin_error_xml
|
27
|
+
<<XML
|
28
|
+
<zaptin>
|
29
|
+
<errorCode>203</errorCode>
|
30
|
+
<errorMessage>You must be authenticated to access shorten.</errorMessage>
|
31
|
+
<statusCode>ERROR</statusCode>
|
32
|
+
</zaptin>
|
33
|
+
XML
|
34
|
+
end
|
35
|
+
|
36
|
+
def abrio_success_xml
|
37
|
+
<<XML
|
38
|
+
<abrio>
|
39
|
+
<errorCode>0</errorCode>
|
40
|
+
<errorMessage></errorMessage>
|
41
|
+
<results>
|
42
|
+
<nodeKeyVal>
|
43
|
+
<userHash>18VN</userHash>
|
44
|
+
<shortKeywordUrl></shortKeywordUrl>
|
45
|
+
<hash>3u</hash>
|
46
|
+
<nodeKey>
|
47
|
+
<![CDATA[http://google.com]]>
|
48
|
+
</nodeKey>
|
49
|
+
<shortUrl>http://abr.io/18VN</shortUrl>
|
50
|
+
</nodeKeyVal>
|
51
|
+
</results>
|
52
|
+
<statusCode>OK</statusCode>
|
53
|
+
</abrio>
|
54
|
+
XML
|
55
|
+
end
|
56
|
+
|
57
|
+
def abrio_error_xml
|
58
|
+
<<XML
|
59
|
+
<abrio>
|
60
|
+
<errorCode>203</errorCode>
|
61
|
+
<errorMessage>You must be authenticated to access shorten.</errorMessage>
|
62
|
+
<statusCode>ERROR</statusCode>
|
63
|
+
</abrio>
|
64
|
+
XML
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
|
2
3
|
require 'test/unit'
|
3
|
-
require '
|
4
|
-
require 'turn'
|
4
|
+
require 'mocha'
|
5
5
|
require 'fakeweb'
|
6
6
|
|
7
|
+
require 'turn'
|
8
|
+
|
7
9
|
FakeWeb.allow_net_connect = false
|
8
10
|
|
9
11
|
class Test::Unit::TestCase
|
@@ -16,3 +18,8 @@ class Test::Unit::TestCase
|
|
16
18
|
end
|
17
19
|
|
18
20
|
require 'zapt_in'
|
21
|
+
|
22
|
+
module ZaptIn::Fixtures
|
23
|
+
autoload :XmlResponse, "test/fixtures/xml_response"
|
24
|
+
end
|
25
|
+
|
data/test/zapt_in/client_test.rb
CHANGED
@@ -2,8 +2,8 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class ZaptIn::ClientTest < Test::Unit::TestCase
|
4
4
|
|
5
|
-
|
6
|
-
|
5
|
+
include ZaptIn::Fixtures::XmlResponse
|
6
|
+
DEFAULT_EXPECTED_PARAMS = {:longUrl => 'http://google.com', :version => '1.0', :format => 'xml', :key => 'Z_VALID', :login => 'rogleite'}
|
7
7
|
|
8
8
|
def test_default_configurations
|
9
9
|
assert_equal "http://zapt.in/api/links", ZaptIn::Client.new.uri
|
@@ -16,23 +16,22 @@ class ZaptIn::ClientTest < Test::Unit::TestCase
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_shorten_with_valid_value
|
19
|
-
client = ZaptIn::Client.new(:login => "rogleite", :key => "
|
19
|
+
client = ZaptIn::Client.new(:login => "rogleite", :key => "Z_VALID")
|
20
20
|
|
21
|
-
|
22
|
-
register_uri("http://zapt.in/api/links/shorten?version=1.0&login=rogleite&format=xml&key=Z_321&longUrl=http://google.com", :fixture => "shorten_success")
|
23
|
-
zapt_url = client.shorten("http://google.com")
|
21
|
+
ZaptIn::Request.expects(:get).with("#{client.uri}/shorten", DEFAULT_EXPECTED_PARAMS).returns(zaptin_success_xml)
|
24
22
|
|
23
|
+
zapt_url = client.shorten("http://google.com")
|
25
24
|
assert_not_nil zapt_url, "expects a ZaptIn::Url"
|
26
25
|
assert_equal "http://zapt.in/11jU", zapt_url.short_url
|
27
26
|
end
|
28
27
|
|
29
28
|
def test_shorten_options_parameter
|
30
|
-
client = ZaptIn::Client.new(:login => "rogleite", :key => "
|
29
|
+
client = ZaptIn::Client.new(:login => "rogleite", :key => "Z_VALID")
|
31
30
|
|
32
|
-
|
33
|
-
|
31
|
+
expected_params = DEFAULT_EXPECTED_PARAMS.merge({:key => 'Z_OPTION', :login => 'login'})
|
32
|
+
ZaptIn::Request.expects(:get).with("http://abr.io/api/links/shorten", expected_params).returns(abrio_success_xml)
|
34
33
|
|
35
|
-
zapt_url = client.shorten("http://google.com", :uri => "http://abr.io/api/links", :login => "login", :key => "
|
34
|
+
zapt_url = client.shorten("http://google.com", :uri => "http://abr.io/api/links", :login => "login", :key => "Z_OPTION")
|
36
35
|
assert_not_nil zapt_url, "expects a ZaptIn::Url"
|
37
36
|
assert_equal "OK", zapt_url.status_code
|
38
37
|
end
|
@@ -40,8 +39,8 @@ class ZaptIn::ClientTest < Test::Unit::TestCase
|
|
40
39
|
def test_shorten_failure
|
41
40
|
client = ZaptIn::Client.new(:login => "rogleite", :key => "Z_INVALID")
|
42
41
|
|
43
|
-
|
44
|
-
|
42
|
+
expected_params = DEFAULT_EXPECTED_PARAMS.merge({:key => 'Z_INVALID'})
|
43
|
+
ZaptIn::Request.expects(:get).with("#{client.uri}/shorten", expected_params).returns(zaptin_error_xml)
|
45
44
|
|
46
45
|
zapt_url = client.shorten("http://google.com")
|
47
46
|
assert_not_nil zapt_url, "expects a ZaptIn::Url"
|
@@ -50,13 +49,12 @@ class ZaptIn::ClientTest < Test::Unit::TestCase
|
|
50
49
|
end
|
51
50
|
|
52
51
|
def test_shorten_net_http_error
|
53
|
-
|
54
|
-
|
52
|
+
expected_params = DEFAULT_EXPECTED_PARAMS.merge({:key => 'Z_INVALID'})
|
53
|
+
ZaptIn::Request.expects(:get).with("http://nonexist/shorten", expected_params).raises(ZaptIn::Error, "Net fake error")
|
54
|
+
|
55
55
|
client = ZaptIn::Client.new(:login => "rogleite", :key => "Z_INVALID")
|
56
56
|
zapt_url = client.shorten("http://google.com", :uri => "http://nonexist")
|
57
57
|
|
58
|
-
FakeWeb.allow_net_connect = false
|
59
|
-
|
60
58
|
assert_not_nil zapt_url, "expects a ZaptIn::Url"
|
61
59
|
assert_equal "ERROR", zapt_url.status_code
|
62
60
|
assert_nil zapt_url.short_url
|
@@ -2,29 +2,23 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class ZaptIn::RequestTest < Test::Unit::TestCase
|
4
4
|
|
5
|
-
def test_build_parameters
|
6
|
-
params = {:format => "xml", :version => "1.0", :login => "login", :key => "key"}
|
7
|
-
assert_equal "version=1.0&login=login&format=xml&key=key", ZaptIn::Request.build_parameters(params)
|
8
|
-
end
|
9
|
-
|
10
5
|
def test_get_request
|
11
|
-
register_uri(
|
6
|
+
register_uri("http://zapt.in/api/links/shorten?param=value", :fixture => "shorten_success")
|
12
7
|
|
13
8
|
uri = "http://zapt.in/api/links/shorten"
|
14
|
-
params = {:
|
9
|
+
params = {:param => "value"}
|
15
10
|
|
16
11
|
response_body = ZaptIn::Request.get(uri, params)
|
17
|
-
assert_match
|
12
|
+
assert_match(/<zaptin>/, response_body, "Response should start with <zaptin>")
|
18
13
|
end
|
19
14
|
|
20
15
|
def test_get_invalid_request
|
21
|
-
FakeWeb.allow_net_connect = true
|
22
16
|
|
17
|
+
Net::HTTP.expects(:start).with("invalid.com", 80).raises(ArgumentError)
|
23
18
|
assert_raise ZaptIn::Error do
|
24
|
-
ZaptIn::Request.get("http://
|
19
|
+
ZaptIn::Request.get("http://invalid.com", {})
|
25
20
|
end
|
26
21
|
|
27
|
-
FakeWeb.allow_net_connect = false
|
28
22
|
end
|
29
23
|
|
30
24
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ZaptIn::UrlTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
include ZaptIn::Fixtures::XmlResponse
|
6
|
+
|
7
|
+
def assert_success_url(url, attrs)
|
8
|
+
assert_not_nil url
|
9
|
+
assert_equal "0", url.error_code
|
10
|
+
assert_equal "OK", url.status_code
|
11
|
+
assert_equal attrs[:short_url], url.short_url
|
12
|
+
end
|
13
|
+
|
14
|
+
def assert_error_url(url, code, message)
|
15
|
+
assert_not_nil url
|
16
|
+
assert_equal code, url.error_code
|
17
|
+
assert_equal message, url.error_message
|
18
|
+
assert_equal "ERROR", url.status_code
|
19
|
+
assert_equal nil, url.short_url
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_parse_zaptin_success_xml
|
23
|
+
url = ZaptIn::Url.parse(zaptin_success_xml)
|
24
|
+
assert_success_url url, :short_url => "http://zapt.in/11jU"
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_parse_zaptin_error_xml
|
28
|
+
url = ZaptIn::Url.parse(zaptin_error_xml)
|
29
|
+
assert_error_url url, "203", "You must be authenticated to access shorten."
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_parse_abrio_success_xml
|
33
|
+
url = ZaptIn::Url.parse(abrio_success_xml)
|
34
|
+
assert_success_url url, :short_url => "http://abr.io/18VN"
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_parse_abrio_error_xml
|
38
|
+
url = ZaptIn::Url.parse(abrio_error_xml)
|
39
|
+
assert_error_url url, "203", "You must be authenticated to access shorten."
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_parse_blank_xml
|
43
|
+
assert_raise ZaptIn::Error do
|
44
|
+
ZaptIn::Url.parse(nil)
|
45
|
+
end
|
46
|
+
assert_raise ZaptIn::Error do
|
47
|
+
ZaptIn::Url.parse("")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_parse_should_check_for_root_tags
|
52
|
+
assert_raise ZaptIn::Error do
|
53
|
+
ZaptIn::Url.parse("<h1>Some Error</h1>")
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ZaptInTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def test_setup
|
6
|
+
ZaptIn.setup do |client|
|
7
|
+
client.uri = "http://abr.io/api/links"
|
8
|
+
client.login = "login"
|
9
|
+
client.key = "key"
|
10
|
+
end
|
11
|
+
|
12
|
+
assert_equal "http://abr.io/api/links", ZaptIn.client.uri
|
13
|
+
assert_equal "login", ZaptIn.client.login
|
14
|
+
assert_equal "key", ZaptIn.client.key
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_shorten
|
18
|
+
client = mock() do
|
19
|
+
expects(:shorten).with("google.com", {}).returns("OK")
|
20
|
+
end
|
21
|
+
ZaptIn.expects(:client).returns(client)
|
22
|
+
|
23
|
+
result = ZaptIn.shorten("google.com")
|
24
|
+
assert_equal "OK", result
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/zapt_in.gemspec
CHANGED
@@ -15,7 +15,8 @@ Gem::Specification.new do |s|
|
|
15
15
|
|
16
16
|
#s.rubyforge_project = "zapt_in"
|
17
17
|
s.add_development_dependency "turn", "~> 0.8.2"
|
18
|
-
s.add_development_dependency "fakeweb", "~> 1.0
|
18
|
+
s.add_development_dependency "fakeweb", "~> 1.3.0"
|
19
|
+
s.add_development_dependency "mocha", "~> 0.9.12"
|
19
20
|
|
20
21
|
s.files = `git ls-files`.split("\n")
|
21
22
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zapt_in
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Roger Leite
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-06-
|
18
|
+
date: 2011-06-07 00:00:00 -03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -42,14 +42,30 @@ dependencies:
|
|
42
42
|
requirements:
|
43
43
|
- - ~>
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
hash:
|
45
|
+
hash: 27
|
46
46
|
segments:
|
47
47
|
- 1
|
48
|
+
- 3
|
48
49
|
- 0
|
49
|
-
|
50
|
-
version: 1.0.7
|
50
|
+
version: 1.3.0
|
51
51
|
type: :development
|
52
52
|
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: mocha
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 35
|
62
|
+
segments:
|
63
|
+
- 0
|
64
|
+
- 9
|
65
|
+
- 12
|
66
|
+
version: 0.9.12
|
67
|
+
type: :development
|
68
|
+
version_requirements: *id003
|
53
69
|
description: Client ruby para os encurtadores http://zapt.in e http://abr.io
|
54
70
|
email:
|
55
71
|
- roger.leite@abril.com.br
|
@@ -72,11 +88,13 @@ files:
|
|
72
88
|
- lib/zapt_in/request.rb
|
73
89
|
- lib/zapt_in/url.rb
|
74
90
|
- lib/zapt_in/version.rb
|
75
|
-
- test/fixtures/shorten_failure
|
76
91
|
- test/fixtures/shorten_success
|
92
|
+
- test/fixtures/xml_response.rb
|
77
93
|
- test/test_helper.rb
|
78
94
|
- test/zapt_in/client_test.rb
|
79
95
|
- test/zapt_in/request_test.rb
|
96
|
+
- test/zapt_in/url_test.rb
|
97
|
+
- test/zapt_in_test.rb
|
80
98
|
- zapt_in.gemspec
|
81
99
|
has_rdoc: true
|
82
100
|
homepage: ""
|
@@ -1,18 +0,0 @@
|
|
1
|
-
HTTP/1.1 200 OK
|
2
|
-
Server: nginx/0.7.67
|
3
|
-
Date: Mon, 06 Jun 2011 17:42:58 GMT
|
4
|
-
Content-Type: application/xml; charset=utf-8
|
5
|
-
Connection: keep-alive
|
6
|
-
X-Runtime: 12
|
7
|
-
Etag: "9cd7a5d7537c402e82dfc1612e7d2dea"
|
8
|
-
Cache-Control: private, max-age=0, must-revalidate
|
9
|
-
Content-Length: 153
|
10
|
-
X-Varnish: 247868969
|
11
|
-
Age: 0
|
12
|
-
Via: 1.1 varnish
|
13
|
-
|
14
|
-
<zaptin>
|
15
|
-
<errorCode>203</errorCode>
|
16
|
-
<errorMessage>You must be authenticated to access shorten.</errorMessage>
|
17
|
-
<statusCode>ERROR</statusCode>
|
18
|
-
</zaptin>
|