agoo 1.2.2 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of agoo might be problematic. Click here for more details.

Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +11 -9
  3. data/ext/agoo/agoo.c +45 -0
  4. data/ext/agoo/base64.c +107 -0
  5. data/ext/agoo/base64.h +15 -0
  6. data/ext/agoo/ccache.c +301 -0
  7. data/ext/agoo/ccache.h +53 -0
  8. data/ext/agoo/con.c +522 -82
  9. data/ext/agoo/con.h +7 -5
  10. data/ext/agoo/debug.c +121 -7
  11. data/ext/agoo/debug.h +11 -6
  12. data/ext/agoo/error_stream.c +5 -6
  13. data/ext/agoo/error_stream.h +1 -1
  14. data/ext/agoo/extconf.rb +2 -1
  15. data/ext/agoo/hook.c +4 -4
  16. data/ext/agoo/hook.h +1 -0
  17. data/ext/agoo/http.c +2 -2
  18. data/ext/agoo/http.h +2 -0
  19. data/ext/agoo/log.c +604 -219
  20. data/ext/agoo/log.h +20 -7
  21. data/ext/agoo/page.c +20 -23
  22. data/ext/agoo/page.h +2 -0
  23. data/ext/agoo/pub.c +111 -0
  24. data/ext/agoo/pub.h +40 -0
  25. data/ext/agoo/queue.c +2 -2
  26. data/ext/agoo/rack_logger.c +15 -71
  27. data/ext/agoo/rack_logger.h +1 -1
  28. data/ext/agoo/request.c +96 -21
  29. data/ext/agoo/request.h +23 -12
  30. data/ext/agoo/res.c +5 -2
  31. data/ext/agoo/res.h +4 -0
  32. data/ext/agoo/response.c +13 -12
  33. data/ext/agoo/response.h +1 -2
  34. data/ext/agoo/server.c +290 -428
  35. data/ext/agoo/server.h +10 -10
  36. data/ext/agoo/sha1.c +148 -0
  37. data/ext/agoo/sha1.h +10 -0
  38. data/ext/agoo/sse.c +26 -0
  39. data/ext/agoo/sse.h +12 -0
  40. data/ext/agoo/sub.c +111 -0
  41. data/ext/agoo/sub.h +36 -0
  42. data/ext/agoo/subscription.c +54 -0
  43. data/ext/agoo/subscription.h +18 -0
  44. data/ext/agoo/text.c +26 -4
  45. data/ext/agoo/text.h +2 -0
  46. data/ext/agoo/types.h +13 -0
  47. data/ext/agoo/upgraded.c +148 -0
  48. data/ext/agoo/upgraded.h +13 -0
  49. data/ext/agoo/websocket.c +248 -0
  50. data/ext/agoo/websocket.h +27 -0
  51. data/lib/agoo/version.rb +1 -1
  52. data/lib/rack/handler/agoo.rb +13 -6
  53. data/test/base_handler_test.rb +24 -22
  54. data/test/log_test.rb +146 -199
  55. data/test/rack_handler_test.rb +19 -20
  56. data/test/static_test.rb +30 -28
  57. metadata +23 -7
  58. data/test/rrr/test.rb +0 -26
  59. data/test/tests.rb +0 -8
@@ -42,34 +42,33 @@ class RackHandlerTest < Minitest::Test
42
42
 
43
43
  def test_rack
44
44
  begin
45
- server = Agoo::Server.new(6467, 'root',
46
- pedantic: false,
47
- log_dir: '',
48
- thread_count: 1,
49
- log_console: true,
50
- log_classic: true,
51
- log_colorize: true,
52
- log_states: {
53
- INFO: false,
54
- DEBUG: false,
55
- connect: false,
56
- request: false,
57
- response: false,
58
- eval: true,
59
- })
45
+ Agoo::Log.configure(dir: '',
46
+ console: true,
47
+ classic: true,
48
+ colorize: true,
49
+ states: {
50
+ INFO: false,
51
+ DEBUG: false,
52
+ connect: false,
53
+ request: false,
54
+ response: false,
55
+ eval: true,
56
+ })
57
+
58
+ Agoo::Server.init(6467, 'root', thread_count: 1)
60
59
 
61
60
  handler = TellMeHandler.new
62
- server.handle(:GET, "/tellme", handler)
63
- server.handle(:POST, "/makeme", handler)
64
- server.handle(:PUT, "/makeme", handler)
61
+ Agoo::Server.handle(:GET, "/tellme", handler)
62
+ Agoo::Server.handle(:POST, "/makeme", handler)
63
+ Agoo::Server.handle(:PUT, "/makeme", handler)
65
64
 
66
- server.start()
65
+ Agoo::Server.start()
67
66
 
68
67
  eval_test
69
68
  post_test
70
69
  put_test
71
70
  ensure
72
- server.shutdown
71
+ Agoo.shutdown
73
72
  end
74
73
  end
75
74
 
@@ -17,52 +17,54 @@ class StaticTest < Minitest::Test
17
17
  # Run all the tests in one test to avoid creating the server multiple times.
18
18
  def test_static
19
19
  begin
20
- server = Agoo::Server.new(6466, 'root',
21
- thread_count: 1,
22
- log_dir: '',
23
- log_console: true,
24
- log_classic: true,
25
- log_colorize: true,
26
- log_states: {
27
- INFO: false,
28
- DEBUG: false,
29
- connect: false,
30
- request: false,
31
- response: false,
32
- eval: true,
33
- })
34
- server.add_mime('odd', 'text/odd')
35
- server.start()
20
+ Agoo::Log.configure(dir: '',
21
+ console: true,
22
+ classic: true,
23
+ colorize: true,
24
+ states: {
25
+ INFO: false,
26
+ DEBUG: false,
27
+ connect: false,
28
+ request: false,
29
+ response: false,
30
+ eval: true,
31
+ })
32
+
33
+ Agoo::Server.init(6469, 'root', thread_count: 1)
34
+ Agoo::Server.add_mime('odd', 'text/odd')
35
+ Agoo::Server.start()
36
36
  fetch_index_test
37
37
  mime_test
38
38
  fetch_auto_index_test
39
39
  fetch_nested_test
40
40
  fetch_not_found_test
41
41
  ensure
42
- server.shutdown
42
+ Agoo::shutdown
43
43
  end
44
44
  end
45
45
 
46
46
 
47
47
  def fetch_index_test
48
- uri = URI('http://localhost:6466/index.html')
49
- req = Net::HTTP::Get.new(uri)
50
- res = Net::HTTP.start(uri.hostname, uri.port) { |h|
51
- h.request(req)
52
- }
53
- content = res.body
54
- assert_equal('text/html', res['Content-Type'])
48
+ uri = URI('http://localhost:6469/index.html')
55
49
  expect = %|<!DOCTYPE html>
56
50
  <html>
57
51
  <head><title>Agoo Test</title></head>
58
52
  <body>Agoo</body>
59
53
  </html>
60
54
  |
55
+ req = Net::HTTP::Get.new(uri)
56
+ req['Accept-Encoding'] = '*'
57
+ req['User-Agent'] = 'Ruby'
58
+ res = Net::HTTP.start(uri.hostname, uri.port) { |h|
59
+ h.request(req)
60
+ }
61
+ content = res.body
62
+ assert_equal('text/html', res['Content-Type'])
61
63
  assert_equal(expect, content)
62
64
  end
63
65
 
64
66
  def mime_test
65
- uri = URI('http://localhost:6466/odd.odd')
67
+ uri = URI('http://localhost:6469/odd.odd')
66
68
  req = Net::HTTP::Get.new(uri)
67
69
  res = Net::HTTP.start(uri.hostname, uri.port) { |h|
68
70
  h.request(req)
@@ -71,7 +73,7 @@ class StaticTest < Minitest::Test
71
73
  end
72
74
 
73
75
  def fetch_auto_index_test
74
- uri = URI('http://localhost:6466/')
76
+ uri = URI('http://localhost:6469/')
75
77
  content = Net::HTTP.get(uri)
76
78
  expect = %|<!DOCTYPE html>
77
79
  <html>
@@ -83,14 +85,14 @@ class StaticTest < Minitest::Test
83
85
  end
84
86
 
85
87
  def fetch_nested_test
86
- uri = URI('http://localhost:6466/nest/something.txt')
88
+ uri = URI('http://localhost:6469/nest/something.txt')
87
89
  content = Net::HTTP.get(uri)
88
90
  assert_equal('Just some text.
89
91
  ', content)
90
92
  end
91
93
 
92
94
  def fetch_not_found_test
93
- uri = URI('http://localhost:6466/bad.html')
95
+ uri = URI('http://localhost:6469/bad.html')
94
96
  res = Net::HTTP.get_response(uri)
95
97
  assert_equal("404", res.code)
96
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agoo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Ohler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-26 00:00:00.000000000 Z
11
+ date: 2018-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj
@@ -43,6 +43,10 @@ files:
43
43
  - README.md
44
44
  - bin/agoo
45
45
  - ext/agoo/agoo.c
46
+ - ext/agoo/base64.c
47
+ - ext/agoo/base64.h
48
+ - ext/agoo/ccache.c
49
+ - ext/agoo/ccache.h
46
50
  - ext/agoo/con.c
47
51
  - ext/agoo/con.h
48
52
  - ext/agoo/debug.c
@@ -63,6 +67,8 @@ files:
63
67
  - ext/agoo/log_queue.h
64
68
  - ext/agoo/page.c
65
69
  - ext/agoo/page.h
70
+ - ext/agoo/pub.c
71
+ - ext/agoo/pub.h
66
72
  - ext/agoo/queue.c
67
73
  - ext/agoo/queue.h
68
74
  - ext/agoo/rack_logger.c
@@ -75,18 +81,28 @@ files:
75
81
  - ext/agoo/response.h
76
82
  - ext/agoo/server.c
77
83
  - ext/agoo/server.h
84
+ - ext/agoo/sha1.c
85
+ - ext/agoo/sha1.h
86
+ - ext/agoo/sse.c
87
+ - ext/agoo/sse.h
88
+ - ext/agoo/sub.c
89
+ - ext/agoo/sub.h
90
+ - ext/agoo/subscription.c
91
+ - ext/agoo/subscription.h
78
92
  - ext/agoo/text.c
79
93
  - ext/agoo/text.h
80
94
  - ext/agoo/types.h
95
+ - ext/agoo/upgraded.c
96
+ - ext/agoo/upgraded.h
97
+ - ext/agoo/websocket.c
98
+ - ext/agoo/websocket.h
81
99
  - lib/agoo.rb
82
100
  - lib/agoo/version.rb
83
101
  - lib/rack/handler/agoo.rb
84
102
  - test/base_handler_test.rb
85
103
  - test/log_test.rb
86
104
  - test/rack_handler_test.rb
87
- - test/rrr/test.rb
88
105
  - test/static_test.rb
89
- - test/tests.rb
90
106
  homepage: https://github.com/ohler55/agoo
91
107
  licenses:
92
108
  - MIT
@@ -100,6 +116,8 @@ rdoc_options:
100
116
  - "-x"
101
117
  - '"test/*"'
102
118
  - "-x"
119
+ - '"example/*"'
120
+ - "-x"
103
121
  - extconf.rb
104
122
  require_paths:
105
123
  - lib
@@ -116,14 +134,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
134
  requirements:
117
135
  - Linux or macOS
118
136
  rubyforge_project: agoo
119
- rubygems_version: 2.7.3
137
+ rubygems_version: 2.7.6
120
138
  signing_key:
121
139
  specification_version: 4
122
140
  summary: An HTTP server
123
141
  test_files:
124
- - test/tests.rb
125
142
  - test/rack_handler_test.rb
126
143
  - test/base_handler_test.rb
127
- - test/rrr/test.rb
128
144
  - test/static_test.rb
129
145
  - test/log_test.rb
@@ -1,26 +0,0 @@
1
- # coding: utf-8
2
- # frozen_string_literal: true
3
-
4
- require "agoo"
5
-
6
- server = Agoo::Server.new(6464, "root", thread_count: 0)
7
-
8
- class MyHandler
9
- def call(_req)
10
- [200, {}, ["hello world"]]
11
- end
12
- end
13
-
14
- handler = MyHandler.new
15
- #server.handle(:GET, "/hello", handler)
16
- server.handle(nil, "**", handler)
17
- server.start
18
-
19
- # $ bundle exec ruby test.rb
20
- # waits for connections, nothing is logged.
21
-
22
- # on a separated shell:
23
- # ➜ curl -I http://localhost:6464
24
- # HTTP/1.1 500 Internal Error
25
- # Connection: Close
26
- # Content-Length: 0
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- $: << File.dirname(__FILE__)
4
-
5
- require 'log_test'
6
- require 'static_test'
7
- require 'base_handler_test'
8
- require 'rack_handler_test'