delicious 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +7 -0
  2. data/delicious.gemspec +28 -0
  3. data/lib/delicious.rb +39 -0
  4. data/lib/delicious/api_model.rb +26 -0
  5. data/lib/delicious/bookmarks/api.rb +15 -0
  6. data/lib/delicious/bookmarks/methods/all.rb +112 -0
  7. data/lib/delicious/bookmarks/methods/create.rb +57 -0
  8. data/lib/delicious/bookmarks/methods/delete.rb +23 -0
  9. data/lib/delicious/bundle.rb +43 -0
  10. data/lib/delicious/bundles/api.rb +20 -0
  11. data/lib/delicious/bundles/methods/all.rb +23 -0
  12. data/lib/delicious/bundles/methods/delete.rb +23 -0
  13. data/lib/delicious/bundles/methods/find.rb +26 -0
  14. data/lib/delicious/bundles/methods/set.rb +27 -0
  15. data/lib/delicious/client.rb +57 -0
  16. data/lib/delicious/error.rb +6 -0
  17. data/lib/delicious/post.rb +42 -0
  18. data/lib/delicious/tag.rb +26 -0
  19. data/lib/delicious/tags/api.rb +15 -0
  20. data/lib/delicious/tags/methods/all.rb +24 -0
  21. data/lib/delicious/tags/methods/delete.rb +23 -0
  22. data/lib/delicious/tags/methods/rename.rb +24 -0
  23. data/lib/delicious/version.rb +5 -0
  24. data/spec/delicious/bookmarks/methods/all_spec.rb +122 -0
  25. data/spec/delicious/bookmarks/methods/create_spec.rb +120 -0
  26. data/spec/delicious/bundle_spec.rb +42 -0
  27. data/spec/delicious/bundles/methods/set_spec.rb +78 -0
  28. data/spec/delicious/client_spec.rb +189 -0
  29. data/spec/delicious/post_spec.rb +34 -0
  30. data/spec/delicious/tags/methods/all_spec.rb +70 -0
  31. data/spec/delicious/tags/methods/delete_spec.rb +47 -0
  32. data/spec/delicious/tags/methods/rename_spec.rb +47 -0
  33. data/spec/spec_helper.rb +11 -0
  34. data/spec/support/helpers/request_helper.rb +10 -0
  35. data/spec/support/shared/api_action.rb +13 -0
  36. metadata +175 -0
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe Delicious::Tags::Methods::Rename do
4
+ let(:client) do
5
+ Delicious::Client.new do |config|
6
+ config.access_token = 'my-access-token'
7
+ end
8
+ end
9
+
10
+ describe '#rename' do
11
+ let(:result) { :success }
12
+
13
+ let(:method) { :post }
14
+ let(:endpoint) { 'https://previous.delicious.com/v1/tags/rename' }
15
+ let(:action) { client.tags.rename 'old', 'new' }
16
+
17
+ let(:success_body) { '<?xml version="1.0" encoding="UTF-8"?><result code="done"/>' }
18
+ let(:failure_body) { '<?xml version="1.0" encoding="UTF-8"?><result code="done"/>' }
19
+
20
+ before do
21
+ body = result == :failure ? failure_body : success_body
22
+ @request = stub_request(method, endpoint)
23
+ .to_return body: body, headers: {'Content-Type' => 'text/xml; charset=UTF-8'}
24
+ end
25
+
26
+ it_behaves_like 'api action'
27
+
28
+ it 'sends request' do
29
+ action
30
+ expect(WebMock).to have_requested(:post, endpoint).with { |r| assert_param(r, 'old', 'old') && assert_param(r, 'new', 'new') }
31
+ end
32
+
33
+ context 'success' do
34
+ it 'return true' do
35
+ expect(action).to eq true
36
+ end
37
+ end
38
+
39
+ context 'failure' do
40
+ let(:result) { :failure }
41
+
42
+ it 'return true' do
43
+ expect(action).to eq true
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,11 @@
1
+ require 'delicious'
2
+ require 'webmock/rspec'
3
+ # ActiveModel should be required before shoulda/matchers
4
+ require 'active_model'
5
+ require 'shoulda/matchers'
6
+
7
+ Dir['./spec/support/**/*.rb'].sort.each { |f| require f }
8
+
9
+ RSpec.configure do |c|
10
+ c.include RequestHelper
11
+ end
@@ -0,0 +1,10 @@
1
+ module RequestHelper
2
+ def parse_query(r)
3
+ Hash[CGI.parse(r).map { |k, v| [k, v[0]] }]
4
+ end
5
+
6
+ def assert_param(request, param, value)
7
+ params = parse_query(request.body)
8
+ expect(params[param]).to eq value
9
+ end
10
+ end
@@ -0,0 +1,13 @@
1
+ RSpec.shared_examples 'api action' do
2
+ it 'adds "Authorization: Bearer my-access-token" header' do
3
+ action
4
+ expect(WebMock).to have_requested(method, endpoint)
5
+ .with(headers: { 'Authorization' => 'Bearer my-access-token' })
6
+ end
7
+
8
+ it 'adds "User-Agent: delicious-ruby X.Y.Z" header' do
9
+ action
10
+ expect(WebMock).to have_requested(method, endpoint)
11
+ .with(headers: { 'User-Agent' => "delicious-ruby #{Delicious.version}" })
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,175 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: delicious
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Andrey Chernih
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday_middleware
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: multi_xml
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: activemodel
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activesupport
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.0'
97
+ description: Ruby wrapper for delicious.com API
98
+ email:
99
+ - andrey.chernih@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - delicious.gemspec
105
+ - lib/delicious.rb
106
+ - lib/delicious/api_model.rb
107
+ - lib/delicious/bookmarks/api.rb
108
+ - lib/delicious/bookmarks/methods/all.rb
109
+ - lib/delicious/bookmarks/methods/create.rb
110
+ - lib/delicious/bookmarks/methods/delete.rb
111
+ - lib/delicious/bundle.rb
112
+ - lib/delicious/bundles/api.rb
113
+ - lib/delicious/bundles/methods/all.rb
114
+ - lib/delicious/bundles/methods/delete.rb
115
+ - lib/delicious/bundles/methods/find.rb
116
+ - lib/delicious/bundles/methods/set.rb
117
+ - lib/delicious/client.rb
118
+ - lib/delicious/error.rb
119
+ - lib/delicious/post.rb
120
+ - lib/delicious/tag.rb
121
+ - lib/delicious/tags/api.rb
122
+ - lib/delicious/tags/methods/all.rb
123
+ - lib/delicious/tags/methods/delete.rb
124
+ - lib/delicious/tags/methods/rename.rb
125
+ - lib/delicious/version.rb
126
+ - spec/delicious/bookmarks/methods/all_spec.rb
127
+ - spec/delicious/bookmarks/methods/create_spec.rb
128
+ - spec/delicious/bundle_spec.rb
129
+ - spec/delicious/bundles/methods/set_spec.rb
130
+ - spec/delicious/client_spec.rb
131
+ - spec/delicious/post_spec.rb
132
+ - spec/delicious/tags/methods/all_spec.rb
133
+ - spec/delicious/tags/methods/delete_spec.rb
134
+ - spec/delicious/tags/methods/rename_spec.rb
135
+ - spec/spec_helper.rb
136
+ - spec/support/helpers/request_helper.rb
137
+ - spec/support/shared/api_action.rb
138
+ homepage: http://github.com/andreychernih/delicious
139
+ licenses:
140
+ - Apache 2.0
141
+ metadata: {}
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ required_rubygems_version: !ruby/object:Gem::Requirement
152
+ requirements:
153
+ - - ">="
154
+ - !ruby/object:Gem::Version
155
+ version: 1.3.5
156
+ requirements: []
157
+ rubyforge_project:
158
+ rubygems_version: 2.2.1
159
+ signing_key:
160
+ specification_version: 4
161
+ summary: Ruby wrapper for delicious.com API
162
+ test_files:
163
+ - spec/delicious/bookmarks/methods/all_spec.rb
164
+ - spec/delicious/bookmarks/methods/create_spec.rb
165
+ - spec/delicious/bundle_spec.rb
166
+ - spec/delicious/bundles/methods/set_spec.rb
167
+ - spec/delicious/client_spec.rb
168
+ - spec/delicious/post_spec.rb
169
+ - spec/delicious/tags/methods/all_spec.rb
170
+ - spec/delicious/tags/methods/delete_spec.rb
171
+ - spec/delicious/tags/methods/rename_spec.rb
172
+ - spec/spec_helper.rb
173
+ - spec/support/helpers/request_helper.rb
174
+ - spec/support/shared/api_action.rb
175
+ has_rdoc: