rocketio 0.0.0.pre.alpha → 0.0.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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -2
  3. data/LICENSE.txt +22 -0
  4. data/README.md +5 -22
  5. data/Rakefile +1 -7
  6. data/lib/rocketio.rb +3 -131
  7. data/lib/rocketio/version.rb +2 -2
  8. data/rocketio.gemspec +17 -21
  9. metadata +11 -146
  10. data/.travis.yml +0 -3
  11. data/bin/console +0 -14
  12. data/bin/setup +0 -7
  13. data/lib/rocketio/application.rb +0 -31
  14. data/lib/rocketio/controller.rb +0 -288
  15. data/lib/rocketio/controller/authentication.rb +0 -141
  16. data/lib/rocketio/controller/authorization.rb +0 -53
  17. data/lib/rocketio/controller/cookies.rb +0 -59
  18. data/lib/rocketio/controller/error_handlers.rb +0 -89
  19. data/lib/rocketio/controller/filters.rb +0 -119
  20. data/lib/rocketio/controller/flash.rb +0 -21
  21. data/lib/rocketio/controller/helpers.rb +0 -438
  22. data/lib/rocketio/controller/middleware.rb +0 -32
  23. data/lib/rocketio/controller/render.rb +0 -148
  24. data/lib/rocketio/controller/render/engine.rb +0 -76
  25. data/lib/rocketio/controller/render/layout.rb +0 -27
  26. data/lib/rocketio/controller/render/layouts.rb +0 -85
  27. data/lib/rocketio/controller/render/templates.rb +0 -83
  28. data/lib/rocketio/controller/request.rb +0 -115
  29. data/lib/rocketio/controller/response.rb +0 -84
  30. data/lib/rocketio/controller/sessions.rb +0 -64
  31. data/lib/rocketio/controller/token_auth.rb +0 -118
  32. data/lib/rocketio/controller/websocket.rb +0 -21
  33. data/lib/rocketio/error_templates/404.html +0 -3
  34. data/lib/rocketio/error_templates/409.html +0 -7
  35. data/lib/rocketio/error_templates/500.html +0 -3
  36. data/lib/rocketio/error_templates/501.html +0 -6
  37. data/lib/rocketio/error_templates/layout.html +0 -1
  38. data/lib/rocketio/exceptions.rb +0 -4
  39. data/lib/rocketio/router.rb +0 -65
  40. data/lib/rocketio/util.rb +0 -122
  41. data/test/aliases_test.rb +0 -54
  42. data/test/authentication_test.rb +0 -307
  43. data/test/authorization_test.rb +0 -91
  44. data/test/cache_control_test.rb +0 -268
  45. data/test/content_type_test.rb +0 -124
  46. data/test/cookies_test.rb +0 -49
  47. data/test/error_handlers_test.rb +0 -125
  48. data/test/etag_test.rb +0 -445
  49. data/test/filters_test.rb +0 -177
  50. data/test/halt_test.rb +0 -73
  51. data/test/helpers_test.rb +0 -171
  52. data/test/middleware_test.rb +0 -57
  53. data/test/redirect_test.rb +0 -135
  54. data/test/render/engine_test.rb +0 -71
  55. data/test/render/get.erb +0 -1
  56. data/test/render/items.erb +0 -1
  57. data/test/render/layout.erb +0 -1
  58. data/test/render/layout_test.rb +0 -104
  59. data/test/render/layouts/master.erb +0 -1
  60. data/test/render/layouts_test.rb +0 -145
  61. data/test/render/master.erb +0 -1
  62. data/test/render/post.erb +0 -1
  63. data/test/render/put.erb +0 -1
  64. data/test/render/render_test.rb +0 -101
  65. data/test/render/setup.rb +0 -14
  66. data/test/render/templates/a/get.erb +0 -1
  67. data/test/render/templates/master.erb +0 -1
  68. data/test/render/templates_test.rb +0 -146
  69. data/test/request_test.rb +0 -105
  70. data/test/response_test.rb +0 -119
  71. data/test/routes_test.rb +0 -70
  72. data/test/sendfile_test.rb +0 -209
  73. data/test/sessions_test.rb +0 -176
  74. data/test/setup.rb +0 -59
data/test/filters_test.rb DELETED
@@ -1,177 +0,0 @@
1
- require 'setup'
2
-
3
- spec :Filters do
4
-
5
- context :composition do
6
- it 'inherits filters from superclass' do
7
- before, around, after = [], [], []
8
- a = mock_controller {
9
- before(:get) {before << :a}
10
- around(:get) {|a| around << :a}
11
- after(:get) {after << :a}
12
- def get; end
13
- }
14
- b = mock_controller(a)
15
- app(b)
16
- get
17
- assert([before, around, after]).all? {|a| a.include?(:a)}
18
- end
19
-
20
- it 'inherits filters explicitly' do
21
- before, around, after = [], [], []
22
- a = mock_controller {
23
- before(:get) {before << :x}
24
- around(:get) {|a| around << :x}
25
- after(:get) {after << :x}
26
- def get; end
27
- }
28
- b = mock_controller {
29
- inherit :before, from: a
30
- inherit :around, from: a
31
- inherit :after, from: a
32
- }
33
- app(b)
34
- get
35
- assert([before, around, after]).all? {|a| a.include?(:x)}
36
- end
37
-
38
- test 'explicitly inherited filters overrides filters inherited from superclass' do
39
- before, around, after = [], [], []
40
- a = mock_controller {
41
- before(:get) {before << :a}
42
- around(:get) {|a| around << :a}
43
- after(:get) {after << :a}
44
- def get; end
45
- }
46
- b = mock_controller {
47
- before(:get) {before << :b}
48
- around(:get) {|a| around << :b}
49
- after(:get) {after << :b}
50
- }
51
- c = mock_controller(a) {
52
- inherit :before, from: b
53
- inherit :around, from: b
54
- inherit :after, from: b
55
- }
56
- app(c)
57
- get
58
- assert([before, around, after]).none? {|a| a.include?(:a)}
59
- assert([before, around, after]).all? {|a| a.include?(:b)}
60
- end
61
-
62
- test 'explicitly inherited filters complements filters inherited from superclass' do
63
- before_get, around_get, after_get = [], [], []
64
- before_post, around_post, after_post = [], [], []
65
- a = mock_controller {
66
- before(:get) {before_get << :a}
67
- around(:get) {|a| around_get << :a}
68
- after(:get) {after_get << :a}
69
- }
70
- b = mock_controller {
71
- before(:post) {before_post << :b}
72
- around(:post) {|a| around_post << :b}
73
- after(:post) {after_post << :b}
74
- }
75
- c = mock_controller(a) {
76
- inherit :before, from: b
77
- inherit :around, from: b
78
- inherit :after, from: b
79
- }
80
- app(c)
81
- get
82
- assert([before_get, around_get, after_get]).all? {|a| a.include?(:a)}
83
- post
84
- assert([before_post, around_post, after_post]).all? {|a| a.include?(:b)}
85
- end
86
-
87
- it 'defined filters overrides filters inherited from superclass' do
88
- before, around, after = [], [], []
89
- a = mock_controller {
90
- before(:get) {before << :a}
91
- around(:get) {|a| around << :a}
92
- after(:get) {after << :a}
93
- }
94
- b = mock_controller(a) {
95
- before(:get) {before << :b}
96
- after(:get) {after << :b}
97
- }
98
- app(b)
99
- get
100
- assert([before, after]).all? {|a| a == [:b]}
101
- assert(around) == [:a]
102
- end
103
- end
104
-
105
- it 'defines filters for all requested methods if called without arguments' do
106
- before, around, after = [], [], []
107
- app mock_controller {
108
- before() {before << requested_method}
109
- around() {|a| around << requested_method}
110
- after() {after << requested_method}
111
- }
112
- filters = [before, around, after]
113
-
114
- get
115
- assert(filters).all? {|a| a.include?(:get)}
116
-
117
- post
118
- assert(filters).all? {|a| a.include?(:post)}
119
-
120
- put
121
- assert(filters).all? {|a| a.include?(:put)}
122
-
123
- head
124
- assert(filters).all? {|a| a.include?(:head)}
125
-
126
- delete
127
- assert(filters).all? {|a| a.include?(:delete)}
128
- end
129
-
130
- it 'defines filters only for given requested method(s)' do
131
- before, around, after = [], [], []
132
- app mock_controller {
133
- before(:get) {before << requested_method}
134
- around(:put, :post) {|a| around << requested_method}
135
- after(:delete) {after << requested_method}
136
- def delete; end
137
- }
138
- get
139
- assert(before).include?(:get)
140
- assert([around, after]).none? {|a| a.include?(:get)}
141
-
142
- post
143
- assert(around).include?(:post)
144
- assert([before, after]).none? {|a| a.include?(:post)}
145
-
146
- put
147
- assert(around).include?(:put)
148
- assert([before, after]).none? {|a| a.include?(:put)}
149
-
150
- delete
151
- assert(after).include?(:delete)
152
- assert([before, around]).none? {|a| a.include?(:delete)}
153
- end
154
-
155
- it 'creates a void filter if called without a block' do
156
- ctrl = mock_controller {
157
- before(:get) {raise 'this should be overridden'}
158
- before(:get)
159
- def get; end
160
- }.initialize_controller
161
- app(ctrl)
162
- expect(ctrl).to_receive(:__before_get__)
163
- get
164
- end
165
-
166
- it 'it calls wildcard filters before specialized ones' do
167
- buffer = []
168
- app mock_controller {
169
- # specialized filter, called only on GET requests
170
- before(:get) {buffer << requested_method}
171
- # wildcard filter, called on any requests
172
- before {buffer << :*}
173
- }
174
- get
175
- assert(buffer) == [:*, :get]
176
- end
177
- end
data/test/halt_test.rb DELETED
@@ -1,73 +0,0 @@
1
- require 'setup'
2
-
3
- spec :HaltTest do
4
- def halt_app *args, &block
5
- app mock_controller {
6
- define_method(:get) {
7
- instance_exec(&block) if block
8
- halt(*args)
9
- }
10
- }
11
- get
12
- end
13
-
14
- it 'is halting using current response if no args given' do
15
- halt_app {response.status = 222}
16
- assert(last_response.status) == 222
17
- end
18
-
19
- it 'is setting status if a Integer arg given' do
20
- halt_app 222
21
- assert(last_response.status) == 222
22
- end
23
-
24
- it 'is updating headers if a Hash arg given' do
25
- halt_app 'X' => 'Y'
26
- assert(last_response['X']) == 'Y'
27
- end
28
-
29
- it 'is sets body if a no Array no Rack::Response no Hash no Integer arg given' do
30
- halt_app 'body'
31
- assert(last_response.body) == 'body'
32
- end
33
-
34
- it 'accepts status and headers' do
35
- halt_app 222, 'X' => 'Y'
36
- assert(last_response.status) == 222
37
- assert(last_response['X']) == 'Y'
38
- end
39
-
40
- it 'accepts status, headers and body as separate arguments' do
41
- halt_app 222, 'body', 'X' => 'Y'
42
- assert(last_response.status) == 222
43
- assert(last_response['X']) == 'Y'
44
- assert(last_response.body) == 'body'
45
- end
46
-
47
- it 'updates current response if an array given' do
48
- halt_app [222, {'X' => 'Y'}, 'body']
49
- assert(last_response.status) == 222
50
- assert(last_response['X']) == 'Y'
51
- assert(last_response.body) == 'body'
52
- end
53
-
54
- it 'ignores other arguments if an array given' do
55
- halt_app [222, {'X' => 'Y'}, 'body'], 400, {'X' => 'Z'}, 'altbody'
56
- assert(last_response.status) == 222
57
- assert(last_response['X']) == 'Y'
58
- assert(last_response.body) == 'body'
59
- end
60
-
61
- it 'returns a fatal error unless given array\'s second element is a Hash' do
62
- halt_app [200, 'wrong headers', 'boby']
63
- assert(last_response.status) == 500
64
- assert(last_response.body) =~ /no implicit conversion of String into Hash/
65
- end
66
-
67
- it 'halts right away ignoring other arguments if a Rack::Response passed as first argument' do
68
- halt_app Rack::Response.new('body', 222, {'X' => 'Y'}), 400, {'X' => 'Z'}, 'altbody'
69
- assert(last_response.status) == 222
70
- assert(last_response['X']) == 'Y'
71
- assert(last_response.body) == 'body'
72
- end
73
- end
data/test/helpers_test.rb DELETED
@@ -1,171 +0,0 @@
1
- require 'setup'
2
-
3
- spec :HelpersTest do
4
-
5
- def status_app(code, &block)
6
- code += 2 if [204, 205, 304].include? code
7
- block ||= proc { }
8
- app mock_controller {
9
- define_method :get do
10
- response.status = code
11
- instance_eval(&block).inspect
12
- end
13
- }
14
- get
15
- end
16
-
17
- context 'status' do
18
- it 'sets the response status code' do
19
- status_app 207
20
- assert(last_response.status) == 207
21
- end
22
- end
23
-
24
- context 'not_found?' do
25
- it 'is true for status == 404' do
26
- status_app(404) { not_found? }
27
- assert(last_response.body) == 'true'
28
- end
29
-
30
- it 'is false for status gt 404' do
31
- status_app(405) { not_found? }
32
- assert(last_response.body) == 'false'
33
- end
34
-
35
- it 'is false for status lt 404' do
36
- status_app(403) { not_found? }
37
- assert(last_response.body) == 'false'
38
- end
39
- end
40
-
41
- context 'informational?' do
42
- it 'is true for 1xx status' do
43
- status_app(100 + rand(100)) { informational? }
44
- assert(last_response.body) == 'true'
45
- end
46
-
47
- it 'is false for status > 199' do
48
- status_app(200 + rand(400)) { informational? }
49
- assert(last_response.body) == 'false'
50
- end
51
- end
52
-
53
- context 'success?' do
54
- it 'is true for 2xx status' do
55
- status_app(200 + rand(100)) { success? }
56
- assert(last_response.body) == 'true'
57
- end
58
-
59
- it 'is false for status < 200' do
60
- status_app(100 + rand(100)) { success? }
61
- assert(last_response.body) == 'false'
62
- end
63
-
64
- it 'is false for status > 299' do
65
- status_app(300 + rand(300)) { success? }
66
- assert(last_response.body) == 'false'
67
- end
68
- end
69
-
70
- context 'redirect?' do
71
- it 'is true for 3xx status' do
72
- status_app(300 + rand(100)) { redirect? }
73
- assert(last_response.body) == 'true'
74
- end
75
-
76
- it 'is false for status < 300' do
77
- status_app(200 + rand(100)) { redirect? }
78
- assert(last_response.body) == 'false'
79
- end
80
-
81
- it 'is false for status > 399' do
82
- status_app(400 + rand(200)) { redirect? }
83
- assert(last_response.body) == 'false'
84
- end
85
- end
86
-
87
- context 'client_error?' do
88
- it 'is true for 4xx status' do
89
- status_app(400 + rand(100)) { client_error? }
90
- assert(last_response.body) == 'true'
91
- end
92
-
93
- it 'is false for status < 400' do
94
- status_app(200 + rand(200)) { client_error? }
95
- assert(last_response.body) == 'false'
96
- end
97
-
98
- it 'is false for status > 499' do
99
- status_app(500 + rand(100)) { client_error? }
100
- assert(last_response.body) == 'false'
101
- end
102
- end
103
-
104
- context 'server_error?' do
105
- it 'is true for 5xx status' do
106
- status_app(500 + rand(100)) { server_error? }
107
- assert(last_response.body) == 'true'
108
- end
109
-
110
- it 'is false for status < 500' do
111
- status_app(200 + rand(300)) { server_error? }
112
- assert(last_response.body) == 'false'
113
- end
114
- end
115
-
116
- context 'body' do
117
- it 'takes a block for deferred body generation' do
118
- app mock_controller {
119
- define_method(:get) { response.body = -> { 'Hello World' } }
120
- }
121
-
122
- get
123
- assert(last_response.body) == 'Hello World'
124
- end
125
-
126
- it 'takes a String, Array, or other object responding to #each' do
127
- app mock_controller {
128
- define_method(:get) { response.body = 'Hello World' }
129
- }
130
-
131
- get
132
- assert(last_response.body) == 'Hello World'
133
- end
134
- end
135
-
136
- context 'headers' do
137
- it 'sets headers on the response object when given a Hash' do
138
- app mock_controller {
139
- define_method(:get) {headers 'X-Foo' => 'bar', 'X-Baz' => 'bling'}
140
- }
141
-
142
- get
143
- assert(last_response).ok?
144
- assert(last_response['X-Foo']) == 'bar'
145
- assert(last_response['X-Baz']) == 'bling'
146
- end
147
-
148
- it 'returns the response headers hash when no hash provided' do
149
- app mock_controller {
150
- define_method(:get) {headers['X-Foo'] = 'bar'}
151
- }
152
-
153
- get
154
- assert(last_response).ok?
155
- assert(last_response['X-Foo']) == 'bar'
156
- end
157
- end
158
-
159
- context 'back' do
160
- it "makes redirecting back pretty" do
161
- app mock_controller('/foo') {
162
- def get; redirect back end
163
- }
164
-
165
- env['HTTP_REFERER'] = 'http://github.com'
166
- get '/foo'
167
- assert(last_response).redirect?
168
- assert(last_response.location) == "http://github.com"
169
- end
170
- end
171
- end
@@ -1,57 +0,0 @@
1
- require 'setup'
2
-
3
- spec :Middleware do
4
-
5
- buff = []
6
- ware = Class.new {
7
- def initialize(*); yield end
8
- def call(*); [200, {}, []] end
9
- }
10
- before { buff.clear }
11
-
12
- it 'inherits middleware from superclass' do
13
- a = mock_controller {
14
- use(ware) {buff << :x}
15
- use(ware) {buff << :y}
16
- }
17
- b = mock_controller(a) {
18
- def get; end
19
- }
20
- app mock_app(b)
21
- get
22
- assert(buff) == [:y, :x]
23
- end
24
-
25
- it 'complements middleware inherited from superclass' do
26
- a = mock_controller {
27
- use(ware) {buff << 1}
28
- use(ware) {buff << 2}
29
- }
30
- b = mock_controller {
31
- use(ware) { buff << 3 }
32
- inherit :middleware, from: a
33
- def get; end
34
- }
35
- app mock_app(b)
36
- get
37
- assert(buff) == [3, 2, 1]
38
- end
39
-
40
- it 'uses `inherit` to complement middleware inherited from superclass' do
41
- a = mock_controller {
42
- use(ware) {buff << :x}
43
- use(ware) {buff << :y}
44
- }
45
- b = mock_controller(a) {
46
- use(ware) {buff << :z}
47
- def get; end
48
- }
49
- c = mock_controller(a) {
50
- inherit :middleware, from: b
51
- def get; end
52
- }
53
- app mock_app(c)
54
- get
55
- assert(buff) == [:y, :x, :z]
56
- end
57
- end