instapaper 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. data/{PostInstall.txt → .gemtest} +0 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +3 -0
  4. data/.simplecov +1 -0
  5. data/.yardopts +3 -0
  6. data/Gemfile +2 -0
  7. data/LICENSE.md +20 -0
  8. data/README.md +152 -0
  9. data/Rakefile +13 -4
  10. data/instapaper.gemspec +33 -0
  11. data/lib/faraday/response/raise_http_1xxx.rb +65 -0
  12. data/lib/instapaper.rb +26 -10
  13. data/lib/instapaper/authentication.rb +32 -0
  14. data/lib/instapaper/client.rb +43 -0
  15. data/lib/instapaper/client/account.rb +13 -0
  16. data/lib/instapaper/client/bookmark.rb +81 -0
  17. data/lib/instapaper/client/folder.rb +34 -0
  18. data/lib/instapaper/client/user.rb +14 -0
  19. data/lib/instapaper/configuration.rb +88 -0
  20. data/lib/instapaper/connection.rb +35 -0
  21. data/lib/instapaper/request.rb +22 -9
  22. data/lib/instapaper/version.rb +1 -31
  23. data/spec/faraday/response_spec.rb +22 -0
  24. data/spec/fixtures/access_token.qline +1 -0
  25. data/spec/fixtures/bookmarks_add.json +1 -0
  26. data/spec/fixtures/bookmarks_archive.json +1 -0
  27. data/spec/fixtures/bookmarks_get_text.txt +299 -0
  28. data/spec/fixtures/bookmarks_list.json +5 -0
  29. data/spec/fixtures/bookmarks_move.json +1 -0
  30. data/spec/fixtures/bookmarks_star.json +1 -0
  31. data/spec/fixtures/bookmarks_unarchive.json +1 -0
  32. data/spec/fixtures/bookmarks_unstar.json +1 -0
  33. data/spec/fixtures/bookmarks_update_read_progress.json +1 -0
  34. data/spec/fixtures/folders_add.json +1 -0
  35. data/spec/fixtures/folders_delete.json +1 -0
  36. data/spec/fixtures/folders_list.json +1 -0
  37. data/spec/fixtures/folders_set_order.json +1 -0
  38. data/spec/fixtures/verify_credentials.json +1 -0
  39. data/spec/instapaper/client/account_spec.rb +27 -0
  40. data/spec/instapaper/client/bookmark_spec.rb +234 -0
  41. data/spec/instapaper/client/folder_spec.rb +89 -0
  42. data/spec/instapaper/client/user_spec.rb +28 -0
  43. data/spec/instapaper/client_spec.rb +65 -0
  44. data/spec/instapaper_spec.rb +85 -0
  45. data/spec/spec_helper.rb +44 -0
  46. metadata +230 -99
  47. data/History.txt +0 -3
  48. data/Manifest.txt +0 -43
  49. data/README.rdoc +0 -73
  50. data/config/hoe.rb +0 -73
  51. data/config/requirements.rb +0 -15
  52. data/lib/instapaper/base.rb +0 -113
  53. data/lib/instapaper/constants.rb +0 -37
  54. data/lib/instapaper/exceptions.rb +0 -41
  55. data/lib/instapaper/protocol.rb +0 -47
  56. data/lib/instapaper/request/abstract_request.rb +0 -104
  57. data/lib/instapaper/request/add_url_request.rb +0 -68
  58. data/lib/instapaper/request/authentication_request.rb +0 -60
  59. data/lib/instapaper/request/request_error.rb +0 -34
  60. data/lib/instapaper/request/request_errors.rb +0 -41
  61. data/lib/instapaper/request/request_validation.rb +0 -34
  62. data/lib/instapaper/response.rb +0 -10
  63. data/lib/instapaper/response/abstract_response.rb +0 -38
  64. data/lib/instapaper/response/add_url_success_response.rb +0 -41
  65. data/lib/instapaper/response/authentication_invalid_response.rb +0 -40
  66. data/lib/instapaper/response/authentication_success_response.rb +0 -40
  67. data/lib/instapaper/response/bad_request_response.rb +0 -40
  68. data/lib/instapaper/response/response_builder.rb +0 -61
  69. data/lib/instapaper/response/service_error_response.rb +0 -40
  70. data/script/console +0 -10
  71. data/script/destroy +0 -14
  72. data/script/generate +0 -14
  73. data/script/txt2html +0 -82
  74. data/setup.rb +0 -1585
  75. data/tasks/deployment.rake +0 -34
  76. data/tasks/environment.rake +0 -7
  77. data/tasks/website.rake +0 -17
  78. data/test/test_auth.rb +0 -62
  79. data/test/test_error.rb +0 -81
  80. data/test/test_helper.rb +0 -2
  81. data/test/test_instapaper.rb +0 -9
  82. data/test/test_request.rb +0 -45
  83. data/website/index.html +0 -99
  84. data/website/index.txt +0 -69
  85. data/website/javascripts/rounded_corners_lite.inc.js +0 -285
  86. data/website/stylesheets/screen.css +0 -138
  87. data/website/template.html.erb +0 -48
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+
3
+ describe Instapaper do
4
+ after do
5
+ Instapaper.reset
6
+ end
7
+
8
+ describe '.respond_to?' do
9
+ it 'takes an optional include private argument' do
10
+ Instapaper.respond_to?(:client, true).should be_true
11
+ end
12
+ end
13
+
14
+ describe ".client" do
15
+ it "should be a Instapaper::Client" do
16
+ Instapaper.client.should be_a Instapaper::Client
17
+ end
18
+ end
19
+
20
+ describe ".adapter" do
21
+ it "should return the default adapter" do
22
+ Instapaper.adapter.should == Instapaper::Configuration::DEFAULT_ADAPTER
23
+ end
24
+ end
25
+
26
+ describe ".adapter=" do
27
+ it "should set the adapter" do
28
+ Instapaper.adapter = :typhoeus
29
+ Instapaper.adapter.should == :typhoeus
30
+ end
31
+ end
32
+
33
+ describe ".endpoint" do
34
+ it "should return the default endpoint" do
35
+ Instapaper.endpoint.should == Instapaper::Configuration::DEFAULT_ENDPOINT
36
+ end
37
+ end
38
+
39
+ describe ".endpoint=" do
40
+ it "should set the endpoint" do
41
+ Instapaper.endpoint = 'http://tumblr.com/'
42
+ Instapaper.endpoint.should == 'http://tumblr.com/'
43
+ end
44
+ end
45
+
46
+ describe ".user_agent" do
47
+ it "should return the default user agent" do
48
+ Instapaper.user_agent.should == Instapaper::Configuration::DEFAULT_USER_AGENT
49
+ end
50
+ end
51
+
52
+ describe ".user_agent=" do
53
+ it "should set the user_agent" do
54
+ Instapaper.user_agent = 'Custom User Agent'
55
+ Instapaper.user_agent.should == 'Custom User Agent'
56
+ end
57
+ end
58
+
59
+ describe ".version" do
60
+ it "should return the default version" do
61
+ Instapaper.version.should == Instapaper::Configuration::DEFAULT_VERSION
62
+ end
63
+ end
64
+
65
+ describe ".version=" do
66
+ it "should set the user_agent" do
67
+ Instapaper.version = '2'
68
+ Instapaper.version.should == '2'
69
+ end
70
+ end
71
+
72
+ describe ".configure" do
73
+
74
+ Instapaper::Configuration::VALID_OPTIONS_KEYS.each do |key|
75
+
76
+ it "should set the #{key}" do
77
+ Instapaper.configure do |config|
78
+ config.send("#{key}=", key)
79
+ Instapaper.send(key).should == key
80
+ end
81
+ end
82
+ end
83
+ end
84
+
85
+ end
@@ -0,0 +1,44 @@
1
+ require 'simplecov'
2
+ require File.expand_path('../../lib/instapaper', __FILE__)
3
+ require 'rspec'
4
+ require 'webmock/rspec'
5
+
6
+ def a_delete(path)
7
+ a_request(:delete, Instapaper.endpoint_with_prefix + path)
8
+ end
9
+
10
+ def a_get(path)
11
+ a_request(:get, Instapaper.endpoint_with_prefix + path)
12
+ end
13
+
14
+ def a_post(path)
15
+ a_request(:post, Instapaper.endpoint_with_prefix + path)
16
+ end
17
+
18
+ def a_put(path)
19
+ a_request(:put, Instapaper.endpoint_with_prefix + path)
20
+ end
21
+
22
+ def stub_delete(path)
23
+ stub_request(:delete, Instapaper.endpoint_with_prefix + path)
24
+ end
25
+
26
+ def stub_get(path)
27
+ stub_request(:get, Instapaper.endpoint_with_prefix + path)
28
+ end
29
+
30
+ def stub_post(path)
31
+ stub_request(:post, Instapaper.endpoint_with_prefix + path)
32
+ end
33
+
34
+ def stub_put(path)
35
+ stub_request(:put, Instapaper.endpoint_with_prefix + path)
36
+ end
37
+
38
+ def fixture_path
39
+ File.expand_path("../fixtures", __FILE__)
40
+ end
41
+
42
+ def fixture(file)
43
+ File.new(fixture_path + '/' + file)
44
+ end
metadata CHANGED
@@ -1,114 +1,245 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: instapaper
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
- - Douglas Willcocks
7
+ authors:
8
+ - Steve Agalloco
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2009-02-17 00:00:00 +00:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: hoe
12
+ date: 2011-12-02 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: &2156895140 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '0.9'
17
22
  type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.8.0
24
- version:
25
- description: A simple wrapper for the Instapaper API
26
- email:
27
- - douglas.willcocks@gmail.com
23
+ prerelease: false
24
+ version_requirements: *2156895140
25
+ - !ruby/object:Gem::Dependency
26
+ name: rdiscount
27
+ requirement: &2156894600 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '1.6'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *2156894600
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec
38
+ requirement: &2156893960 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: '2.7'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *2156893960
47
+ - !ruby/object:Gem::Dependency
48
+ name: simplecov
49
+ requirement: &2156893280 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.5'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *2156893280
58
+ - !ruby/object:Gem::Dependency
59
+ name: yard
60
+ requirement: &2156892800 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '0.7'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *2156892800
69
+ - !ruby/object:Gem::Dependency
70
+ name: json
71
+ requirement: &2156892340 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *2156892340
80
+ - !ruby/object:Gem::Dependency
81
+ name: webmock
82
+ requirement: &2156891880 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: '1.7'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *2156891880
91
+ - !ruby/object:Gem::Dependency
92
+ name: hashie
93
+ requirement: &2156891420 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 1.1.0
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: *2156891420
102
+ - !ruby/object:Gem::Dependency
103
+ name: faraday_middleware
104
+ requirement: &2156890960 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '0.7'
110
+ type: :runtime
111
+ prerelease: false
112
+ version_requirements: *2156890960
113
+ - !ruby/object:Gem::Dependency
114
+ name: multi_json
115
+ requirement: &2156890500 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ~>
119
+ - !ruby/object:Gem::Version
120
+ version: 1.0.3
121
+ type: :runtime
122
+ prerelease: false
123
+ version_requirements: *2156890500
124
+ - !ruby/object:Gem::Dependency
125
+ name: rash
126
+ requirement: &2156890040 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '0.3'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: *2156890040
135
+ - !ruby/object:Gem::Dependency
136
+ name: simple_oauth
137
+ requirement: &2156889580 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ version: '0.1'
143
+ type: :runtime
144
+ prerelease: false
145
+ version_requirements: *2156889580
146
+ description: Ruby Instapaper Client
147
+ email: steve.agalloco@gmail.com
28
148
  executables: []
29
-
30
149
  extensions: []
31
-
32
- extra_rdoc_files:
33
- - History.txt
34
- - Manifest.txt
35
- - PostInstall.txt
36
- - README.rdoc
37
- - website/index.txt
38
- files:
39
- - History.txt
40
- - Manifest.txt
41
- - PostInstall.txt
42
- - README.rdoc
150
+ extra_rdoc_files: []
151
+ files:
152
+ - .gemtest
153
+ - .gitignore
154
+ - .rspec
155
+ - .simplecov
156
+ - .yardopts
157
+ - Gemfile
158
+ - LICENSE.md
159
+ - README.md
43
160
  - Rakefile
44
- - config/hoe.rb
45
- - config/requirements.rb
161
+ - instapaper.gemspec
162
+ - lib/faraday/response/raise_http_1xxx.rb
46
163
  - lib/instapaper.rb
47
- - lib/instapaper/base.rb
48
- - lib/instapaper/constants.rb
49
- - lib/instapaper/exceptions.rb
50
- - lib/instapaper/protocol.rb
164
+ - lib/instapaper/authentication.rb
165
+ - lib/instapaper/client.rb
166
+ - lib/instapaper/client/account.rb
167
+ - lib/instapaper/client/bookmark.rb
168
+ - lib/instapaper/client/folder.rb
169
+ - lib/instapaper/client/user.rb
170
+ - lib/instapaper/configuration.rb
171
+ - lib/instapaper/connection.rb
51
172
  - lib/instapaper/request.rb
52
- - lib/instapaper/request/abstract_request.rb
53
- - lib/instapaper/request/add_url_request.rb
54
- - lib/instapaper/request/authentication_request.rb
55
- - lib/instapaper/request/request_error.rb
56
- - lib/instapaper/request/request_errors.rb
57
- - lib/instapaper/request/request_validation.rb
58
- - lib/instapaper/response.rb
59
- - lib/instapaper/response/abstract_response.rb
60
- - lib/instapaper/response/add_url_success_response.rb
61
- - lib/instapaper/response/authentication_invalid_response.rb
62
- - lib/instapaper/response/authentication_success_response.rb
63
- - lib/instapaper/response/bad_request_response.rb
64
- - lib/instapaper/response/response_builder.rb
65
- - lib/instapaper/response/service_error_response.rb
66
173
  - lib/instapaper/version.rb
67
- - script/console
68
- - script/destroy
69
- - script/generate
70
- - script/txt2html
71
- - setup.rb
72
- - tasks/deployment.rake
73
- - tasks/environment.rake
74
- - tasks/website.rake
75
- - test/test_helper.rb
76
- - test/test_instapaper.rb
77
- - website/index.html
78
- - website/index.txt
79
- - website/javascripts/rounded_corners_lite.inc.js
80
- - website/stylesheets/screen.css
81
- - website/template.html.erb
82
- has_rdoc: true
83
- homepage: http://instapaper.rubyforge.org
84
- post_install_message: ""
85
- rdoc_options:
86
- - --main
87
- - README.rdoc
88
- require_paths:
174
+ - spec/faraday/response_spec.rb
175
+ - spec/fixtures/access_token.qline
176
+ - spec/fixtures/bookmarks_add.json
177
+ - spec/fixtures/bookmarks_archive.json
178
+ - spec/fixtures/bookmarks_get_text.txt
179
+ - spec/fixtures/bookmarks_list.json
180
+ - spec/fixtures/bookmarks_move.json
181
+ - spec/fixtures/bookmarks_star.json
182
+ - spec/fixtures/bookmarks_unarchive.json
183
+ - spec/fixtures/bookmarks_unstar.json
184
+ - spec/fixtures/bookmarks_update_read_progress.json
185
+ - spec/fixtures/folders_add.json
186
+ - spec/fixtures/folders_delete.json
187
+ - spec/fixtures/folders_list.json
188
+ - spec/fixtures/folders_set_order.json
189
+ - spec/fixtures/verify_credentials.json
190
+ - spec/instapaper/client/account_spec.rb
191
+ - spec/instapaper/client/bookmark_spec.rb
192
+ - spec/instapaper/client/folder_spec.rb
193
+ - spec/instapaper/client/user_spec.rb
194
+ - spec/instapaper/client_spec.rb
195
+ - spec/instapaper_spec.rb
196
+ - spec/spec_helper.rb
197
+ homepage: https://github.com/spagalloco/instapaper
198
+ licenses: []
199
+ post_install_message:
200
+ rdoc_options: []
201
+ require_paths:
89
202
  - lib
90
- required_ruby_version: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: "0"
95
- version:
96
- required_rubygems_version: !ruby/object:Gem::Requirement
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- version: "0"
101
- version:
203
+ required_ruby_version: !ruby/object:Gem::Requirement
204
+ none: false
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ required_rubygems_version: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
102
215
  requirements: []
103
-
104
- rubyforge_project: instapaper
105
- rubygems_version: 1.3.1
216
+ rubyforge_project:
217
+ rubygems_version: 1.8.10
106
218
  signing_key:
107
- specification_version: 2
108
- summary: A simple wrapper for the Instapaper API
109
- test_files:
110
- - test/test_auth.rb
111
- - test/test_error.rb
112
- - test/test_helper.rb
113
- - test/test_instapaper.rb
114
- - test/test_request.rb
219
+ specification_version: 3
220
+ summary: Ruby Instapaper Client
221
+ test_files:
222
+ - spec/faraday/response_spec.rb
223
+ - spec/fixtures/access_token.qline
224
+ - spec/fixtures/bookmarks_add.json
225
+ - spec/fixtures/bookmarks_archive.json
226
+ - spec/fixtures/bookmarks_get_text.txt
227
+ - spec/fixtures/bookmarks_list.json
228
+ - spec/fixtures/bookmarks_move.json
229
+ - spec/fixtures/bookmarks_star.json
230
+ - spec/fixtures/bookmarks_unarchive.json
231
+ - spec/fixtures/bookmarks_unstar.json
232
+ - spec/fixtures/bookmarks_update_read_progress.json
233
+ - spec/fixtures/folders_add.json
234
+ - spec/fixtures/folders_delete.json
235
+ - spec/fixtures/folders_list.json
236
+ - spec/fixtures/folders_set_order.json
237
+ - spec/fixtures/verify_credentials.json
238
+ - spec/instapaper/client/account_spec.rb
239
+ - spec/instapaper/client/bookmark_spec.rb
240
+ - spec/instapaper/client/folder_spec.rb
241
+ - spec/instapaper/client/user_spec.rb
242
+ - spec/instapaper/client_spec.rb
243
+ - spec/instapaper_spec.rb
244
+ - spec/spec_helper.rb
245
+ has_rdoc: