instapaper 0.1.0 → 0.2.0

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.
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: