pinboard 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 87e4728ac5ff02326e59e0e45c4fe16fc9d6ce5f
4
+ data.tar.gz: 14d81e89e3e115e54b28734c3aa7e5fcbc57f78b
5
+ SHA512:
6
+ metadata.gz: 29a4d7c10d0d505d206480eb8cdac5c2c50cb856fc06dae85d242ab24abb5b15e5e467195707da4238f6f88cb8af50f4d4ae80b6ec723aeda989d22a298719a9
7
+ data.tar.gz: 7400003c1fd60bdf8c0f070d42249040012da1f6de16b21989c62dd357922ea5d04d7e18b7146678df578aab14c06b0300c185eb1b2fcc9f6dab126ca2481873
data/Guardfile CHANGED
@@ -1,7 +1,10 @@
1
+ guard 'bundler' do
2
+ watch('Gemfile')
3
+ watch(%r|^.*\.gemspec|)
4
+ end
5
+
1
6
  guard 'rspec', :version => 2 do
2
7
  watch(%r{^spec/.+_spec\.rb$})
3
8
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
9
  watch('spec/helper.rb') { "spec" }
5
-
6
10
  end
7
-
data/README.md CHANGED
@@ -33,6 +33,13 @@ Passing arguments: (works only for the Client API Interface)
33
33
  pinboard.posts(:todt => 4.days.ago) #all posts up to 4 days ago
34
34
  ```
35
35
 
36
+ Adding new posts:
37
+
38
+ ```ruby
39
+ pinboard.add(:url => "http://example.com/", :description => 'Example post')
40
+ ```
41
+
42
+
36
43
  Future Examples (I don't need them, so I haven't written them)
37
44
  --------------------------------------------------------------
38
45
 
@@ -51,6 +58,8 @@ integration and support of the following rubies in rvm:
51
58
 
52
59
  [![Build Status](https://secure.travis-ci.org/ryw/pinboard.png)](http://travis-ci.org/ryw/pinboard)
53
60
 
61
+ [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/ryw/pinboard)
62
+
54
63
  Links
55
64
  -----
56
65
  * [Pinboard API Documentation](http://pinboard.in/api/)
@@ -64,7 +73,7 @@ If you find what looks like a bug:
64
73
  * If you don’t see anything, create an issue with information on how to reproduce it.
65
74
 
66
75
  If you want to contribute an enhancement or a fix:
67
-
76
+
68
77
  * Fork the [project on github](http://github.com/ryw/pinboard).
69
78
  * Make your changes with specs.
70
79
  * Commit the changes without messing with the Rakefile, VERSION, or history.
@@ -1,6 +1,8 @@
1
1
  require 'httparty'
2
2
 
3
3
  module Pinboard
4
+ Error = Class.new(StandardError)
5
+
4
6
  class Client
5
7
  include HTTParty
6
8
  base_uri 'api.pinboard.in:443/v1'
@@ -19,5 +21,32 @@ module Pinboard
19
21
  posts = [posts] if posts.class != Array
20
22
  posts.map { |p| Post.new(Util.symbolize_keys(p)) }
21
23
  end
24
+
25
+ def add(params={})
26
+ options = {}
27
+ options[:basic_auth] = @auth
28
+
29
+ # Pinboard expects multiple tags=foo,bar separated by comma instead of tag=foo&tag=bar
30
+ params[:tags] = Array(params[:tags]).join(',') if params[:tags]
31
+
32
+ # Pinboard expects replace, shared and toread as yes/no instead of true/false
33
+ [:replace, :shared, :toread].each do |boolean|
34
+ params[boolean] = params[boolean] ? 'yes' : 'no' if params.has_key?(boolean)
35
+ end
36
+
37
+ options[:query] = params
38
+ result_code = self.class.post('/posts/add', options).parsed_response["result"]["code"]
39
+
40
+ raise Error.new(result_code) if result_code != "done"
41
+ end
42
+
43
+ def delete(params={})
44
+ options = {}
45
+ options[:basic_auth] = @auth
46
+ options[:query] = params
47
+ result_code = self.class.get('/posts/delete', options).parsed_response["result"]["code"]
48
+
49
+ raise Error.new(result_code) if result_code != "done"
50
+ end
22
51
  end
23
52
  end
@@ -1,12 +1,12 @@
1
1
  module Pinboard
2
- class Post < Struct.new(:href, :description, :tag, :time)
2
+ class Post < Struct.new(:href, :description, :extended, :tag, :time, :replace, :shared, :toread)
3
3
  def self.all(options={})
4
4
  client = Pinboard::Client.new(options)
5
5
  posts = client.class.get('/posts/all',
6
6
  :basic_auth => options)['posts']['post']
7
7
  posts.map { |p| Post.new(Util.symbolize_keys(p)) }
8
8
  end
9
-
9
+
10
10
  def initialize(attributes={})
11
11
  self.time = Util.parse_time(attributes.delete(:time))
12
12
  self.tag = attributes.delete(:tag).split(" ")
@@ -4,14 +4,15 @@ Gem::Specification.new do |s|
4
4
  s.add_development_dependency 'rspec', '~> 2.6'
5
5
  s.add_development_dependency 'webmock', '~> 1.6'
6
6
  s.add_development_dependency 'guard-rspec', '~> 0.5'
7
- if RUBY_PLATFORM =~ /darwin/
8
- s.add_development_dependency "growl_notify"
9
- s.add_development_dependency "rb-fsevent"
10
- end
11
-
7
+ s.add_development_dependency 'guard-bundler'
8
+ s.add_development_dependency 'libnotify'
9
+ s.add_development_dependency 'rb-inotify'
10
+ s.add_development_dependency 'rb-fsevent'
11
+ s.add_development_dependency 'terminal-notifier-guard'
12
+
12
13
  s.add_runtime_dependency 'httparty', '= 0.7.8'
13
14
  s.name = 'pinboard'
14
- s.version = '0.0.4'
15
+ s.version = '0.0.5'
15
16
  s.date = '2012-05-08'
16
17
  s.summary = "Ruby wrapper for the Pinboard API"
17
18
  s.description = "Ruby wrapper for the Pinboard API"
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <result code="done" />
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <result code="done" />
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <result code="missing description"/>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <result code="missing url"/>
@@ -3,7 +3,7 @@
3
3
  <post href="http://foo.com/"
4
4
  time="2011-07-26T17:52:04Z"
5
5
  description="Foo!"
6
- extended=""
6
+ extended="long description Foo"
7
7
  tag="foo bar"
8
8
  hash="0c85c54332a588d18a85e963257e8fbc"
9
9
  meta="5cea9129d6a4f10e4790cc8665c48423"
@@ -12,7 +12,7 @@
12
12
  <post href="http://bar.com/"
13
13
  time="2011-07-26T17:52:04Z"
14
14
  description="Bar!"
15
- extended=""
15
+ extended="long description Bar"
16
16
  tag="foo bar"
17
17
  hash="0c85c54332a588d18a85e963257e8fbc"
18
18
  meta="5cea9129d6a4f10e4790cc8665c48423"
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <result code="item not found"/>
@@ -12,8 +12,15 @@ def a_get(path)
12
12
  end
13
13
 
14
14
  def stub_get(path)
15
- uri = "https://#{auth_params[:username]}:#{auth_params[:password]}@api.pinboard.in/v1/#{path}"
16
- stub_request(:get, uri)
15
+ stub_request(:get, uri(path))
16
+ end
17
+
18
+ def stub_post(path)
19
+ stub_request(:post, uri(path))
20
+ end
21
+
22
+ def uri(path)
23
+ "https://#{auth_params[:username]}:#{auth_params[:password]}@api.pinboard.in/v1/#{path}"
17
24
  end
18
25
 
19
26
  def fixture_path
@@ -17,12 +17,16 @@ describe Pinboard::Client do
17
17
  Pinboard::Post.new(
18
18
  :href => "http://foo.com/",
19
19
  :description => "Foo!",
20
+ :extended => "long description Foo",
20
21
  :tag => 'foo bar',
22
+ :toread => 'yes',
21
23
  :time => Time.parse("2011-07-26T17:52:04Z")),
22
24
  Pinboard::Post.new(
23
25
  :href => "http://bar.com/",
24
26
  :description => "Bar!",
27
+ :extended => "long description Bar",
25
28
  :tag => 'foo bar',
29
+ :toread => 'yes',
26
30
  :time => Time.parse("2011-07-26T17:52:04Z")),
27
31
  ]
28
32
 
@@ -54,4 +58,181 @@ describe Pinboard::Client do
54
58
  end
55
59
  end
56
60
  end
61
+
62
+ describe "#delete" do
63
+ let(:client) { Pinboard::Client.new(auth_params) }
64
+
65
+ context "when there are many posts" do
66
+ before do
67
+ stub_get("posts/delete?url=http://bar.com/").
68
+ to_return(:body => fixture("deleted.xml"),
69
+ :headers => { 'content-type' => 'text/xml' })
70
+ end
71
+
72
+ it "succeeds without raising an error" do
73
+ expect{client.delete(:url => "http://bar.com/")}.to_not raise_error
74
+ end
75
+ end
76
+
77
+ context "when specified url is not found" do
78
+ before do
79
+ stub_get("posts/delete?url=http://baz.com/").
80
+ to_return(:body => fixture("not_found.xml"),
81
+ :headers => { 'content-type' => 'text/xml' })
82
+ end
83
+
84
+ it "throws an error" do
85
+ expect{client.delete(:url => "http://baz.com/")}.to raise_error(Pinboard::Error, 'item not found')
86
+ end
87
+ end
88
+ end
89
+
90
+ describe "#add" do
91
+ let(:client) do
92
+ Pinboard::Client.new(auth_params)
93
+ end
94
+
95
+ context "where the post does not exist yet" do
96
+
97
+ context 'and the url is missing' do
98
+ before do
99
+ stub_post("posts/add").
100
+ to_return(:body => fixture("missing_url.xml"),
101
+ :headers => { 'content-type' => 'text/xml' })
102
+ end
103
+
104
+ it "throws an error" do
105
+ expect { client.add(nil) }.to raise_error
106
+ end
107
+ end
108
+
109
+ context 'and the description is missing' do
110
+ before do
111
+ stub_post("posts/add?url=http://baz.com/").
112
+ to_return(:body => fixture("missing_description.xml"),
113
+ :headers => { 'content-type' => 'text/xml' })
114
+ end
115
+
116
+ it "throws an error" do
117
+ expect { client.add(:url => "http://baz.com/") }.to raise_error(Pinboard::Error, 'missing description')
118
+ end
119
+ end
120
+
121
+ context 'and the description is present' do
122
+ before do
123
+ stub_post("posts/add?url=http://baz.com/&description=title").
124
+ to_return(:body => fixture("created.xml"),
125
+ :headers => { 'content-type' => 'text/xml' })
126
+ end
127
+
128
+ it "succeeds without raising an exception" do
129
+ expect {client.add(:url => "http://baz.com/", :description => 'title')}.to_not raise_error
130
+ end
131
+ end
132
+
133
+ context 'and toread is set to true' do
134
+ before do
135
+ stub_post("posts/add?url=http://baz.com/&description=title&toread=yes").
136
+ to_return(:body => fixture("created.xml"),
137
+ :headers => { 'content-type' => 'text/xml' })
138
+ end
139
+
140
+ it "succeeds without raising an exception" do
141
+ expect {client.add(:url => "http://baz.com/", :description => 'title', :toread => true)}.to_not raise_error
142
+ end
143
+ end
144
+
145
+ context 'and toread is set to false' do
146
+ before do
147
+ stub_post("posts/add?url=http://baz.com/&description=title&toread=no").
148
+ to_return(:body => fixture("created.xml"),
149
+ :headers => { 'content-type' => 'text/xml' })
150
+ end
151
+
152
+ it "succeeds without raising an exception" do
153
+ expect {client.add(:url => "http://baz.com/", :description => 'title', :toread => false)}.to_not raise_error
154
+ end
155
+ end
156
+
157
+ context 'and replace is set to true' do
158
+ before do
159
+ stub_post("posts/add?url=http://baz.com/&description=title&replace=yes").
160
+ to_return(:body => fixture("created.xml"),
161
+ :headers => { 'content-type' => 'text/xml' })
162
+ end
163
+
164
+ it "succeeds without raising an exception" do
165
+ expect {client.add(:url => "http://baz.com/", :description => 'title', :replace => true)}.to_not raise_error
166
+ end
167
+ end
168
+
169
+ context 'and replace is set to false' do
170
+ before do
171
+ stub_post("posts/add?url=http://baz.com/&description=title&replace=no").
172
+ to_return(:body => fixture("created.xml"),
173
+ :headers => { 'content-type' => 'text/xml' })
174
+ end
175
+
176
+ it "succeeds without raising an exception" do
177
+ expect {client.add(:url => "http://baz.com/", :description => 'title', :replace => false)}.to_not raise_error
178
+ end
179
+ end
180
+
181
+ context 'and shared is set to true' do
182
+ before do
183
+ stub_post("posts/add?url=http://baz.com/&description=title&shared=yes").
184
+ to_return(:body => fixture("created.xml"),
185
+ :headers => { 'content-type' => 'text/xml' })
186
+ end
187
+
188
+ it "succeeds without raising an exception" do
189
+ expect {client.add(:url => "http://baz.com/", :description => 'title', :shared => true)}.to_not raise_error
190
+ end
191
+ end
192
+
193
+ context 'and shared is set to false' do
194
+ before do
195
+ stub_post("posts/add?url=http://baz.com/&description=title&shared=no").
196
+ to_return(:body => fixture("created.xml"),
197
+ :headers => { 'content-type' => 'text/xml' })
198
+ end
199
+
200
+ it "succeeds without raising an exception" do
201
+ expect {client.add(:url => "http://baz.com/", :description => 'title', :shared => false)}.to_not raise_error
202
+ end
203
+ end
204
+
205
+ context 'and replace, shared, and toread are all set to true' do
206
+ before do
207
+ stub_post("posts/add?url=http://baz.com/&description=title&replace=yes&shared=yes&toread=yes").
208
+ to_return(:body => fixture("created.xml"),
209
+ :headers => { 'content-type' => 'text/xml' })
210
+ end
211
+
212
+ it "succeeds without raising an exception" do
213
+ expect {client.add(:url => "http://baz.com/",
214
+ :description => 'title',
215
+ :replace => true,
216
+ :shared => true,
217
+ :toread => true)}.to_not raise_error
218
+ end
219
+ end
220
+
221
+ context 'and replace, shared, and toread are all set to false' do
222
+ before do
223
+ stub_post("posts/add?url=http://baz.com/&description=title&replace=no&shared=no&toread=no").
224
+ to_return(:body => fixture("created.xml"),
225
+ :headers => { 'content-type' => 'text/xml' })
226
+ end
227
+
228
+ it "succeeds without raising an exception" do
229
+ expect {client.add(:url => "http://baz.com/",
230
+ :description => 'title',
231
+ :replace => false,
232
+ :shared => false,
233
+ :toread => false)}.to_not raise_error
234
+ end
235
+ end
236
+ end
237
+ end
57
238
  end
@@ -19,6 +19,7 @@ describe Pinboard::Post do
19
19
  post = posts.first
20
20
  post.href.should == "http://foo.com/"
21
21
  post.description.should == "Foo!"
22
+ post.extended.should == "long description Foo"
22
23
  post.tag.should == ["foo", "bar"]
23
24
  post.time.should == Time.parse('Tue Jul 26 17:52:04 UTC 2011')
24
25
  end
@@ -29,6 +30,7 @@ describe Pinboard::Post do
29
30
  Pinboard::Post.new(
30
31
  :href => 'http://foo.com',
31
32
  :description => 'Foo!',
33
+ :extended => "long description Foo",
32
34
  :tag => 'rspec pinboard',
33
35
  :time => Time.mktime(2011, 1, 1))
34
36
  }
@@ -36,6 +38,7 @@ describe Pinboard::Post do
36
38
  it "initializes attributes" do
37
39
  post.href.should == 'http://foo.com'
38
40
  post.description.should == 'Foo!'
41
+ post.extended.should == "long description Foo"
39
42
  post.tag.should == %w{rspec pinboard}
40
43
  post.time.should == Time.mktime(2011, 1, 1)
41
44
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pinboard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
4
+ version: 0.0.5
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ryan Waker
@@ -13,92 +12,158 @@ date: 2012-05-08 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: yard
16
- requirement: &70278122833360 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0.7'
22
20
  type: :development
23
21
  prerelease: false
24
- version_requirements: *70278122833360
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.7'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rake
27
- requirement: &70278122832800 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
31
  - - ~>
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0.9'
33
34
  type: :development
34
35
  prerelease: false
35
- version_requirements: *70278122832800
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '0.9'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: rspec
38
- requirement: &70278122832180 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
45
  - - ~>
42
46
  - !ruby/object:Gem::Version
43
47
  version: '2.6'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70278122832180
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '2.6'
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: webmock
49
- requirement: &70278122831160 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '1.6'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *70278122831160
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.6'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: guard-rspec
60
- requirement: &70278122829380 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: '0.5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
62
79
  requirements:
63
80
  - - ~>
64
81
  - !ruby/object:Gem::Version
65
82
  version: '0.5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard-bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: libnotify
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
66
104
  type: :development
67
105
  prerelease: false
68
- version_requirements: *70278122829380
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
69
111
  - !ruby/object:Gem::Dependency
70
- name: growl_notify
71
- requirement: &70278122828800 !ruby/object:Gem::Requirement
72
- none: false
112
+ name: rb-inotify
113
+ requirement: !ruby/object:Gem::Requirement
73
114
  requirements:
74
- - - ! '>='
115
+ - - '>='
75
116
  - !ruby/object:Gem::Version
76
117
  version: '0'
77
118
  type: :development
78
119
  prerelease: false
79
- version_requirements: *70278122828800
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
80
125
  - !ruby/object:Gem::Dependency
81
126
  name: rb-fsevent
82
- requirement: &70278122827920 !ruby/object:Gem::Requirement
83
- none: false
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: terminal-notifier-guard
141
+ requirement: !ruby/object:Gem::Requirement
84
142
  requirements:
85
- - - ! '>='
143
+ - - '>='
86
144
  - !ruby/object:Gem::Version
87
145
  version: '0'
88
146
  type: :development
89
147
  prerelease: false
90
- version_requirements: *70278122827920
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
91
153
  - !ruby/object:Gem::Dependency
92
154
  name: httparty
93
- requirement: &70278122820580 !ruby/object:Gem::Requirement
94
- none: false
155
+ requirement: !ruby/object:Gem::Requirement
95
156
  requirements:
96
- - - =
157
+ - - '='
97
158
  - !ruby/object:Gem::Version
98
159
  version: 0.7.8
99
160
  type: :runtime
100
161
  prerelease: false
101
- version_requirements: *70278122820580
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 0.7.8
102
167
  description: Ruby wrapper for the Pinboard API
103
168
  email: ry@anotherventure.com
104
169
  executables: []
@@ -119,8 +184,13 @@ files:
119
184
  - lib/pinboard/post.rb
120
185
  - lib/pinboard/util.rb
121
186
  - pinboard.gemspec
187
+ - spec/fixtures/created.xml
188
+ - spec/fixtures/deleted.xml
189
+ - spec/fixtures/missing_description.xml
190
+ - spec/fixtures/missing_url.xml
122
191
  - spec/fixtures/multiple_posts.xml
123
192
  - spec/fixtures/no_posts.xml
193
+ - spec/fixtures/not_found.xml
124
194
  - spec/fixtures/single_post.xml
125
195
  - spec/helper.rb
126
196
  - spec/pinboard/client_spec.rb
@@ -128,31 +198,35 @@ files:
128
198
  - spec/pinboard_spec.rb
129
199
  homepage: http://github.com/ryw/pinboard
130
200
  licenses: []
201
+ metadata: {}
131
202
  post_install_message:
132
203
  rdoc_options: []
133
204
  require_paths:
134
205
  - lib
135
206
  required_ruby_version: !ruby/object:Gem::Requirement
136
- none: false
137
207
  requirements:
138
- - - ! '>='
208
+ - - '>='
139
209
  - !ruby/object:Gem::Version
140
210
  version: '0'
141
211
  required_rubygems_version: !ruby/object:Gem::Requirement
142
- none: false
143
212
  requirements:
144
- - - ! '>='
213
+ - - '>='
145
214
  - !ruby/object:Gem::Version
146
215
  version: 1.3.6
147
216
  requirements: []
148
217
  rubyforge_project:
149
- rubygems_version: 1.8.10
218
+ rubygems_version: 2.0.0
150
219
  signing_key:
151
- specification_version: 3
220
+ specification_version: 4
152
221
  summary: Ruby wrapper for the Pinboard API
153
222
  test_files:
223
+ - spec/fixtures/created.xml
224
+ - spec/fixtures/deleted.xml
225
+ - spec/fixtures/missing_description.xml
226
+ - spec/fixtures/missing_url.xml
154
227
  - spec/fixtures/multiple_posts.xml
155
228
  - spec/fixtures/no_posts.xml
229
+ - spec/fixtures/not_found.xml
156
230
  - spec/fixtures/single_post.xml
157
231
  - spec/helper.rb
158
232
  - spec/pinboard/client_spec.rb