drewolson-diggr 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/lib/diggr/api.rb +5 -1
- data/lib/diggr/request.rb +3 -2
- data/test/test_request.rb +16 -15
- metadata +1 -1
data/History.txt
CHANGED
data/lib/diggr/api.rb
CHANGED
@@ -5,9 +5,13 @@ need { 'request' }
|
|
5
5
|
|
6
6
|
module Diggr
|
7
7
|
class API
|
8
|
+
def initialize(app_key = Diggr::Constants::APP_KEY)
|
9
|
+
@app_key = app_key
|
10
|
+
end
|
11
|
+
|
8
12
|
Diggr::Constants::VALID_ROOT_METHODS.each do |method|
|
9
13
|
define_method(method) do |*args|
|
10
|
-
request = Diggr::Request.new
|
14
|
+
request = Diggr::Request.new(@app_key)
|
11
15
|
request.send(method,*args)
|
12
16
|
end
|
13
17
|
end
|
data/lib/diggr/request.rb
CHANGED
@@ -10,9 +10,10 @@ module Diggr
|
|
10
10
|
class Request
|
11
11
|
include Enumerable
|
12
12
|
|
13
|
-
def initialize
|
13
|
+
def initialize(app_key)
|
14
14
|
@end_point = ''
|
15
15
|
@options = ''
|
16
|
+
@app_key = app_key
|
16
17
|
end
|
17
18
|
|
18
19
|
def options(params)
|
@@ -65,7 +66,7 @@ module Diggr
|
|
65
66
|
end
|
66
67
|
|
67
68
|
def path
|
68
|
-
@end_point + "?appkey=#{cleanse(
|
69
|
+
@end_point + "?appkey=#{cleanse(@app_key)}" + @options
|
69
70
|
end
|
70
71
|
end
|
71
72
|
end
|
data/test/test_request.rb
CHANGED
@@ -3,6 +3,7 @@ require 'test/unit'
|
|
3
3
|
require 'mocha'
|
4
4
|
require 'need'
|
5
5
|
need { '../lib/diggr/request' }
|
6
|
+
need { '../lib/diggr/constants' }
|
6
7
|
need { '../lib/diggr/response_classes/story' }
|
7
8
|
need { '../lib/diggr/constants' }
|
8
9
|
need { '../lib/diggr/json_parser' }
|
@@ -10,80 +11,80 @@ need { '../lib/diggr/json_parser' }
|
|
10
11
|
class TestRequest < Test::Unit::TestCase
|
11
12
|
def test_request_instantiation
|
12
13
|
assert_nothing_raised do
|
13
|
-
Diggr::Request.new
|
14
|
+
Diggr::Request.new(Diggr::Constants::APP_KEY)
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
18
|
def test_simple_end_point
|
18
|
-
request = Diggr::Request.new
|
19
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
19
20
|
request.media
|
20
21
|
|
21
22
|
assert_equal '/media', request.send(:instance_variable_get,"@end_point")
|
22
23
|
end
|
23
24
|
|
24
25
|
def test_simple_end_point_with_args
|
25
|
-
request = Diggr::Request.new
|
26
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
26
27
|
request.error('123')
|
27
28
|
|
28
29
|
assert_equal '/error/123', request.send(:instance_variable_get,"@end_point")
|
29
30
|
end
|
30
31
|
|
31
32
|
def test_complex_end_point
|
32
|
-
request = Diggr::Request.new
|
33
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
33
34
|
request.stories.popular
|
34
35
|
|
35
36
|
assert_equal '/stories/popular', request.send(:instance_variable_get,"@end_point")
|
36
37
|
end
|
37
38
|
|
38
39
|
def test_complex_end_point_with_args
|
39
|
-
request = Diggr::Request.new
|
40
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
40
41
|
request.stories.topic("technology").hot
|
41
42
|
|
42
43
|
assert_equal '/stories/topic/technology/hot', request.send(:instance_variable_get,"@end_point")
|
43
44
|
end
|
44
45
|
|
45
46
|
def test_request_with_options
|
46
|
-
request = Diggr::Request.new
|
47
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
47
48
|
request.topics.options(:count => 5, :offset => 3)
|
48
49
|
|
49
50
|
assert_equal '&count=5&offset=3', request.send(:instance_variable_get,"@options")
|
50
51
|
end
|
51
52
|
|
52
53
|
def test_cleanse_string_with_forward_slash
|
53
|
-
request = Diggr::Request.new
|
54
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
54
55
|
|
55
56
|
assert_equal '%2F', request.send(:cleanse,"/")
|
56
57
|
end
|
57
58
|
|
58
59
|
def test_cleanse_number
|
59
|
-
request = Diggr::Request.new
|
60
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
60
61
|
|
61
62
|
assert_equal 2, request.send(:cleanse,2)
|
62
63
|
end
|
63
64
|
|
64
65
|
def test_simple_path
|
65
|
-
request = Diggr::Request.new
|
66
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
66
67
|
request.stories
|
67
68
|
|
68
69
|
assert_equal '/stories?appkey=http%3A%2F%2Fdiggr.rubyforge.org', request.send(:path)
|
69
70
|
end
|
70
71
|
|
71
72
|
def test_simple_path_with_options
|
72
|
-
request = Diggr::Request.new
|
73
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
73
74
|
request.stories.options(:count => 3)
|
74
75
|
|
75
76
|
assert_equal '/stories?appkey=http%3A%2F%2Fdiggr.rubyforge.org&count=3', request.send(:path)
|
76
77
|
end
|
77
78
|
|
78
79
|
def test_complex_path
|
79
|
-
request = Diggr::Request.new
|
80
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
80
81
|
request.story(1).diggs
|
81
82
|
|
82
83
|
assert_equal '/story/1/diggs?appkey=http%3A%2F%2Fdiggr.rubyforge.org', request.send(:path)
|
83
84
|
end
|
84
85
|
|
85
86
|
def test_comma_seperated_args_product_correct_endpoint
|
86
|
-
request = Diggr::Request.new
|
87
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
87
88
|
request.stories(1,2,3,4)
|
88
89
|
|
89
90
|
assert_equal '/stories/1,2,3,4', request.send(:instance_variable_get,"@end_point")
|
@@ -92,7 +93,7 @@ class TestRequest < Test::Unit::TestCase
|
|
92
93
|
def test_fetch
|
93
94
|
story = Diggr::Story.new
|
94
95
|
Diggr::JSONParser.any_instance.stubs(:parse).with(story).returns(story)
|
95
|
-
request = Diggr::Request.new
|
96
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
96
97
|
request.stubs(:make_request).returns(story)
|
97
98
|
|
98
99
|
assert_equal story, request.fetch
|
@@ -101,7 +102,7 @@ class TestRequest < Test::Unit::TestCase
|
|
101
102
|
def test_each
|
102
103
|
stories = [Diggr::Story.new,Diggr::Story.new]
|
103
104
|
Diggr::JSONParser.any_instance.stubs(:parse).with(stories).returns(stories)
|
104
|
-
request = Diggr::Request.new
|
105
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
105
106
|
request.stubs(:make_request).returns(stories)
|
106
107
|
|
107
108
|
request.each do |item|
|
@@ -112,7 +113,7 @@ class TestRequest < Test::Unit::TestCase
|
|
112
113
|
def test_each_with_singular_response
|
113
114
|
story = Diggr::Story.new
|
114
115
|
Diggr::JSONParser.any_instance.stubs(:parse).with(story).returns(story)
|
115
|
-
request = Diggr::Request.new
|
116
|
+
request = Diggr::Request.new(Diggr::Constants::APP_KEY)
|
116
117
|
request.stubs(:make_request).returns(story)
|
117
118
|
|
118
119
|
request.each do |item|
|