Capcode 0.9.7 → 0.9.8

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.
@@ -111,7 +111,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
111
111
  <h3 class="section-bar">Methods</h3>
112
112
 
113
113
  <div class="name-list">
114
- <a href="#M000022">http_authentication</a>&nbsp;&nbsp;
114
+ <a href="#M000024">http_authentication</a>&nbsp;&nbsp;
115
115
  </div>
116
116
  </div>
117
117
 
@@ -133,11 +133,11 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
133
133
  <div id="methods">
134
134
  <h3 class="section-bar">Public Instance methods</h3>
135
135
 
136
- <div id="method-M000022" class="method-detail">
137
- <a name="M000022"></a>
136
+ <div id="method-M000024" class="method-detail">
137
+ <a name="M000024"></a>
138
138
 
139
139
  <div class="method-heading">
140
- <a href="#M000022" class="method-signature">
140
+ <a href="#M000024" class="method-signature">
141
141
  <span class="method-name">http_authentication</span><span class="method-args">( opts = {}, &amp;b )</span>
142
142
  </a>
143
143
  </div>
@@ -173,8 +173,8 @@ The block must return a Hash of username =&gt; password like that :
173
173
  }
174
174
  </pre>
175
175
  <p><a class="source-toggle" href="#"
176
- onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
177
- <div class="method-source-code" id="M000022-source">
176
+ onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
177
+ <div class="method-source-code" id="M000024-source">
178
178
  <pre>
179
179
  <span class="ruby-comment cmt"># File lib/capcode/helpers/auth.rb, line 105</span>
180
180
  105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">http_authentication</span>( <span class="ruby-identifier">opts</span> = {}, <span class="ruby-operator">&amp;</span><span class="ruby-identifier">b</span> )
@@ -1 +1 @@
1
- Wed, 02 Jun 2010 21:48:10 +0200
1
+ Wed, 15 Sep 2010 14:22:01 +0200
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Jun 02 21:45:10 +0200 2010</td>
59
+ <td>Wed Sep 15 13:59:53 +0200 2010</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -91,6 +91,30 @@ href="http://www.algorithmique.net/capcode">www.algorithmique.net/capcode</a>/
91
91
  <a href="../classes/Capcode.html">Capcode</a> is a web microframework
92
92
  </p>
93
93
  <h2>FEATURES/PROBLEMS:</h2>
94
+ <h3>0.9.8</h3>
95
+ <ul>
96
+ <li>Add &quot;any&quot; to easly replace an <tt>alias_method :post, :get</tt>
97
+
98
+ </li>
99
+ <li>Bug correction in Filter : actions are now executed in the order they are
100
+ declared
101
+
102
+ </li>
103
+ <li>Filters execution stop at the first non nul response
104
+
105
+ </li>
106
+ <li>Add &quot;log&quot; helper
107
+
108
+ </li>
109
+ <li>Add <a href="http://unicorn.bogomips.org/">Unicorn</a> and <a
110
+ href="http://rainbows.rubyforge.org/">Rainbows</a> supports
111
+ (<b>EXPERIMENTAL</b>)
112
+
113
+ </li>
114
+ <li>Add &#8212;server option
115
+
116
+ </li>
117
+ </ul>
94
118
  <h3>0.9.7</h3>
95
119
  <ul>
96
120
  <li>Major bug correction in Capcode.URL
@@ -254,7 +278,7 @@ renderer
254
278
  <li>Add :content_type option to renderers (see render-image.rb)
255
279
 
256
280
  </li>
257
- <li>Add <a href="../classes/Capcode.html#M000012">Capcode.set</a> for
281
+ <li>Add <a href="../classes/Capcode.html#M000013">Capcode.set</a> for
258
282
  configuration. So Capcode::Herpers#erb_path=, Capcode::Herpers#sass_path=
259
283
  and Capcode::Herpers#haml_path= are deprecated, you must now use `set :erb,
260
284
  &#8230;&#8217;, `set :sass, &#8230;&#8217; and `set :haml, &#8230;&#8217;
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Fri May 28 11:59:09 +0200 2010</td>
59
+ <td>Sun Jun 20 13:09:06 +0200 2010</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Feb 10 08:55:11 +0100 2010</td>
59
+ <td>Wed Sep 15 14:21:40 +0200 2010</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -56,7 +56,7 @@
56
56
  </tr>
57
57
  <tr class="top-aligned-row">
58
58
  <td><strong>Last Update:</strong></td>
59
- <td>Wed Jun 02 21:43:29 +0200 2010</td>
59
+ <td>Wed Sep 15 14:11:05 +0200 2010</td>
60
60
  </tr>
61
61
  </table>
62
62
  </div>
@@ -93,6 +93,9 @@ Please read the README.rdoc file !
93
93
  capcode/filters&nbsp;&nbsp;
94
94
  capcode/ext/rack/urlmap&nbsp;&nbsp;
95
95
  mongrel&nbsp;&nbsp;
96
+ unicorn/launcher&nbsp;&nbsp;
97
+ unicorn/launcher&nbsp;&nbsp;
98
+ rainbows&nbsp;&nbsp;
96
99
  </div>
97
100
  </div>
98
101
 
@@ -21,30 +21,32 @@
21
21
  <h1 class="section-bar">Methods</h1>
22
22
  <div id="index-entries">
23
23
  <a href="classes/Capcode.html#M000001">Route (Capcode)</a><br />
24
- <a href="classes/Capcode/Helpers.html#M000019">URL (Capcode::Helpers)</a><br />
24
+ <a href="classes/Capcode/Helpers.html#M000020">URL (Capcode::Helpers)</a><br />
25
25
  <a href="classes/Capcode.html#M000010">application (Capcode)</a><br />
26
- <a href="classes/Capcode/Helpers.html#M000014">args (Capcode::Helpers)</a><br />
27
- <a href="classes/Capcode/Helpers.html#M000015">args= (Capcode::Helpers)</a><br />
28
- <a href="classes/Capcode.html#M000013">before_filter (Capcode)</a><br />
29
- <a href="classes/Capcode/Helpers.html#M000020">content_for (Capcode::Helpers)</a><br />
26
+ <a href="classes/Capcode/Helpers.html#M000015">args (Capcode::Helpers)</a><br />
27
+ <a href="classes/Capcode/Helpers.html#M000016">args= (Capcode::Helpers)</a><br />
28
+ <a href="classes/Capcode.html#M000014">before_filter (Capcode)</a><br />
29
+ <a href="classes/Capcode/Helpers.html#M000021">content_for (Capcode::Helpers)</a><br />
30
30
  <a href="classes/Capcode.html#M000003">env (Capcode)</a><br />
31
- <a href="classes/Capcode/Configuration.html#M000025">get (Capcode::Configuration)</a><br />
31
+ <a href="classes/Capcode/Configuration.html#M000027">get (Capcode::Configuration)</a><br />
32
32
  <a href="classes/Capcode.html#M000009">http_authentication (Capcode)</a><br />
33
- <a href="classes/Capcode/Helpers/Authorization.html#M000022">http_authentication (Capcode::Helpers::Authorization)</a><br />
34
- <a href="classes/Capcode/Helpers.html#M000017">json (Capcode::Helpers)</a><br />
33
+ <a href="classes/Capcode/Helpers/Authorization.html#M000024">http_authentication (Capcode::Helpers::Authorization)</a><br />
34
+ <a href="classes/Capcode/Helpers.html#M000018">json (Capcode::Helpers)</a><br />
35
+ <a href="classes/Capcode/Helpers.html#M000023">log (Capcode::Helpers)</a><br />
36
+ <a href="classes/Capcode.html#M000012">logger (Capcode)</a><br />
35
37
  <a href="classes/Capcode.html#M000007">map (Capcode)</a><br />
36
- <a href="classes/Capcode/Configuration.html#M000026">options (Capcode::Configuration)</a><br />
38
+ <a href="classes/Capcode/Configuration.html#M000028">options (Capcode::Configuration)</a><br />
37
39
  <a href="classes/Capcode.html#M000002">params (Capcode)</a><br />
38
- <a href="classes/Capcode/Configuration.html#M000023">print_debug (Capcode::Configuration)</a><br />
39
- <a href="classes/Capcode/Helpers.html#M000018">redirect (Capcode::Helpers)</a><br />
40
- <a href="classes/Capcode/Helpers.html#M000016">render (Capcode::Helpers)</a><br />
40
+ <a href="classes/Capcode/Configuration.html#M000025">print_debug (Capcode::Configuration)</a><br />
41
+ <a href="classes/Capcode/Helpers.html#M000019">redirect (Capcode::Helpers)</a><br />
42
+ <a href="classes/Capcode/Helpers.html#M000017">render (Capcode::Helpers)</a><br />
41
43
  <a href="classes/Capcode.html#M000005">request (Capcode)</a><br />
42
44
  <a href="classes/Capcode.html#M000006">response (Capcode)</a><br />
43
45
  <a href="classes/Capcode.html#M000011">run (Capcode)</a><br />
44
46
  <a href="classes/Capcode.html#M000004">session (Capcode)</a><br />
45
- <a href="classes/Capcode/Configuration.html#M000024">set (Capcode::Configuration)</a><br />
46
- <a href="classes/Capcode.html#M000012">set (Capcode)</a><br />
47
- <a href="classes/Capcode/Helpers.html#M000021">static (Capcode::Helpers)</a><br />
47
+ <a href="classes/Capcode/Configuration.html#M000026">set (Capcode::Configuration)</a><br />
48
+ <a href="classes/Capcode.html#M000013">set (Capcode)</a><br />
49
+ <a href="classes/Capcode/Helpers.html#M000022">static (Capcode::Helpers)</a><br />
48
50
  <a href="classes/Capcode.html#M000008">use (Capcode)</a><br />
49
51
  </div>
50
52
  </div>
@@ -1,3 +1,3 @@
1
1
  require 'rest'
2
2
 
3
- run Capcode.run()
3
+ Capcode.run( :log => "rest.log" )
@@ -0,0 +1,70 @@
1
+ # Logfile created on Sun Jun 13 20:42:18 +0200 2010 by logger.rb/22285
2
+ 127.0.0.1 - - [13/Jun/2010 20:42:24] "GET / HTTP/1.1" 200 586 0.0173
3
+ GET...
4
+ 127.0.0.1 - - [13/Jun/2010 20:42:27] "GET /action?data=1 HTTP/1.1" 200 619 0.0082
5
+ POST...
6
+ 127.0.0.1 - - [13/Jun/2010 20:42:30] "POST /action HTTP/1.1" 200 620 0.0080
7
+ DELETE...
8
+ 127.0.0.1 - - [13/Jun/2010 20:42:33] "POST /action HTTP/1.1" 200 622 0.0078
9
+ PUT...
10
+ 127.0.0.1 - - [13/Jun/2010 20:42:37] "POST /action HTTP/1.1" 200 619 0.0066
11
+ 127.0.0.1 - - [13/Jun/2010 20:43:33] "GET / HTTP/1.1" 200 586 0.0165
12
+ GET...
13
+ 127.0.0.1 - - [13/Jun/2010 20:43:37] "GET /action?data=A HTTP/1.1" 200 619 0.0075
14
+ POST...
15
+ 127.0.0.1 - - [13/Jun/2010 20:43:40] "POST /action HTTP/1.1" 200 620 0.0081
16
+ DELETE...
17
+ 127.0.0.1 - - [13/Jun/2010 20:43:42] "POST /action HTTP/1.1" 200 622 0.0073
18
+ PUT...
19
+ 127.0.0.1 - - [13/Jun/2010 20:43:43] "POST /action HTTP/1.1" 200 619 0.0072
20
+ 127.0.0.1 - - [13/Jun/2010 20:48:07] "GET / HTTP/1.1" 200 586 0.0173
21
+ GET...
22
+ 127.0.0.1 - - [13/Jun/2010 20:48:13] "GET /action?data=a HTTP/1.1" 200 619 0.0092
23
+ 127.0.0.1 - - [13/Jun/2010 20:48:43] "GET / HTTP/1.1" 200 586 0.0157
24
+ GET...
25
+ 127.0.0.1 - - [13/Jun/2010 20:48:46] "GET /action?data=z HTTP/1.1" 200 619 0.0072
26
+ GET...
27
+ 127.0.0.1 - - [13/Jun/2010 20:49:01] "GET /action?data=zz HTTP/1.1" 200 620 0.0064
28
+ 127.0.0.1 - - [20/Jun/2010 12:53:42] "GET / HTTP/1.1" 200 586 0.0804
29
+ 127.0.0.1 - - [20/Jun/2010 12:53:43] "GET /favicon.ico HTTP/1.1" 200 586 0.0068
30
+ GET...
31
+ 127.0.0.1 - - [20/Jun/2010 12:53:46] "GET /action?data=pipo HTTP/1.1" 200 622 0.0080
32
+ 127.0.0.1 - - [20/Jun/2010 13:03:30] "GET / HTTP/1.1" 200 586 0.0208
33
+ 127.0.0.1 - - [20/Jun/2010 13:03:32] "GET / HTTP/1.1" 200 586 0.0058
34
+ 127.0.0.1 - - [20/Jun/2010 13:03:32] "GET /favicon.ico HTTP/1.1" 200 586 0.0652
35
+ GET...
36
+ 127.0.0.1 - - [20/Jun/2010 13:03:36] "GET /action?data=pipo HTTP/1.1" 200 622 0.0076
37
+ POST...
38
+ 127.0.0.1 - - [20/Jun/2010 13:03:39] "POST /action HTTP/1.1" 200 623 0.0077
39
+ DELETE...
40
+ 127.0.0.1 - - [20/Jun/2010 13:03:43] "POST /action HTTP/1.1" 200 624 0.0071
41
+ PUT...
42
+ 127.0.0.1 - - [20/Jun/2010 13:03:46] "POST /action HTTP/1.1" 200 625 0.0072
43
+ 127.0.0.1 - - [20/Jun/2010 13:05:02] "GET / HTTP/1.1" 200 586 0.0328
44
+ GET...
45
+ 127.0.0.1 - - [20/Jun/2010 13:05:05] "GET /action?data=pipo HTTP/1.1" 200 622 0.0079
46
+ POST...
47
+ 127.0.0.1 - - [20/Jun/2010 13:05:08] "POST /action HTTP/1.1" 200 623 0.0093
48
+ DELETE...
49
+ 127.0.0.1 - - [20/Jun/2010 13:05:11] "POST /action HTTP/1.1" 200 624 0.0096
50
+ PUT...
51
+ 127.0.0.1 - - [20/Jun/2010 13:05:14] "POST /action HTTP/1.1" 200 625 0.0092
52
+ 127.0.0.1 - - [20/Jun/2010 13:13:15] "GET / HTTP/1.1" 200 586 0.0290
53
+ GET...
54
+ 127.0.0.1 - - [20/Jun/2010 13:13:19] "GET /action?data=A HTTP/1.1" 200 619 0.0081
55
+ POST...
56
+ 127.0.0.1 - - [20/Jun/2010 13:13:22] "POST /action HTTP/1.1" 200 620 0.0101
57
+ DELETE...
58
+ 127.0.0.1 - - [20/Jun/2010 13:13:23] "POST /action HTTP/1.1" 200 622 0.0111
59
+ PUT...
60
+ 127.0.0.1 - - [20/Jun/2010 13:13:26] "POST /action HTTP/1.1" 200 619 0.2896
61
+ 127.0.0.1 - - [02/Sep/2010 14:43:18] "GET / HTTP/1.1" 200 586 0.1292
62
+ 127.0.0.1 - - [02/Sep/2010 14:43:18] "GET /favicon.ico HTTP/1.1" 200 586 0.0082
63
+ GET...
64
+ 127.0.0.1 - - [02/Sep/2010 14:43:21] "GET /action?data=get HTTP/1.1" 200 621 0.0068
65
+ POST...
66
+ 127.0.0.1 - - [02/Sep/2010 14:43:24] "POST /action HTTP/1.1" 200 623 0.0066
67
+ DELETE...
68
+ 127.0.0.1 - - [02/Sep/2010 14:43:27] "POST /action HTTP/1.1" 200 625 0.0070
69
+ PUT...
70
+ 127.0.0.1 - - [02/Sep/2010 14:43:31] "POST /action HTTP/1.1" 200 621 0.0800
@@ -10,21 +10,22 @@ module Capcode
10
10
  end
11
11
 
12
12
  class Action < Route "/action"
13
- def get( )
13
+ def any
14
14
  @method = env["REQUEST_METHOD"]
15
+ log.write( "#{@method}...\n" )
15
16
  @data = params["data"]
16
17
  render :markaby => :action, :layout => :forms
17
18
  end
18
19
 
19
- alias_method :post, :get
20
-
21
20
  def delete
21
+ log.write( "DELETE...\n" )
22
22
  @method = "DELETE"
23
23
  @data = params["data"]
24
24
  render :markaby => :action, :layout => :forms
25
25
  end
26
26
 
27
27
  def put
28
+ log.write( "PUT...\n" )
28
29
  @method = "PUT"
29
30
  @data = params["data"]
30
31
  render :markaby => :action, :layout => :forms
@@ -1,3 +1,3 @@
1
1
  require 'rest'
2
2
 
3
- run Capcode.application()
3
+ run Capcode.application( :log => "rest.log" )
@@ -285,6 +285,13 @@ module Capcode
285
285
  }
286
286
  end
287
287
 
288
+ # Use the Rack logger
289
+ #
290
+ # log.write( "This is a log !" )
291
+ def log
292
+ Capcode.logger || env['rack.errors']
293
+ end
294
+
288
295
  include Authorization
289
296
  end
290
297
 
@@ -484,15 +491,25 @@ module Capcode
484
491
  filter_output = Capcode::Filter.execute( self )
485
492
 
486
493
  if( filter_output.nil? )
487
- case @env["REQUEST_METHOD"]
488
- when "GET"
489
- get( *args )
490
- when "POST"
491
- _method = params.delete( "_method" ) { |_| "post" }
494
+ # case @env["REQUEST_METHOD"]
495
+ # when "GET"
496
+ # get( *args )
497
+ # when "POST"
498
+ # _method = params.delete( "_method" ) { |_| "post" }
499
+ # send( _method.downcase.to_sym, *args )
500
+ # else
501
+ # _method = @env["REQUEST_METHOD"]
502
+ # send( _method.downcase.to_sym, *args )
503
+ # end
504
+ begin
505
+ _method = params.delete( "_method" ) { |_| @env["REQUEST_METHOD"] }
506
+ if self.class.method_defined?( _method.downcase.to_sym )
492
507
  send( _method.downcase.to_sym, *args )
493
508
  else
494
- _method = @env["REQUEST_METHOD"]
495
- send( _method.downcase.to_sym, *args )
509
+ any( *args )
510
+ end
511
+ rescue => e
512
+ raise e.class, e.to_s
496
513
  end
497
514
  else
498
515
  filter_output
@@ -639,6 +656,7 @@ module Capcode
639
656
  app = Rack::Lint.new(app)
640
657
  app = Rack::ShowExceptions.new(app)
641
658
  #app = Rack::Reloader.new(app) ## -- NE RELOAD QUE capcode.rb -- So !!!
659
+ app = Rack::CommonLogger.new( app, @cclogger = Logger.new(Capcode::Configuration.get(:log)) )
642
660
 
643
661
  middlewares.each do |mw|
644
662
  middleware, args, block = mw
@@ -695,6 +713,9 @@ module Capcode
695
713
  opts.on( "-s", "--static PATH", "Static directory -- relative to the root directory (default: #{Capcode::Configuration.get(:static)})" ) { |r|
696
714
  Capcode::Configuration.set :static, r
697
715
  }
716
+ opts.on( "-S", "--server SERVER", "Server to use (default: #{Capcode::Configuration.get(:server)})" ) { |r|
717
+ Capcode::Configuration.set :server, r
718
+ }
698
719
 
699
720
  opts.separator ""
700
721
  opts.separator "Common options:"
@@ -764,7 +785,6 @@ module Capcode
764
785
  else
765
786
  app = application(Capcode::Configuration.get)
766
787
  end
767
- app = Rack::CommonLogger.new( app, Logger.new(Capcode::Configuration.get(:log)) )
768
788
 
769
789
  if Capcode::Configuration.get(:console)
770
790
  puts "Run console..."
@@ -789,6 +809,15 @@ module Capcode
789
809
  Rack::Handler::Thin.run( app, {:Port => Capcode::Configuration.get(:port), :Host => Capcode::Configuration.get(:host)} ) { |server|
790
810
  trap "SIGINT", proc { server.stop }
791
811
  }
812
+ when "unicorn"
813
+ require 'unicorn/launcher'
814
+ puts "** Starting Unicorn on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"
815
+ Unicorn.run( app, {:listeners => ["#{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"]} )
816
+ when "rainbows"
817
+ require 'unicorn/launcher'
818
+ require 'rainbows'
819
+ puts "** Starting Rainbow on #{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"
820
+ Rainbows.run( app, {:listeners => ["#{Capcode::Configuration.get(:host)}:#{Capcode::Configuration.get(:port)}"]} )
792
821
  end
793
822
  end
794
823
  end
@@ -797,6 +826,10 @@ module Capcode
797
826
  @routes ||= {}
798
827
  end
799
828
 
829
+ def logger
830
+ @cclogger
831
+ end
832
+
800
833
  def static #:nodoc:
801
834
  @static_dir ||= nil
802
835
  end
@@ -9,7 +9,7 @@ module Capcode
9
9
  @configuration = config.merge({
10
10
  :port => args[:port]||Capcode::Configuration.get(:port)||3000,
11
11
  :host => args[:host]||Capcode::Configuration.get(:host)||"0.0.0.0",
12
- :server => args[:server]||Capcode::Configuration.get(:server)||nil,
12
+ :server => args[:server]||Capcode::Configuration.get(:server)||"mongrel",
13
13
  :log => args[:log]||Capcode::Configuration.get(:log)||$stdout,
14
14
  :session => args[:session]||Capcode::Configuration.get(:session)||{},
15
15
  :pid => args[:pid]||Capcode::Configuration.get(:pid)||"#{$0}.pid",
@@ -36,7 +36,7 @@ module Capcode
36
36
  # Options :
37
37
  # * <tt>:port</tt> = Listen port (default: 3000)
38
38
  # * <tt>:host</tt> = Listen host (default: 0.0.0.0)
39
- # * <tt>:server</tt> = Server type (webrick, mongrel or thin)
39
+ # * <tt>:server</tt> = Server type (webrick, mongrel, thin, unicorn or rainbow)
40
40
  # * <tt>:log</tt> = Output logfile (default: STDOUT)
41
41
  # * <tt>:session</tt> = Session parameters. See Rack::Session for more informations
42
42
  # * <tt>:pid</tt> = PID file (default: $0.pid)
@@ -13,6 +13,7 @@ module Capcode
13
13
  #
14
14
  def before_filter( action, opts = {} )
15
15
  Capcode::Filter.filters[action] = { }
16
+ Capcode::Filter.ordered_actions << action
16
17
 
17
18
  opts.each do |k, v|
18
19
  Capcode::Filter.filters[action][k] = v
@@ -26,6 +27,10 @@ module Capcode
26
27
  @filters ||= { }
27
28
  end
28
29
 
30
+ def ordered_actions
31
+ @ordered_actions ||= []
32
+ end
33
+
29
34
  def execute( klass ) #:nodoc:
30
35
  klass_sym = "#{klass.class}".split( /::/)[-1].to_sym
31
36
  actions = []
@@ -39,8 +44,9 @@ module Capcode
39
44
 
40
45
  klass.class.instance_eval{ include Capcode }
41
46
  rCod = nil
42
- actions.each do |a|
47
+ ordered_actions.clone.delete_if{ |x| not actions.include?(x) }.each do |a|
43
48
  rCod = klass.send( a )
49
+ break unless rCod.nil?
44
50
  end
45
51
 
46
52
  return rCod
@@ -1,3 +1,3 @@
1
1
  module Capcode
2
- CAPCOD_VERION="0.9.7"
2
+ CAPCOD_VERION="0.9.8"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Capcode
3
3
  version: !ruby/object:Gem::Version
4
- hash: 53
4
+ hash: 43
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 7
10
- version: 0.9.7
9
+ - 8
10
+ version: 0.9.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Gr\xC3\xA9goire Lejeune"
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-06-02 00:00:00 +02:00
18
+ date: 2010-09-15 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -112,6 +112,7 @@ files:
112
112
  - examples/render-image.rb
113
113
  - examples/render-text.rb
114
114
  - examples/rest-run.rb
115
+ - examples/rest.log
115
116
  - examples/rest.rb
116
117
  - examples/rest.ru
117
118
  - examples/route.rb