pixy 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,22 +1,24 @@
1
- # Pixy
2
-
3
- [![Build Status](https://secure.travis-ci.org/NARKOZ/pixy.png)](http://travis-ci.org/NARKOZ/pixy)
1
+ # Pixy [![Build Status](https://secure.travis-ci.org/NARKOZ/pixy.png)](http://travis-ci.org/NARKOZ/pixy)
4
2
 
5
3
  Pixy is an API wrapper for Pixiv url shortener - [p.tl](http://p.tl/)
6
4
 
7
5
  ## Installation
8
6
 
9
- ```ruby
10
- gem 'pixy'
11
- # gem install pixy
7
+ ```sh
8
+ gem install pixy
12
9
  ```
13
10
 
14
11
  ## Usage
15
12
 
13
+ Get an API key here: http://p.tl/key_create.php
14
+
16
15
  ```ruby
17
16
  Pixy.shorten!(API_KEY, 'https://github.com/narkoz/pixy')
18
17
  # => "http://p.tl/Us9R"
19
18
 
19
+ Pixy.stats API_KEY
20
+ # => {:calls=>12, :limit=>988}
21
+
20
22
  pixy = Pixy.shorten(API_KEY, 'https://github.com/narkoz/pixy')
21
23
  # => #<Pixy::Shorten:0x0000010201bde8 @status="ok", @long_url="https://github.com/narkoz/pixy", @short_url="http://p.tl/Us9R", @counter=20>
22
24
 
@@ -15,4 +15,12 @@ module Pixy
15
15
  def shorten!(key=nil, url='')
16
16
  Pixy.shorten(key, url).short_url
17
17
  end
18
+
19
+ def stats(key=nil, url='^')
20
+ pixy = Pixy.shorten(key, url)
21
+ {
22
+ :calls => pixy.counter,
23
+ :limit => 1000 - pixy.counter
24
+ }
25
+ end
18
26
  end
@@ -4,16 +4,16 @@ module Pixy
4
4
  attr_accessor :status, :long_url, :short_url, :counter
5
5
 
6
6
  def initialize(key, url)
7
- uri = URI "#{API_URL}?key=#{key}&url=#{escape_url(url)}"
7
+ uri = URI "#{API_URL}?key=#{key}&url=#{escape_url escape_url(url)}"
8
8
  response = Net::HTTP.get_response(uri)
9
9
  result = JSON.parse(response.body)
10
10
 
11
11
  if response.code.to_i == 200
12
- self.status = result['status']
13
- self.long_url = result['long_url']
14
- self.short_url = result['short_url']
15
- self.counter = result['counter']
16
- raise_exception self.status unless self.status == 'ok'
12
+ @status = result['status']
13
+ @long_url = result['long_url']
14
+ @short_url = result['short_url']
15
+ @counter = result['counter']
16
+ raise_exception @status unless @status == 'ok'
17
17
  else
18
18
  raise UnknownError, "Server responded with code #{response.code}"
19
19
  end
@@ -39,7 +39,7 @@ module Pixy
39
39
  end
40
40
 
41
41
  def escape_url(url)
42
- URI.escape(url, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
42
+ URI.encode_www_form_component(url).gsub('+', '%20')
43
43
  end
44
44
  end
45
45
  end
@@ -1,3 +1,3 @@
1
1
  module Pixy
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -5,12 +5,12 @@ require 'pixy'
5
5
  FakeWeb.allow_net_connect = false
6
6
 
7
7
  def escape_url(url)
8
- URI.escape(url, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
8
+ URI.encode_www_form_component(url).gsub('+', '%20')
9
9
  end
10
10
 
11
11
  API_URL = 'http://p.tl/api/api_simple.php'
12
- url_to_shorten = escape_url("https://github.com/narkoz/pixy")
13
- invalid_url_to_shorten = escape_url("^_^")
12
+ url_to_shorten = escape_url escape_url("https://github.com/narkoz/pixy")
13
+ invalid_url_to_shorten = escape_url escape_url("^_^")
14
14
 
15
15
  def load_fixture(name)
16
16
  File.open(File.dirname(__FILE__) + "/fixtures/#{name}.json").read
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pixy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-19 00:00:00.000000000 Z
12
+ date: 2011-12-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &2164331840 !ruby/object:Gem::Requirement
16
+ requirement: &2168716640 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2164331840
24
+ version_requirements: *2168716640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &2164331040 !ruby/object:Gem::Requirement
27
+ requirement: &2168716180 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2164331040
35
+ version_requirements: *2168716180
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &2164330600 !ruby/object:Gem::Requirement
38
+ requirement: &2168715720 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2164330600
46
+ version_requirements: *2168715720
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: fakeweb
49
- requirement: &2164329980 !ruby/object:Gem::Requirement
49
+ requirement: &2168715240 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2164329980
57
+ version_requirements: *2168715240
58
58
  description: Pixy is an API wrapper for Pixiv url shortener - p.tl
59
59
  email:
60
60
  - mail@narkoz.me
@@ -92,12 +92,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
92
  - - ! '>='
93
93
  - !ruby/object:Gem::Version
94
94
  version: '0'
95
+ segments:
96
+ - 0
97
+ hash: 1002057726999351752
95
98
  required_rubygems_version: !ruby/object:Gem::Requirement
96
99
  none: false
97
100
  requirements:
98
101
  - - ! '>='
99
102
  - !ruby/object:Gem::Version
100
103
  version: '0'
104
+ segments:
105
+ - 0
106
+ hash: 1002057726999351752
101
107
  requirements: []
102
108
  rubyforge_project:
103
109
  rubygems_version: 1.8.12