catalyst 0.0.2 → 0.0.3
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.
- data/VERSION +1 -1
- data/catalyst.gemspec +1 -1
- data/lib/catalyst.rb +5 -6
- data/lib/catalyst/runner.rb +4 -5
- data/test/test_catalyst.rb +11 -0
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/catalyst.gemspec
CHANGED
data/lib/catalyst.rb
CHANGED
@@ -4,6 +4,10 @@ require 'moneta'
|
|
4
4
|
module Catalyst
|
5
5
|
autoload :Runner, 'catalyst/runner'
|
6
6
|
|
7
|
+
def self.run_stack(&block)
|
8
|
+
RunStack.new(&block)
|
9
|
+
end
|
10
|
+
|
7
11
|
class RunStack
|
8
12
|
|
9
13
|
# Start a RunStack with a block
|
@@ -26,18 +30,13 @@ module Catalyst
|
|
26
30
|
self
|
27
31
|
end
|
28
32
|
|
29
|
-
# run is just another term for 'use'
|
30
|
-
def run
|
31
|
-
@run = app
|
32
|
-
end
|
33
|
-
|
34
33
|
# Turn this RunStack to a Runner
|
35
34
|
def to_app
|
36
35
|
Runner.new(stack)
|
37
36
|
end
|
38
37
|
|
39
38
|
# Start off the middleware
|
40
|
-
def call(env)
|
39
|
+
def call(env={})
|
41
40
|
to_app.call(env)
|
42
41
|
end
|
43
42
|
end
|
data/lib/catalyst/runner.rb
CHANGED
@@ -7,11 +7,11 @@ module Catalyst
|
|
7
7
|
@actions = actions.map {|act| setup_action(act) }
|
8
8
|
end
|
9
9
|
|
10
|
-
def call(env)
|
11
|
-
return if
|
10
|
+
def call(env={})
|
11
|
+
return if actions.empty?
|
12
12
|
|
13
13
|
begin
|
14
|
-
action =
|
14
|
+
action = history.unshift(@actions.shift).first
|
15
15
|
action.call(env)
|
16
16
|
rescue Exception => e
|
17
17
|
env["catalyst.error"] = e
|
@@ -26,8 +26,7 @@ module Catalyst
|
|
26
26
|
klass.new(self, *args, &block)
|
27
27
|
elsif klass.respond_to?(:call)
|
28
28
|
lambda do |env|
|
29
|
-
klass.call(env)
|
30
|
-
self.call(env)
|
29
|
+
self.call(klass.call(env))
|
31
30
|
end
|
32
31
|
else
|
33
32
|
raise
|
data/test/test_catalyst.rb
CHANGED
@@ -39,5 +39,16 @@ class TestCatalyst < Test::Unit::TestCase
|
|
39
39
|
assert @@filtered_through_stack
|
40
40
|
end
|
41
41
|
|
42
|
+
should "be able to define a Catalyst run_Stack from the module" do
|
43
|
+
@@count = 0
|
44
|
+
rs = Catalyst.run_stack do
|
45
|
+
use lambda {|env| @@count += 1}
|
46
|
+
use lambda {|env| @@count += 1}
|
47
|
+
use lambda {|env| @@count += 1}
|
48
|
+
end
|
49
|
+
rs.call()
|
50
|
+
assert_equal @@count, 3
|
51
|
+
end
|
52
|
+
|
42
53
|
end
|
43
54
|
end
|