pinboard_rb 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ module Pinboard
2
+ class InvalidCredentialsError < StandardError; end
3
+ end
@@ -0,0 +1,48 @@
1
+ require 'httparty'
2
+
3
+ module Pinboard
4
+ class Request
5
+ include HTTParty
6
+
7
+ def initialize(username, password)
8
+ self.class.basic_auth username, password
9
+ end
10
+
11
+ def req
12
+ @params ||= { }
13
+ @params.merge({ :format => 'json' })
14
+
15
+ path = @calls.join('/')
16
+ @calls = []
17
+
18
+ response = self.class.get("https://api.pinboard.in/v1/#{path}", :query => @params)
19
+ parsed_response = response.parsed_response
20
+
21
+ if parsed_response.kind_of?(String) && parsed_response.index('401 Forbidden')
22
+ raise InvalidCredentialsError
23
+ end
24
+
25
+ parsed_response
26
+ end
27
+
28
+ def clear
29
+ @calls = []
30
+ return
31
+ end
32
+
33
+ private
34
+ def method_missing(name, *args, &block)
35
+ @calls ||= []
36
+
37
+ return self if name == :clear || name == :req
38
+
39
+ if name != :params
40
+ @calls.push(name)
41
+ else
42
+ @params = args[0]
43
+ end
44
+
45
+ self
46
+ end
47
+ end
48
+ end
data/lib/pinboard.rb CHANGED
@@ -1,33 +1,8 @@
1
- require 'httparty'
1
+ require 'pinboard/request'
2
+ require 'pinboard/exceptions'
2
3
 
3
- class Pinboard
4
- include HTTParty
5
-
6
- def initialize(username, password)
7
- self.class.basic_auth username, password
8
- end
9
-
10
- def get
11
- @params ||= {}
12
- @params.merge({:format => 'json'})
13
-
14
- path = @calls.join('/')
15
- @calls = []
16
-
17
- self.class.get("https://api.pinboard.in/v1/#{path}", :query => @params).inspect
18
- end
19
-
20
-
21
- private
22
- def method_missing(name, *args, &block)
23
- @calls ||= []
24
-
25
- if name != :params
26
- @calls.push(name)
27
- else
28
- @params = args[0]
29
- end
30
-
31
- self
4
+ module Pinboard
5
+ def self.new(username, password)
6
+ Pinboard::Request.new(username, password)
32
7
  end
33
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinboard_rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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: 2012-06-19 00:00:00.000000000 Z
12
+ date: 2012-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70163374516300 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 2.10.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70163374516300
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.10.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: webmock
27
- requirement: &70163374515580 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 1.8.7
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70163374515580
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.8.7
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: travis-lint
38
- requirement: &70163374514900 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,31 @@ dependencies:
43
53
  version: 1.4.0
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70163374514900
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.4.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: nyan-cat-formatter
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.0.6
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.0.6
47
78
  - !ruby/object:Gem::Dependency
48
79
  name: httparty
49
- requirement: &70163374514340 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
50
81
  none: false
51
82
  requirements:
52
83
  - - ~>
@@ -54,13 +85,20 @@ dependencies:
54
85
  version: 0.8.3
55
86
  type: :runtime
56
87
  prerelease: false
57
- version_requirements: *70163374514340
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 0.8.3
58
94
  description: A thin wrapper around Pinboard API V1
59
95
  email: cs.lew.1111@gmail.com
60
96
  executables: []
61
97
  extensions: []
62
98
  extra_rdoc_files: []
63
99
  files:
100
+ - lib/pinboard/exceptions.rb
101
+ - lib/pinboard/request.rb
64
102
  - lib/pinboard.rb
65
103
  homepage: http://github.com/cslew/pinboard_rb
66
104
  licenses: []
@@ -82,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
120
  version: '0'
83
121
  requirements: []
84
122
  rubyforge_project: pinboard_rb
85
- rubygems_version: 1.8.16
123
+ rubygems_version: 1.8.24
86
124
  signing_key:
87
125
  specification_version: 3
88
126
  summary: Pinboard for Ruby