pinboard_rb 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.
@@ -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