armstrong 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -59,13 +59,28 @@ commit e86c74aed added functionality for parameters in your path. These are simp
59
59
 
60
60
  The params are always going to be stored in `env`, naturally.
61
61
 
62
+ You can also return other codes and custom headers by returning an array with the signature:
63
+ [code, headers, response]
64
+
62
65
  ## benchmarking ##
63
66
 
64
- $ time curl localhost:6767/
65
- Hello World
66
- real 0m0.014s
67
- user 0m0.007s
68
- sys 0m0.004s
67
+ $ siege -d 1 -c 150 -t 10s localhost:6767/
68
+ ** SIEGE 2.70
69
+ ** Preparing 150 concurrent users for battle.
70
+ The server is now under siege...
71
+ Lifting the server siege... done.
72
+ Transactions: 5029 hits
73
+ Availability: 100.00 %
74
+ Elapsed time: 9.06 secs
75
+ Data transferred: 0.05 MB
76
+ Response time: 0.26 secs
77
+ Transaction rate: 555.08 trans/sec
78
+ Throughput: 0.01 MB/sec
79
+ Concurrency: 146.56
80
+ Successful transactions: 5029
81
+ Failed transactions: 0
82
+ Longest transaction: 0.67
83
+ Shortest transaction: 0.02
69
84
 
70
85
  ## License ##
71
86
  GPLv3
data/armstrong.gemspec CHANGED
@@ -1,4 +1,4 @@
1
- Gem::Specification.new 'armstrong', '0.4.0' do |s|
1
+ Gem::Specification.new 'armstrong', '0.4.1' do |s|
2
2
  s.description = "Armstrong is an Mongrel2 fronted, actor-based web development framework similar in style to sinatra. With natively-threaded interpreters (Rubinius2), Armstrong provides true concurrency and high stability, by design."
3
3
  s.summary = "Highly concurrent, sinatra-like framework"
4
4
  s.author = "Artem Titoulenko"
@@ -41,7 +41,8 @@ class Connection
41
41
  header = "%s %d:%s" % [uuid, conn_id.join(' ').length, conn_id.join(' ')]
42
42
  string = header + ', ' + msg
43
43
  #puts "\t\treplying to #{conn_id} with: ", string
44
- @response_sock.send_string string, ZMQ::NOBLOCK
44
+ rc = @response_sock.send_string string, ZMQ::NOBLOCK
45
+ puts "errno [#{ZMQ::Util.errno}] with description [#{ZMQ::Util.error_string}]" unless ZMQ::Util.resultcode_ok?(rc)
45
46
  end
46
47
 
47
48
  # reply to an env with `message` string
@@ -33,6 +33,7 @@ Aleph::Base.replier_proc = Proc.new do
33
33
  puts "started (#{@name})"
34
34
  Actor.register(:replier, Actor.current)
35
35
  Aleph::Base.replier = Actor.current
36
+ Actor.trap_exit = true
36
37
  conn = nil
37
38
 
38
39
  loop do
@@ -94,9 +95,9 @@ Aleph::Base.request_handler_proc = Proc.new do
94
95
  Aleph::Base.replier << Reply.new(r.env, 404, {'Content-type'=>'text/html'}, "<h1>404</h1>") if failure
95
96
  end
96
97
 
97
- # f.when(Actor::DeadActorError) do |exit|
98
- # puts "#{exit.actor} died with reason: [#{exit.reason}]"
99
- # end
98
+ f.when(Actor::DeadActorError) do |exit|
99
+ puts "#{exit.actor} died with reason: [#{exit.reason}]"
100
+ end
100
101
  end
101
102
  end
102
103
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: armstrong
3
3
  version: !ruby/object:Gem::Version
4
- hash: 62288469761365696
4
+ hash: 596984887313028563
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 0
10
- version: 0.4.0
9
+ - 1
10
+ version: 0.4.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Artem Titoulenko