hayabusa 0.0.29 → 0.0.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/pages/benchmark.rhtml +0 -0
- data/pages/benchmark_print.rhtml +14 -0
- data/pages/benchmark_simple.rhtml +3 -0
- data/pages/benchmark_threadded_content.rhtml +21 -0
- data/pages/config_cgi.rb +22 -0
- data/pages/config_fcgi.rb +22 -0
- data/pages/debug_database_connections.rhtml +46 -0
- data/pages/debug_http_sessions.rhtml +40 -0
- data/pages/debug_memory_usage.rhtml +39 -0
- data/pages/error_notfound.rhtml +12 -0
- data/pages/image.png +0 -0
- data/pages/logs_latest.rhtml +57 -0
- data/pages/logs_show.rhtml +32 -0
- data/pages/spec.rhtml +41 -0
- data/pages/spec_exit.rhtml +5 -0
- data/pages/spec_multiple_threads.rhtml +18 -0
- data/pages/spec_sleeper.rhtml +4 -0
- data/pages/spec_test_multiple_clients.rhtml +3 -0
- data/pages/spec_thread_joins.rhtml +29 -0
- data/pages/spec_threadded_content.rhtml +40 -0
- data/pages/spec_vars_get.rhtml +4 -0
- data/pages/spec_vars_header.rhtml +3 -0
- data/pages/spec_vars_post.rhtml +4 -0
- data/pages/spec_vars_post_fileupload.rhtml +19 -0
- data/pages/testpic.jpeg +0 -0
- data/pages/tests.rhtml +14 -0
- data/pages/threadded_content_test.rhtml +23 -0
- metadata +28 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7470e0f4114b3ebfde5c0835a3fdf5e215e3fb1e56673fe2ee3ad928ecbbe322
|
4
|
+
data.tar.gz: 58fb40764ab163d4e5dff4316bbe1e6bcdb1e23654030b52b96dc2f3c0ae9e6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2dbf3369957abd438053ee92429646a03bc6377823586482ff594905596c6762f0948209bbd08319583b01a8e82200d0433e548219a412dfab87378329508290
|
7
|
+
data.tar.gz: 84ad8ab3f40cde0a2572f028875f29943a8af3c9b628f44e4987d69eac4424fa4cf131d64f99d3999e12b156652313b5478f14b2b12688cdfd87213cb1298c13
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%
|
2
|
+
0.upto(100) do
|
3
|
+
print "Test 1<br />\n"
|
4
|
+
print "Test 2<br />\n"
|
5
|
+
print "Test 3<br />\n"
|
6
|
+
print "Test 4<br />\n"
|
7
|
+
print "Test 5<br />\n"
|
8
|
+
print "Test 6<br />\n"
|
9
|
+
print "Test 7<br />\n"
|
10
|
+
print "Test 8<br />\n"
|
11
|
+
print "Test 9<br />\n"
|
12
|
+
print "Test 10<br />\n"
|
13
|
+
end
|
14
|
+
%>
|
data/pages/config_cgi.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "rmagick"
|
3
|
+
|
4
|
+
Hayabusa::CGI_CONF = {
|
5
|
+
:hayabusa => {
|
6
|
+
:title => "Cgi_test",
|
7
|
+
:doc_root => File.realpath(File.dirname(__FILE__)),
|
8
|
+
:handlers_extra => [{
|
9
|
+
:regex => /^\/Kasper$/,
|
10
|
+
:callback => proc{|data|
|
11
|
+
data[:httpsession].page_path = nil
|
12
|
+
|
13
|
+
eruby = data[:httpsession].eruby
|
14
|
+
eruby.connect(:on_error) do |e|
|
15
|
+
_hb.handle_error(e)
|
16
|
+
end
|
17
|
+
|
18
|
+
eruby.import("#{File.dirname(__FILE__)}/../pages/spec.rhtml")
|
19
|
+
}
|
20
|
+
}]
|
21
|
+
}
|
22
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
require "rmagick"
|
3
|
+
|
4
|
+
Hayabusa::FCGI_CONF = {
|
5
|
+
:hayabusa => {
|
6
|
+
:title => "Fcgi_test",
|
7
|
+
:doc_root => File.realpath(File.dirname(__FILE__)),
|
8
|
+
:handlers_extra => [{
|
9
|
+
:regex => /^\/Kasper$/,
|
10
|
+
:callback => proc{|data|
|
11
|
+
data[:httpsession].page_path = nil
|
12
|
+
|
13
|
+
eruby = data[:httpsession].eruby
|
14
|
+
eruby.connect(:on_error) do |e|
|
15
|
+
_hb.handle_error(e)
|
16
|
+
end
|
17
|
+
|
18
|
+
eruby.import("#{File.dirname(__FILE__)}/../pages/spec.rhtml")
|
19
|
+
}
|
20
|
+
}]
|
21
|
+
}
|
22
|
+
}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<h1>Database connections</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th>Key</th>
|
7
|
+
<th>Free</th>
|
8
|
+
</tr>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<%
|
12
|
+
thread_handler = _hb.db_handler.conns
|
13
|
+
if !thread_handler.is_a?(Knj::Threadhandler)
|
14
|
+
print "A threadhandler has not been spawned for this instance."
|
15
|
+
exit
|
16
|
+
end
|
17
|
+
|
18
|
+
objects = thread_handler.objects.clone
|
19
|
+
|
20
|
+
objects.each_index do |key|
|
21
|
+
val = objects[key]
|
22
|
+
|
23
|
+
%>
|
24
|
+
<tr>
|
25
|
+
<td>
|
26
|
+
<%=key%>
|
27
|
+
</td>
|
28
|
+
<td>
|
29
|
+
<%=Knj::Strings.yn_str(val[:free])%>
|
30
|
+
</td>
|
31
|
+
</tr>
|
32
|
+
<%
|
33
|
+
end
|
34
|
+
|
35
|
+
if objects.empty?
|
36
|
+
%>
|
37
|
+
<tr>
|
38
|
+
<td colspan="2">
|
39
|
+
Thread handler was spawned but no active connections was spawned?
|
40
|
+
</td>
|
41
|
+
</tr>
|
42
|
+
<%
|
43
|
+
end
|
44
|
+
%>
|
45
|
+
</tbody>
|
46
|
+
</table>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<h1>HTTP sessions</h1>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th>Key</th>
|
7
|
+
<th>Working</th>
|
8
|
+
</tr>
|
9
|
+
</thead>
|
10
|
+
<tbody>
|
11
|
+
<%
|
12
|
+
sessions = _hb.httpserv.http_sessions.clone
|
13
|
+
|
14
|
+
sessions.each_index do |key|
|
15
|
+
http_session = sessions[key]
|
16
|
+
|
17
|
+
%>
|
18
|
+
<tr>
|
19
|
+
<td>
|
20
|
+
<%=key%>
|
21
|
+
</td>
|
22
|
+
<td>
|
23
|
+
<%=Knj::Strings.yn_str(http_session.working)%>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<%
|
27
|
+
end
|
28
|
+
|
29
|
+
if sessions.empty?
|
30
|
+
%>
|
31
|
+
<tr>
|
32
|
+
<td colspan="2">
|
33
|
+
No HTTP-sessions has been spawned.
|
34
|
+
</td>
|
35
|
+
</tr>
|
36
|
+
<%
|
37
|
+
end
|
38
|
+
%>
|
39
|
+
</tbody>
|
40
|
+
</table>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<%
|
2
|
+
if _get["choice"] == "dogarbagecollect"
|
3
|
+
_hb.clean
|
4
|
+
GC.start
|
5
|
+
|
6
|
+
#Clean all Knj::Objects used in the application.
|
7
|
+
ObjectSpace.each_object(Knj::Objects) do |objects|
|
8
|
+
objects.clean_all
|
9
|
+
end
|
10
|
+
|
11
|
+
Knj::Web.redirect("?show=debug_memory_usage")
|
12
|
+
end
|
13
|
+
%>
|
14
|
+
|
15
|
+
<h1>Memory usage</h1>
|
16
|
+
|
17
|
+
<div style="padding-bottom: 15px;">
|
18
|
+
<input type="button" value="Garbage collect" onclick="location.href='?show=debug_memory_usage&choice=dogarbagecollect';" />
|
19
|
+
</div>
|
20
|
+
|
21
|
+
<h1>Hayabusa sessions</h1>
|
22
|
+
<table style="width: 600px;">
|
23
|
+
<tbody>
|
24
|
+
<tr>
|
25
|
+
<td>Active sessions</td>
|
26
|
+
<td><%=_hb.num(_hb.sessions.length, 0)%></td>
|
27
|
+
</tr>
|
28
|
+
<tr>
|
29
|
+
<td>Total sessions</td>
|
30
|
+
<td><%=_hb.num(_hb.ob.list(:Session, "count" => true), 0)%>
|
31
|
+
</tr>
|
32
|
+
</tbody>
|
33
|
+
</table>
|
34
|
+
|
35
|
+
<br />
|
36
|
+
|
37
|
+
<%
|
38
|
+
Knj::Memory_analyzer.new.write
|
39
|
+
%>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%
|
2
|
+
_httpsession.resp.status = 404
|
3
|
+
%>
|
4
|
+
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
|
5
|
+
<html><head>
|
6
|
+
<title>404 Not Found</title>
|
7
|
+
</head><body>
|
8
|
+
<h1>Not Found</h1>
|
9
|
+
<p>The requested URL <%=_meta["REQUEST_URI"]%> was not found on this server.</p>
|
10
|
+
<hr>
|
11
|
+
<address>Hayabusa at <%=_meta["HTTP_HOST"]%></address>
|
12
|
+
</body></html>
|
data/pages/image.png
ADDED
Binary file
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<%
|
2
|
+
access = _hb.events.call(:check_page_access, {:page => :logs_latest})
|
3
|
+
if !access
|
4
|
+
print _("You do not have access to this page.")
|
5
|
+
exit
|
6
|
+
end
|
7
|
+
|
8
|
+
ob = _hb.events.call(:ob)
|
9
|
+
%>
|
10
|
+
|
11
|
+
<table class="list">
|
12
|
+
<thead>
|
13
|
+
<tr>
|
14
|
+
<th><%=_("ID")%></th>
|
15
|
+
<th><%=_("Log")%></th>
|
16
|
+
<%if ob%>
|
17
|
+
<th><%=_("Object")%></th>
|
18
|
+
<%end%>
|
19
|
+
</tr>
|
20
|
+
</thead>
|
21
|
+
<tbody>
|
22
|
+
<%
|
23
|
+
logs = _hb.ob.list(:Log, {
|
24
|
+
"orderby" => [["date_saved", "desc"]],
|
25
|
+
"limit" => 200
|
26
|
+
})
|
27
|
+
|
28
|
+
logs.each do |log|
|
29
|
+
%>
|
30
|
+
<tr>
|
31
|
+
<td>
|
32
|
+
<a href="logs_show.rhtml?log_id=<%=log.id%>"><%=log.id%></a>
|
33
|
+
</td>
|
34
|
+
<td>
|
35
|
+
<%=log.first_line%>
|
36
|
+
</td>
|
37
|
+
<%if ob%>
|
38
|
+
<td>
|
39
|
+
<%=log.objects_html(ob)%>
|
40
|
+
</td>
|
41
|
+
<%end%>
|
42
|
+
</tr>
|
43
|
+
<%
|
44
|
+
end
|
45
|
+
|
46
|
+
if logs.empty?
|
47
|
+
%>
|
48
|
+
<tr>
|
49
|
+
<td class="error">
|
50
|
+
<%=_("No logs were found.")%>
|
51
|
+
</td>
|
52
|
+
</tr>
|
53
|
+
<%
|
54
|
+
end
|
55
|
+
%>
|
56
|
+
</tbody>
|
57
|
+
</table>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
<%
|
2
|
+
access = _hb.events.call(:check_page_access, {:page => :logs_show})
|
3
|
+
if !access
|
4
|
+
print _("You do not have access to this page.")
|
5
|
+
exit
|
6
|
+
end
|
7
|
+
|
8
|
+
ob = _hb.events.call(:ob)
|
9
|
+
log = _hb.ob.get(:Log, _get["log_id"])
|
10
|
+
%>
|
11
|
+
|
12
|
+
<table class="form">
|
13
|
+
<%
|
14
|
+
print Knj::Web.inputs([{
|
15
|
+
:title => _("Date"),
|
16
|
+
:type => :info,
|
17
|
+
:value => Datet.in(log[:date_saved]).out
|
18
|
+
}])
|
19
|
+
|
20
|
+
if ob
|
21
|
+
print Knj::Web.input(
|
22
|
+
:title => _("Objects"),
|
23
|
+
:type => :info,
|
24
|
+
:value => log.objects_html(ob)
|
25
|
+
)
|
26
|
+
end
|
27
|
+
%>
|
28
|
+
</table>
|
29
|
+
|
30
|
+
<div style="padding-top: 10px;">
|
31
|
+
<%=log.text%>
|
32
|
+
</div>
|
data/pages/spec.rhtml
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
<%
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
if _get["choice"] == "test_cookie"
|
5
|
+
_hb.cookie(
|
6
|
+
"name" => "TestCookie",
|
7
|
+
"value" => "TestValue",
|
8
|
+
"expires" => Time.new + 3600 #add an hour
|
9
|
+
)
|
10
|
+
_hb.cookie(
|
11
|
+
"name" => "TestCookie2",
|
12
|
+
"value" => "TestValue2",
|
13
|
+
"expires" => Time.new + 7200 #add an hour
|
14
|
+
)
|
15
|
+
_hb.cookie(
|
16
|
+
"name" => "TestCookie3",
|
17
|
+
"value" => "TestValue 3 ",
|
18
|
+
"expires" => Time.new + 1200
|
19
|
+
)
|
20
|
+
exit
|
21
|
+
elsif _get["choice"] == "dopostconvert"
|
22
|
+
print JSON.generate(_post)
|
23
|
+
exit
|
24
|
+
end
|
25
|
+
|
26
|
+
if _get["choice"] == "get_cookies"
|
27
|
+
print JSON.generate(_cookie)
|
28
|
+
exit
|
29
|
+
end
|
30
|
+
|
31
|
+
_hb.header("TestHeader", "NormalHeader")
|
32
|
+
_hb.header_raw("TestRaw: RawHeader")
|
33
|
+
|
34
|
+
if _meta["REQUEST_METHOD"] == "POST"
|
35
|
+
print _post["postdata"]
|
36
|
+
elsif _get["choice"] == "check_get_parse"
|
37
|
+
print _get["value"]
|
38
|
+
else
|
39
|
+
print "Test"
|
40
|
+
end
|
41
|
+
%>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
if !_session.key?(:request_count)
|
5
|
+
_session[:request_count] = 1
|
6
|
+
else
|
7
|
+
_session[:request_count] = _session[:request_count].to_i + 1
|
8
|
+
end
|
9
|
+
|
10
|
+
print JSON.generate(
|
11
|
+
:pid => Process.pid,
|
12
|
+
:session_id => _session_obj.id,
|
13
|
+
:session_hash_id => _session.__id__,
|
14
|
+
:request_count => _session[:request_count],
|
15
|
+
:cookie => _cookie,
|
16
|
+
:meta => _meta
|
17
|
+
)
|
18
|
+
%>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<%
|
2
|
+
#Knj.p _hb.config
|
3
|
+
#exit
|
4
|
+
|
5
|
+
print "1"
|
6
|
+
|
7
|
+
cont = "2"
|
8
|
+
t1 = _hb.thread(:id => 4) do
|
9
|
+
sleep 0.5
|
10
|
+
cont << "4"
|
11
|
+
end
|
12
|
+
|
13
|
+
t2 = _hb.thread(:id => 3) do
|
14
|
+
sleep 0.3
|
15
|
+
cont << "3"
|
16
|
+
end
|
17
|
+
|
18
|
+
sleep 0.1
|
19
|
+
|
20
|
+
raise "Expected thread 1 to be running but it wasnt." if !t1.running?
|
21
|
+
raise "Expected thread 2 to be running but it wasnt." if !t2.running?
|
22
|
+
|
23
|
+
t1.join
|
24
|
+
t2.join_error
|
25
|
+
|
26
|
+
cont << "5"
|
27
|
+
|
28
|
+
print cont
|
29
|
+
%>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<%
|
2
|
+
_hb.threadded_content do
|
3
|
+
sleep 0.2
|
4
|
+
print "1"
|
5
|
+
end
|
6
|
+
|
7
|
+
print "2"
|
8
|
+
|
9
|
+
_hb.threadded_content do
|
10
|
+
sleep 0.1
|
11
|
+
|
12
|
+
_hb.threadded_content do
|
13
|
+
sleep 0.1
|
14
|
+
print "3"
|
15
|
+
|
16
|
+
sleep 0.1
|
17
|
+
|
18
|
+
_hb.threadded_content do
|
19
|
+
print "4"
|
20
|
+
sleep 0.1
|
21
|
+
print "5"
|
22
|
+
end
|
23
|
+
|
24
|
+
_hb.threadded_content do
|
25
|
+
print "6"
|
26
|
+
print "7"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
print "8"
|
31
|
+
end
|
32
|
+
|
33
|
+
#This will first finish after the printing has starter - it should still be printed correct.
|
34
|
+
_hb.threadded_content do
|
35
|
+
sleep 1
|
36
|
+
print "9"
|
37
|
+
end
|
38
|
+
|
39
|
+
print "10"
|
40
|
+
%>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%
|
2
|
+
pdata = {}
|
3
|
+
_post.each do |key, val|
|
4
|
+
data = {
|
5
|
+
"class" => val.class.name
|
6
|
+
}
|
7
|
+
|
8
|
+
if val.is_a?(Hayabusa::Http_session::Post_multipart::File_upload)
|
9
|
+
data["val"] = val.to_s
|
10
|
+
else
|
11
|
+
data["val"] = val
|
12
|
+
end
|
13
|
+
|
14
|
+
pdata[key] = data
|
15
|
+
end
|
16
|
+
|
17
|
+
require "json"
|
18
|
+
print Marshal.dump(pdata)
|
19
|
+
%>
|
data/pages/testpic.jpeg
ADDED
Binary file
|
data/pages/tests.rhtml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
<%
|
2
|
+
print "1"
|
3
|
+
|
4
|
+
_hb.threadded_content do
|
5
|
+
print "2"
|
6
|
+
sleep 0.5
|
7
|
+
end
|
8
|
+
|
9
|
+
print "3"
|
10
|
+
|
11
|
+
_hb.threadded_content do
|
12
|
+
print "4"
|
13
|
+
|
14
|
+
_hb.threadded_content do
|
15
|
+
print "5"
|
16
|
+
sleep 0.2
|
17
|
+
end
|
18
|
+
|
19
|
+
sleep 0.3
|
20
|
+
end
|
21
|
+
|
22
|
+
print "6"
|
23
|
+
%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hayabusa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kasper Stöckel
|
@@ -344,6 +344,33 @@ files:
|
|
344
344
|
- lib/models/log_data_value.rb
|
345
345
|
- lib/models/log_link.rb
|
346
346
|
- lib/models/session.rb
|
347
|
+
- pages/benchmark.rhtml
|
348
|
+
- pages/benchmark_print.rhtml
|
349
|
+
- pages/benchmark_simple.rhtml
|
350
|
+
- pages/benchmark_threadded_content.rhtml
|
351
|
+
- pages/config_cgi.rb
|
352
|
+
- pages/config_fcgi.rb
|
353
|
+
- pages/debug_database_connections.rhtml
|
354
|
+
- pages/debug_http_sessions.rhtml
|
355
|
+
- pages/debug_memory_usage.rhtml
|
356
|
+
- pages/error_notfound.rhtml
|
357
|
+
- pages/image.png
|
358
|
+
- pages/logs_latest.rhtml
|
359
|
+
- pages/logs_show.rhtml
|
360
|
+
- pages/spec.rhtml
|
361
|
+
- pages/spec_exit.rhtml
|
362
|
+
- pages/spec_multiple_threads.rhtml
|
363
|
+
- pages/spec_sleeper.rhtml
|
364
|
+
- pages/spec_test_multiple_clients.rhtml
|
365
|
+
- pages/spec_thread_joins.rhtml
|
366
|
+
- pages/spec_threadded_content.rhtml
|
367
|
+
- pages/spec_vars_get.rhtml
|
368
|
+
- pages/spec_vars_header.rhtml
|
369
|
+
- pages/spec_vars_post.rhtml
|
370
|
+
- pages/spec_vars_post_fileupload.rhtml
|
371
|
+
- pages/testpic.jpeg
|
372
|
+
- pages/tests.rhtml
|
373
|
+
- pages/threadded_content_test.rhtml
|
347
374
|
homepage: http://github.com/kaspernj/hayabusa
|
348
375
|
licenses:
|
349
376
|
- MIT
|