pinboard 0.0.4 → 0.0.5

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,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