thumbtack 1.0.0 → 1.1.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.
- checksums.yaml +4 -4
- data/lib/thumbtack.rb +2 -1
- data/lib/thumbtack/adapters/basic_adapter.rb +83 -0
- data/lib/thumbtack/client.rb +26 -19
- data/lib/thumbtack/hash_to_digest.rb +12 -7
- data/lib/thumbtack/note.rb +1 -1
- data/lib/thumbtack/note_summary.rb +1 -1
- data/lib/thumbtack/post.rb +1 -1
- data/lib/thumbtack/posts.rb +13 -5
- data/lib/thumbtack/suggestion.rb +18 -4
- data/lib/thumbtack/symbolize_keys.rb +22 -0
- data/lib/thumbtack/types/boolean.rb +1 -1
- data/lib/thumbtack/types/date.rb +1 -1
- data/lib/thumbtack/types/date_time.rb +1 -1
- data/lib/thumbtack/types/identity.rb +1 -1
- data/lib/thumbtack/types/integer.rb +1 -1
- data/lib/thumbtack/types/length_validation.rb +10 -8
- data/lib/thumbtack/types/md5.rb +16 -3
- data/lib/thumbtack/types/range_validation.rb +5 -3
- data/lib/thumbtack/types/tags.rb +16 -3
- data/lib/thumbtack/types/text.rb +1 -1
- data/lib/thumbtack/types/title.rb +1 -1
- data/lib/thumbtack/types/url.rb +1 -1
- data/lib/thumbtack/version.rb +1 -1
- data/test/test_helper.rb +2 -2
- data/test/thumbtack/client_test.rb +29 -1
- data/test/thumbtack/integration/basic_adapter_test.rb +24 -0
- data/test/thumbtack/note_summary_test.rb +1 -1
- data/test/thumbtack/notes_test.rb +34 -34
- data/test/thumbtack/post_test.rb +1 -1
- data/test/thumbtack/posts_test.rb +113 -95
- data/test/thumbtack/specification_test.rb +2 -1
- data/test/thumbtack/suggestion_test.rb +4 -4
- data/test/thumbtack/tags_test.rb +30 -24
- data/test/thumbtack/types/date_test.rb +2 -2
- data/test/thumbtack/types/date_time_test.rb +4 -3
- data/test/thumbtack/types/identity_test.rb +1 -1
- data/test/thumbtack/types/md5_test.rb +3 -3
- data/test/thumbtack/types/tags_test.rb +2 -2
- data/test/thumbtack/types/text_test.rb +2 -2
- data/test/thumbtack/user_test.rb +10 -6
- metadata +26 -11
- data/lib/thumbtack/types.rb +0 -9
- data/test/thumbtack/integration/client_test.rb +0 -29
@@ -8,7 +8,8 @@ class SpecificationTest < Minitest::Test
|
|
8
8
|
type_handler.expect(:validate, type_handler, ['value'])
|
9
9
|
type_handler.expect(:to_parameter, 'parameterized', ['value'])
|
10
10
|
|
11
|
-
assert_equal(
|
11
|
+
assert_equal(
|
12
|
+
{ key: 'parameterized' },
|
12
13
|
Specification.new(key: type_handler).parameters(key: 'value'))
|
13
14
|
type_handler.verify
|
14
15
|
end
|
@@ -5,12 +5,12 @@ require 'test_helper'
|
|
5
5
|
class NoteSummaryTest < Minitest::Test
|
6
6
|
def test_from_array
|
7
7
|
array = [
|
8
|
-
{ 'popular' =>
|
9
|
-
{ 'recommended' =>
|
8
|
+
{ 'popular' => %w(ifttt) },
|
9
|
+
{ 'recommended' => %w(ifttt twitter) }
|
10
10
|
]
|
11
11
|
suggestion = Suggestion.from_array(array)
|
12
12
|
|
13
|
-
assert_equal
|
14
|
-
assert_equal
|
13
|
+
assert_equal %w(ifttt), suggestion.popular
|
14
|
+
assert_equal %w(ifttt twitter), suggestion.recommended
|
15
15
|
end
|
16
16
|
end
|
data/test/thumbtack/tags_test.rb
CHANGED
@@ -4,34 +4,38 @@ require 'test_helper'
|
|
4
4
|
|
5
5
|
class TagsTest < Minitest::Test
|
6
6
|
def test_update
|
7
|
-
client = mock_client_get(
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
7
|
+
client = mock_client_get(
|
8
|
+
'/tags/get',
|
9
|
+
nil,
|
10
|
+
'activedesktop' => '1',
|
11
|
+
'business' => '1',
|
12
|
+
'radio' => '3',
|
13
|
+
'xml' => '5',
|
14
|
+
'xp' => '1',
|
15
|
+
'xpi' => '1'
|
16
|
+
)
|
17
17
|
tags = Tags.new(client)
|
18
18
|
|
19
|
-
assert_equal(
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
assert_equal(
|
20
|
+
{
|
21
|
+
'activedesktop' => 1,
|
22
|
+
'business' => 1,
|
23
|
+
'radio' => 3,
|
24
|
+
'xml' => 5,
|
25
|
+
'xp' => 1,
|
26
|
+
'xpi' => 1
|
27
|
+
},
|
28
|
+
tags.get
|
29
|
+
)
|
27
30
|
|
28
31
|
client.verify
|
29
32
|
end
|
30
33
|
|
31
34
|
def test_delete
|
32
|
-
client = mock_client_action(
|
33
|
-
|
34
|
-
|
35
|
+
client = mock_client_action(
|
36
|
+
'/tags/delete',
|
37
|
+
tag: 'argentina'
|
38
|
+
)
|
35
39
|
tags = Tags.new(client)
|
36
40
|
|
37
41
|
assert_equal tags, tags.delete('argentina')
|
@@ -39,9 +43,11 @@ class TagsTest < Minitest::Test
|
|
39
43
|
end
|
40
44
|
|
41
45
|
def test_rename
|
42
|
-
client = mock_client_action(
|
43
|
-
|
44
|
-
|
46
|
+
client = mock_client_action(
|
47
|
+
'/tags/rename',
|
48
|
+
old: 'argentina',
|
49
|
+
new: 'evita'
|
50
|
+
)
|
45
51
|
tags = Tags.new(client)
|
46
52
|
|
47
53
|
assert_equal tags, tags.rename('argentina', 'evita')
|
@@ -17,11 +17,11 @@ class DateTest < Minitest::Test
|
|
17
17
|
|
18
18
|
def test_to_parameter
|
19
19
|
assert_equal '2010-12-11',
|
20
|
-
|
20
|
+
Types::Date.to_parameter(::Date.new(2010, 12, 11))
|
21
21
|
end
|
22
22
|
|
23
23
|
def test_from_parameter
|
24
24
|
assert_equal ::Date.new(2010, 12, 11),
|
25
|
-
|
25
|
+
Types::Date.from_parameter('2010-12-11')
|
26
26
|
end
|
27
27
|
end
|
@@ -17,16 +17,17 @@ class DateTimeTest < Minitest::Test
|
|
17
17
|
|
18
18
|
def test_to_parameter
|
19
19
|
assert_equal '2010-12-11T19:48:02Z',
|
20
|
-
|
20
|
+
Types::DateTime.to_parameter(
|
21
|
+
::DateTime.new(2010, 12, 11, 19, 48, 2))
|
21
22
|
end
|
22
23
|
|
23
24
|
def test_from_parameter
|
24
25
|
assert_equal ::DateTime.new(2010, 12, 11, 19, 48, 2),
|
25
|
-
|
26
|
+
Types::DateTime.from_parameter('2010-12-11T19:48:02Z')
|
26
27
|
end
|
27
28
|
|
28
29
|
def test_from_note_parameter
|
29
30
|
assert_equal ::DateTime.new(2010, 12, 11, 19, 48, 2),
|
30
|
-
|
31
|
+
Types::DateTime.from_note_parameter('2010-12-11 19:48:02')
|
31
32
|
end
|
32
33
|
end
|
@@ -5,7 +5,7 @@ require 'test_helper'
|
|
5
5
|
class MD5Test < Minitest::Test
|
6
6
|
def test_validate
|
7
7
|
assert_equal Types::MD5,
|
8
|
-
|
8
|
+
Types::MD5.validate('437b930db84b8079c2dd804a71936b5f')
|
9
9
|
|
10
10
|
assert_raises(ValidationError) do
|
11
11
|
Types::MD5.validate('0' * 33)
|
@@ -18,11 +18,11 @@ class MD5Test < Minitest::Test
|
|
18
18
|
|
19
19
|
def test_to_parameter
|
20
20
|
assert_equal '437b930db84b8079c2dd804a71936b5f',
|
21
|
-
|
21
|
+
Types::MD5.to_parameter('437b930db84b8079c2dd804a71936b5f')
|
22
22
|
end
|
23
23
|
|
24
24
|
def test_from_parameter
|
25
25
|
assert_equal '437b930db84b8079c2dd804a71936b5f',
|
26
|
-
|
26
|
+
Types::MD5.from_parameter('437b930db84b8079c2dd804a71936b5f')
|
27
27
|
end
|
28
28
|
end
|
@@ -19,11 +19,11 @@ class TagsTest < Minitest::Test
|
|
19
19
|
|
20
20
|
def test_to_parameter
|
21
21
|
assert_equal 'one', Types::Tags.to_parameter('one')
|
22
|
-
assert_equal 'one two', Types::Tags.to_parameter(
|
22
|
+
assert_equal 'one two', Types::Tags.to_parameter(%w(one two))
|
23
23
|
assert_equal 'padding', Types::Tags.to_parameter([' padding '])
|
24
24
|
end
|
25
25
|
|
26
26
|
def test_from_parameter
|
27
|
-
assert_equal
|
27
|
+
assert_equal %w(one two), Types::Tags.from_parameter('one two')
|
28
28
|
end
|
29
29
|
end
|
@@ -5,10 +5,10 @@ require 'test_helper'
|
|
5
5
|
class TextTest < Minitest::Test
|
6
6
|
def test_validate
|
7
7
|
assert_equal Types::Text, Types::Text.validate('')
|
8
|
-
assert_equal Types::Text, Types::Text.validate('x' *
|
8
|
+
assert_equal Types::Text, Types::Text.validate('x' * 65_536)
|
9
9
|
|
10
10
|
assert_raises(ValidationError) do
|
11
|
-
Types::Text.validate('x' *
|
11
|
+
Types::Text.validate('x' * 65_537)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
data/test/thumbtack/user_test.rb
CHANGED
@@ -4,18 +4,22 @@ require 'test_helper'
|
|
4
4
|
|
5
5
|
class UserTest < Minitest::Test
|
6
6
|
def test_secret
|
7
|
-
client = mock_client_get(
|
8
|
-
|
9
|
-
|
7
|
+
client = mock_client_get(
|
8
|
+
'/user/secret',
|
9
|
+
nil,
|
10
|
+
'result' => '6493a84f72d86e7de130'
|
11
|
+
)
|
10
12
|
user = User.new(client)
|
11
13
|
|
12
14
|
assert_equal '6493a84f72d86e7de130', user.secret
|
13
15
|
end
|
14
16
|
|
15
17
|
def test_api_token
|
16
|
-
client = mock_client_get(
|
17
|
-
|
18
|
-
|
18
|
+
client = mock_client_get(
|
19
|
+
'/user/api_token',
|
20
|
+
nil,
|
21
|
+
'result' => 'XOG86E7JIYMI'
|
22
|
+
)
|
19
23
|
user = User.new(client)
|
20
24
|
|
21
25
|
assert_equal 'XOG86E7JIYMI', user.api_token
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: thumbtack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nate Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -24,34 +24,48 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: codeclimate-test-reporter
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.4.7
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.4.7
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: minitest
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: 5.
|
47
|
+
version: 5.7.0
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: 5.
|
54
|
+
version: 5.7.0
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: 10.
|
61
|
+
version: 10.4.2
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: 10.
|
68
|
+
version: 10.4.2
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: yard
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -74,6 +88,7 @@ extensions: []
|
|
74
88
|
extra_rdoc_files: []
|
75
89
|
files:
|
76
90
|
- lib/thumbtack.rb
|
91
|
+
- lib/thumbtack/adapters/basic_adapter.rb
|
77
92
|
- lib/thumbtack/client.rb
|
78
93
|
- lib/thumbtack/hash_to_digest.rb
|
79
94
|
- lib/thumbtack/note.rb
|
@@ -83,8 +98,8 @@ files:
|
|
83
98
|
- lib/thumbtack/posts.rb
|
84
99
|
- lib/thumbtack/specification.rb
|
85
100
|
- lib/thumbtack/suggestion.rb
|
101
|
+
- lib/thumbtack/symbolize_keys.rb
|
86
102
|
- lib/thumbtack/tags.rb
|
87
|
-
- lib/thumbtack/types.rb
|
88
103
|
- lib/thumbtack/types/boolean.rb
|
89
104
|
- lib/thumbtack/types/date.rb
|
90
105
|
- lib/thumbtack/types/date_time.rb
|
@@ -101,7 +116,7 @@ files:
|
|
101
116
|
- lib/thumbtack/version.rb
|
102
117
|
- test/test_helper.rb
|
103
118
|
- test/thumbtack/client_test.rb
|
104
|
-
- test/thumbtack/integration/
|
119
|
+
- test/thumbtack/integration/basic_adapter_test.rb
|
105
120
|
- test/thumbtack/note_summary_test.rb
|
106
121
|
- test/thumbtack/note_test.rb
|
107
122
|
- test/thumbtack/notes_test.rb
|
@@ -133,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
148
|
requirements:
|
134
149
|
- - ">="
|
135
150
|
- !ruby/object:Gem::Version
|
136
|
-
version: 1.9.
|
151
|
+
version: 1.9.3
|
137
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
153
|
requirements:
|
139
154
|
- - ">="
|
@@ -141,14 +156,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
156
|
version: '0'
|
142
157
|
requirements: []
|
143
158
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.
|
159
|
+
rubygems_version: 2.4.5
|
145
160
|
signing_key:
|
146
161
|
specification_version: 4
|
147
162
|
summary: The best Pinboard API client
|
148
163
|
test_files:
|
149
164
|
- test/test_helper.rb
|
150
165
|
- test/thumbtack/client_test.rb
|
151
|
-
- test/thumbtack/integration/
|
166
|
+
- test/thumbtack/integration/basic_adapter_test.rb
|
152
167
|
- test/thumbtack/note_summary_test.rb
|
153
168
|
- test/thumbtack/note_test.rb
|
154
169
|
- test/thumbtack/notes_test.rb
|
data/lib/thumbtack/types.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require 'test_helper'
|
4
|
-
|
5
|
-
module Integration
|
6
|
-
class ClientTest < Minitest::Test
|
7
|
-
def setup
|
8
|
-
path = File.expand_path('../../../auth_token.txt', __FILE__)
|
9
|
-
auth_token = File.open(path).read.strip
|
10
|
-
@username, @token = auth_token.split(':')
|
11
|
-
@client = Client.new(@username, @token)
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_requests_return_parsed_json
|
15
|
-
response = @client.get('/user/api_token')
|
16
|
-
assert_equal({ 'result' => @token }, response)
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_request_query_parameters
|
20
|
-
response = @client.get('/posts/recent', tag: 'thumbtack-test-query-params')
|
21
|
-
assert_equal([] , response['posts'])
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_action_command_method
|
25
|
-
response = @client.action('/tags/delete', tag: 'thumbtack-test-command')
|
26
|
-
assert_equal(@client, response)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|