merb-core 0.9.13 → 1.0

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.
Files changed (90) hide show
  1. data/Rakefile +5 -3
  2. data/lib/merb-core.rb +84 -41
  3. data/lib/merb-core/bootloader.rb +71 -60
  4. data/lib/merb-core/config.rb +31 -17
  5. data/lib/merb-core/controller/abstract_controller.rb +35 -35
  6. data/lib/merb-core/controller/exceptions.rb +14 -9
  7. data/lib/merb-core/controller/merb_controller.rb +22 -20
  8. data/lib/merb-core/controller/mime.rb +5 -5
  9. data/lib/merb-core/controller/mixins/authentication.rb +11 -8
  10. data/lib/merb-core/controller/mixins/conditional_get.rb +7 -7
  11. data/lib/merb-core/controller/mixins/controller.rb +15 -15
  12. data/lib/merb-core/controller/mixins/render.rb +16 -16
  13. data/lib/merb-core/controller/mixins/responder.rb +23 -23
  14. data/lib/merb-core/controller/template.rb +17 -17
  15. data/lib/merb-core/core_ext/hash.rb +2 -2
  16. data/lib/merb-core/core_ext/kernel.rb +19 -18
  17. data/lib/merb-core/dispatch/cookies.rb +13 -0
  18. data/lib/merb-core/dispatch/default_exception/default_exception.rb +12 -1
  19. data/lib/merb-core/dispatch/dispatcher.rb +6 -5
  20. data/lib/merb-core/dispatch/request.rb +56 -52
  21. data/lib/merb-core/dispatch/request_parsers.rb +7 -7
  22. data/lib/merb-core/dispatch/router.rb +14 -14
  23. data/lib/merb-core/dispatch/router/behavior.rb +31 -31
  24. data/lib/merb-core/dispatch/router/cached_proc.rb +13 -1
  25. data/lib/merb-core/dispatch/router/resources.rb +9 -9
  26. data/lib/merb-core/dispatch/router/route.rb +60 -7
  27. data/lib/merb-core/dispatch/session.rb +21 -15
  28. data/lib/merb-core/dispatch/session/container.rb +10 -8
  29. data/lib/merb-core/dispatch/session/cookie.rb +12 -11
  30. data/lib/merb-core/dispatch/session/memcached.rb +4 -2
  31. data/lib/merb-core/dispatch/session/memory.rb +8 -6
  32. data/lib/merb-core/dispatch/session/store_container.rb +6 -5
  33. data/lib/merb-core/dispatch/worker.rb +28 -10
  34. data/lib/merb-core/gem_ext/erubis.rb +4 -2
  35. data/lib/merb-core/logger.rb +3 -22
  36. data/lib/merb-core/plugins.rb +5 -5
  37. data/lib/merb-core/rack.rb +1 -1
  38. data/lib/merb-core/rack/adapter.rb +5 -1
  39. data/lib/merb-core/rack/adapter/abstract.rb +15 -10
  40. data/lib/merb-core/rack/adapter/ebb.rb +4 -2
  41. data/lib/merb-core/rack/adapter/evented_mongrel.rb +2 -1
  42. data/lib/merb-core/rack/adapter/fcgi.rb +3 -1
  43. data/lib/merb-core/rack/adapter/irb.rb +10 -1
  44. data/lib/merb-core/rack/adapter/mongrel.rb +5 -2
  45. data/lib/merb-core/rack/adapter/runner.rb +3 -1
  46. data/lib/merb-core/rack/adapter/swiftiplied_mongrel.rb +2 -1
  47. data/lib/merb-core/rack/adapter/thin.rb +4 -1
  48. data/lib/merb-core/rack/adapter/thin_turbo.rb +1 -0
  49. data/lib/merb-core/rack/adapter/webrick.rb +8 -34
  50. data/lib/merb-core/rack/application.rb +2 -2
  51. data/lib/merb-core/rack/handler/mongrel.rb +7 -0
  52. data/lib/merb-core/rack/helpers.rb +1 -1
  53. data/lib/merb-core/rack/middleware.rb +7 -1
  54. data/lib/merb-core/rack/middleware/conditional_get.rb +3 -0
  55. data/lib/merb-core/rack/middleware/content_length.rb +2 -0
  56. data/lib/merb-core/rack/middleware/path_prefix.rb +4 -0
  57. data/lib/merb-core/rack/middleware/profiler.rb +3 -1
  58. data/lib/merb-core/rack/middleware/static.rb +7 -1
  59. data/lib/merb-core/rack/middleware/tracer.rb +1 -0
  60. data/lib/merb-core/rack/stream_wrapper.rb +35 -30
  61. data/lib/merb-core/server.rb +17 -16
  62. data/lib/merb-core/tasks/gem_management.rb +1 -1
  63. data/lib/merb-core/tasks/merb.rb +3 -1
  64. data/lib/merb-core/tasks/merb_rake_helper.rb +1 -1
  65. data/lib/merb-core/test.rb +8 -8
  66. data/lib/merb-core/test/helpers.rb +1 -1
  67. data/lib/merb-core/test/helpers/cookie_jar.rb +16 -2
  68. data/lib/merb-core/test/helpers/mock_request_helper.rb +13 -13
  69. data/lib/merb-core/test/helpers/request_helper.rb +1 -1
  70. data/lib/merb-core/test/helpers/route_helper.rb +2 -2
  71. data/lib/merb-core/test/matchers.rb +3 -3
  72. data/lib/merb-core/test/matchers/request_matchers.rb +1 -1
  73. data/lib/merb-core/test/run_spec.rb +1 -1
  74. data/lib/merb-core/test/tasks/spectasks.rb +1 -1
  75. data/lib/merb-core/test/test_ext/hpricot.rb +1 -1
  76. data/lib/merb-core/test/test_ext/rspec.rb +2 -2
  77. data/lib/merb-core/test/test_ext/string.rb +1 -1
  78. data/lib/merb-core/version.rb +1 -1
  79. metadata +8 -22
  80. data/lib/merb-core/test/matchers/view_matchers.rb +0 -231
  81. data/lib/merb-core/test/webrat.rb +0 -37
  82. data/lib/merb-core/vendor/nokogiri/css.rb +0 -6
  83. data/lib/merb-core/vendor/nokogiri/css/generated_parser.rb +0 -653
  84. data/lib/merb-core/vendor/nokogiri/css/generated_tokenizer.rb +0 -159
  85. data/lib/merb-core/vendor/nokogiri/css/node.rb +0 -95
  86. data/lib/merb-core/vendor/nokogiri/css/parser.rb +0 -24
  87. data/lib/merb-core/vendor/nokogiri/css/parser.y +0 -198
  88. data/lib/merb-core/vendor/nokogiri/css/tokenizer.rb +0 -9
  89. data/lib/merb-core/vendor/nokogiri/css/tokenizer.rex +0 -63
  90. data/lib/merb-core/vendor/nokogiri/css/xpath_visitor.rb +0 -159
@@ -13,7 +13,7 @@ module Merb
13
13
  # Merb::Parse.query("bar=nik&post[body]=heya")
14
14
  # # => { :bar => "nik", :post => { :body => "heya" } }
15
15
  #
16
- # @api plugin
16
+ # :api: plugin
17
17
  def self.query(query_string, delimiter = '&;', preserve_order = false)
18
18
  query = preserve_order ? Dictionary.new : {}
19
19
  for pair in (query_string || '').split(/[#{delimiter}] */n)
@@ -45,7 +45,7 @@ module Merb
45
45
  # ==== Returns
46
46
  # Hash:: The parsed request.
47
47
  #
48
- # @api plugin
48
+ # :api: plugin
49
49
  def self.multipart(request, boundary, content_length)
50
50
  boundary = "--#{boundary}"
51
51
  paramhsh = {}
@@ -152,7 +152,7 @@ module Merb
152
152
  # params_to_query_string([ "ice-cream", "cake" ], "shopping_list")
153
153
  # # => "shopping_list[]=ice-cream&shopping_list[]=cake"
154
154
  #
155
- # @api plugin
155
+ # :api: plugin
156
156
  def self.params_to_query_string(value, prefix = nil)
157
157
  case value
158
158
  when Array
@@ -174,7 +174,7 @@ module Merb
174
174
  # ==== returns
175
175
  # String:: The escaped string.
176
176
  #
177
- # @api public
177
+ # :api: public
178
178
  def self.escape(s)
179
179
  s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) {
180
180
  '%'+$1.unpack('H2'*$1.size).join('%').upcase
@@ -187,7 +187,7 @@ module Merb
187
187
  # ==== returns
188
188
  # String:: The unescaped string.
189
189
  #
190
- # @api public
190
+ # :api: public
191
191
  def self.unescape(s)
192
192
  s.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/n){
193
193
  [$1.delete('%')].pack('H*')
@@ -207,7 +207,7 @@ module Merb
207
207
  # ==== Returns
208
208
  # Hash:: Normalized parameters
209
209
  #
210
- # @api private
210
+ # :api: private
211
211
  def self.normalize_params(parms, name, val=nil)
212
212
  name =~ %r([\[\]]*([^\[\]]+)\]*)
213
213
  key = $1 || ''
@@ -233,4 +233,4 @@ module Merb
233
233
  end
234
234
 
235
235
  end
236
- end
236
+ end
@@ -38,14 +38,14 @@ module Merb
38
38
  # An array containing all the application routes in order of
39
39
  # priority.
40
40
  # ---
41
- # @api private
41
+ # :api: private
42
42
  attr_accessor :routes
43
43
 
44
44
  # A hash containing all the named application routes. The names
45
45
  # are absolute (as in, all routes named in a namespace will
46
46
  # contain the name of the namespace).
47
47
  # ---
48
- # @api private
48
+ # :api: private
49
49
  attr_accessor :named_routes
50
50
 
51
51
  # A hash of all the application resource routes. The key of the hash
@@ -58,7 +58,7 @@ module Merb
58
58
  #
59
59
  # The show comment route will have a key of ["User", "Comment"]
60
60
  # ---
61
- # @api private
61
+ # :api: private
62
62
  attr_accessor :resource_routes
63
63
 
64
64
  # The starting point for route definition. Any route defined in a
@@ -74,13 +74,13 @@ module Merb
74
74
  # routes are defined in order for the behavior to be applied to the
75
75
  # routes.
76
76
  # ---
77
- # @api plugin
77
+ # :api: plugin
78
78
  attr_accessor :root_behavior
79
79
 
80
80
  # A block that will be run around route matching. This block must yield
81
81
  # in order for the actual matching to happen.
82
82
  # ---
83
- # @api plugin
83
+ # :api: plugin
84
84
  attr_accessor :around_match
85
85
 
86
86
  # Creates a route building context and evaluates the block in it. A
@@ -99,7 +99,7 @@ module Merb
99
99
  # Merb::Router::
100
100
  # Returns self to allow chaining of methods.
101
101
  # ---
102
- # @api public
102
+ # :api: public
103
103
  def prepare(first = [], last = [], &block)
104
104
  @routes = []
105
105
  root_behavior._with_proxy(&block)
@@ -111,7 +111,7 @@ module Merb
111
111
  # Clears the routing table. Route generation and request matching
112
112
  # won't work anymore until a new routing table is built.
113
113
  #
114
- # @api private
114
+ # :api: private
115
115
  def reset!
116
116
  class << self
117
117
  alias_method :match, :match_before_compilation
@@ -131,7 +131,7 @@ module Merb
131
131
  # Two-tuple: route index and route parameters. Route parameters
132
132
  # are :controller, :action and all the named segments of the route.
133
133
  #
134
- # @api private
134
+ # :api: private
135
135
  def route_for(request)
136
136
  index, params = if @around_match
137
137
  send(@around_match, request) { match(request) }
@@ -157,7 +157,7 @@ module Merb
157
157
  # ==== Raises
158
158
  # NotCompiledError:: routes have not been compiled yet.
159
159
  #
160
- # @api private
160
+ # :api: private
161
161
  def match_before_compilation(request) #:nodoc:
162
162
  raise NotCompiledError, "The routes have not been compiled yet"
163
163
  end
@@ -217,7 +217,7 @@ module Merb
217
217
  #
218
218
  # url(:articles, 2008, 10, "test_article")
219
219
  # ---
220
- # @api plugin
220
+ # :api: plugin
221
221
  def url(name, *args)
222
222
  if name.is_a?(Route)
223
223
  route = name
@@ -251,7 +251,7 @@ module Merb
251
251
  # ==== Returns
252
252
  # String:: The generated URL
253
253
  # ---
254
- # @api plugin
254
+ # :api: plugin
255
255
  def resource(*args)
256
256
  defaults = args.pop
257
257
  options = extract_options_from_args!(args) || {}
@@ -306,7 +306,7 @@ module Merb
306
306
  # end
307
307
  # end
308
308
  # ---
309
- # @api public
309
+ # :api: public
310
310
  def extensions(&block)
311
311
  Router::Behavior.class_eval(&block)
312
312
  end
@@ -315,7 +315,7 @@ module Merb
315
315
 
316
316
  # Compiles the routes and creates the +match+ method.
317
317
  # ---
318
- # @api private
318
+ # :api: private
319
319
  def compile
320
320
  if routes.any?
321
321
  eval(compiled_statement, binding, "Generated Code for Router", 1)
@@ -327,7 +327,7 @@ module Merb
327
327
  # Generates the method for evaluation defining a +match+ method to match
328
328
  # a request with the defined routes.
329
329
  # ---
330
- # @api private
330
+ # :api: private
331
331
  def compiled_statement
332
332
  @compiler_mutex.synchronize do
333
333
  condition_keys, if_statements = Set.new, ""
@@ -10,14 +10,14 @@ module Merb
10
10
  # This allows building routes without constantly having to catching the
11
11
  # yielded behavior object
12
12
  #
13
- # @api private
13
+ # :api: private
14
14
  class Proxy
15
15
 
16
16
  # Undefine as many methods as possible so that everything can be proxied
17
17
  # along to the behavior
18
18
  instance_methods.each { |m| undef_method m unless %w[ __id__ __send__ class kind_of? respond_to? assert_kind_of should should_not instance_variable_set instance_variable_get instance_eval].include?(m) }
19
19
 
20
- # @api private
20
+ # :api: private
21
21
  def initialize
22
22
  @behaviors = []
23
23
  end
@@ -27,7 +27,7 @@ module Merb
27
27
  # ==== Notes
28
28
  # The behaviors keep track of nested scopes.
29
29
  #
30
- # @api private
30
+ # :api: private
31
31
  def push(behavior)
32
32
  @behaviors.push(behavior)
33
33
  end
@@ -37,7 +37,7 @@ module Merb
37
37
  # ==== Notes
38
38
  # This occurs at the end of a nested scope (namespace, etc).
39
39
  #
40
- # @api private
40
+ # :api: private
41
41
  def pop
42
42
  @behaviors.pop
43
43
  end
@@ -47,7 +47,7 @@ module Merb
47
47
  # ==== Notes
48
48
  # Behaviors contain the actual functionality of the proxy.
49
49
  #
50
- # @api private
50
+ # :api: private
51
51
  def respond_to?(*args)
52
52
  super || @behaviors.last.respond_to?(*args)
53
53
  end
@@ -124,7 +124,7 @@ module Merb
124
124
  #
125
125
  # url(:articles, 2008, 10, "test_article")
126
126
  #
127
- # @api public
127
+ # :api: public
128
128
  def url(name, *args)
129
129
  args << {}
130
130
  Merb::Router.url(name, *args)
@@ -135,7 +135,7 @@ module Merb
135
135
  # ==== Notes
136
136
  # Refer to Merb::Rack::Helpers.redirect for documentation.
137
137
  #
138
- # @api public
138
+ # :api: public
139
139
  def redirect(url, opts = {})
140
140
  Merb::Rack::Helpers.redirect(url, opts)
141
141
  end
@@ -148,7 +148,7 @@ module Merb
148
148
  # Please refer to:
149
149
  # http://ruby-doc.org/core/classes/Kernel.html#M005951
150
150
  #
151
- # @api private
151
+ # :api: private
152
152
  def method_missing(method, *args, &block)
153
153
  behavior = @behaviors.last
154
154
 
@@ -185,7 +185,7 @@ module Merb
185
185
  # ==== Returns
186
186
  # Behavior:: The initialized Behavior object
187
187
  #
188
- # @api private
188
+ # :api: private
189
189
  def initialize(proxy = nil, conditions = {}, params = {}, defaults = {}, identifiers = {}, options = {}, blocks = []) #:nodoc:
190
190
  @proxy = proxy
191
191
  @conditions = conditions
@@ -276,7 +276,7 @@ module Merb
276
276
  # match("/guides/:action/:id").to(:controller => "tour_guides")
277
277
  # end
278
278
  #
279
- # @api public
279
+ # :api: public
280
280
  def match(path = {}, conditions = {}, &block)
281
281
  path, conditions = path[:path], path if path.is_a?(Hash)
282
282
 
@@ -313,7 +313,7 @@ module Merb
313
313
  # match('/other').to(:action => 'other')
314
314
  # end
315
315
  #
316
- # @api public
316
+ # :api: public
317
317
  def to(params = {}, &block)
318
318
  raise Error, "The route has already been committed. Further params cannot be specified" if @route
319
319
 
@@ -361,7 +361,7 @@ module Merb
361
361
  # ==== Block parameters
362
362
  # r<Behavior>:: +optional+ - The defaults behavior object.
363
363
  #
364
- # @api public
364
+ # :api: public
365
365
  def default(defaults = {}, &block)
366
366
  behavior = Behavior.new(@proxy, @conditions, @params, @defaults.merge(defaults), @identifiers, @options, @blocks)
367
367
  with_behavior_context(behavior, &block)
@@ -390,7 +390,7 @@ module Merb
390
390
  # # of nil.
391
391
  # match("/users(/:group)").default(:group => "registered")
392
392
  #
393
- # @api public
393
+ # :api: public
394
394
  def options(opts = {}, &block)
395
395
  options = @options.dup
396
396
 
@@ -435,7 +435,7 @@ module Merb
435
435
  # resources :accounts
436
436
  # end
437
437
  #
438
- # @api public
438
+ # :api: public
439
439
  def namespace(name_or_path, opts = {}, &block)
440
440
  name = name_or_path.to_s # We don't want this modified ever
441
441
  path = opts.has_key?(:path) ? opts[:path] : name
@@ -471,7 +471,7 @@ module Merb
471
471
  # ==== Block parameters
472
472
  # r<Behavior>:: The identify behavior object. This is optional
473
473
  #
474
- # @api public
474
+ # :api: public
475
475
  def identify(identifiers = {}, &block)
476
476
  identifiers = if Hash === identifiers
477
477
  @identifiers.merge(identifiers)
@@ -511,7 +511,7 @@ module Merb
511
511
  # end
512
512
  # end
513
513
  #
514
- # @api public
514
+ # :api: public
515
515
  def default_routes(params = {}, &block)
516
516
  match("/:controller(/:action(/:id))(.:format)").to(params, &block).name(:default)
517
517
  end
@@ -534,7 +534,7 @@ module Merb
534
534
  # :action => 'there' if request.xhr?
535
535
  # end
536
536
  #
537
- # @api public
537
+ # :api: public
538
538
  def defer_to(params = {}, &block)
539
539
  defer(block).to(params)
540
540
  end
@@ -551,7 +551,7 @@ module Merb
551
551
  # resources :comments
552
552
  # end
553
553
  #
554
- # @api public
554
+ # :api: public
555
555
  def defer(deferred_block, &block)
556
556
  blocks = @blocks + [CachedProc.new(deferred_block)]
557
557
  behavior = Behavior.new(@proxy, @conditions, @params, @defaults, @identifiers, @options, blocks)
@@ -566,7 +566,7 @@ module Merb
566
566
  # ==== Raises
567
567
  # ArgumentError:: symbol is not a Symbol.
568
568
  #
569
- # @api public
569
+ # :api: public
570
570
  def name(prefix, name = nil)
571
571
  unless name
572
572
  name, prefix = prefix, nil
@@ -584,7 +584,7 @@ module Merb
584
584
  # ==== Raises
585
585
  # ArgumentError:: symbol is not a Symbol.
586
586
  #
587
- # @api private
587
+ # :api: private
588
588
  def full_name(name)
589
589
  raise Error, ":this is reserved. Please pick another name." if name == :this
590
590
 
@@ -601,7 +601,7 @@ module Merb
601
601
  # ==== Parameters
602
602
  # enabled<Boolean>:: True enables fixation on the route.
603
603
  #
604
- # @api public
604
+ # :api: public
605
605
  def fixatable(enable = true)
606
606
  @route.fixation = enable
607
607
  self
@@ -620,7 +620,7 @@ module Merb
620
620
  # Whether or not the redirect should be permanent.
621
621
  # The default value is false.
622
622
  #
623
- # @api public
623
+ # :api: public
624
624
  def redirect(url, opts = {})
625
625
  raise Error, "The route has already been committed." if @route
626
626
 
@@ -637,7 +637,7 @@ module Merb
637
637
  #
638
638
  # &block:: A context in which routes are generated.
639
639
  #
640
- # @api public
640
+ # :api: public
641
641
  def capture(&block)
642
642
  captured_routes = {}
643
643
  name_prefix = [@options[:name_prefix]].flatten.compact.map { |p| "#{p}_"}
@@ -659,7 +659,7 @@ module Merb
659
659
  # ==== Parameters
660
660
  # &block:: defines routes within the provided context.
661
661
  #
662
- # @api private
662
+ # :api: private
663
663
  def _with_proxy(&block)
664
664
  proxy = Proxy.new
665
665
  proxy.push Behavior.new(proxy, @conditions, @params, @defaults, @identifiers, @options, @blocks)
@@ -674,7 +674,7 @@ module Merb
674
674
  # ==== Returns
675
675
  # Route:: the route.
676
676
  #
677
- # @api private
677
+ # :api: private
678
678
  def _route
679
679
  @route
680
680
  end
@@ -684,7 +684,7 @@ module Merb
684
684
  # ==== Returns
685
685
  # Route:: the route generated.
686
686
  #
687
- # @api private
687
+ # :api: private
688
688
  def to_route
689
689
  raise Error, "The route has already been committed." if @route
690
690
 
@@ -723,7 +723,7 @@ module Merb
723
723
  # route<Route>:: the route to insert before.
724
724
  # &block:: the route definition to insert.
725
725
  #
726
- # @api plugin
726
+ # :api: plugin
727
727
  def before(route, &block)
728
728
  options(:before => route, &block)
729
729
  end
@@ -733,7 +733,7 @@ module Merb
733
733
  # Takes @conditions and turns values into strings (except for Regexp and
734
734
  # Array values).
735
735
  #
736
- # @api private
736
+ # :api: private
737
737
  def stringify_condition_values # :nodoc:
738
738
  @conditions.each do |key, value|
739
739
  unless value.nil? || Regexp === value || Array === value
@@ -752,7 +752,7 @@ module Merb
752
752
  # ==== Returns
753
753
  # Behavior:: the behavior wrapping.
754
754
  #
755
- # @api private
755
+ # :api: private
756
756
  def with_behavior_context(behavior, &block) # :nodoc:
757
757
  if block_given?
758
758
  @proxy.push(behavior)
@@ -775,11 +775,11 @@ module Merb
775
775
  # An array of ['a', 'b'] (the 'a' namespace with the 'b' action) will
776
776
  # produce a name of :a_b.
777
777
  #
778
- # @api private
778
+ # :api: private
779
779
  def merge_paths(path) # :nodoc:
780
780
  [@conditions[:path], path.freeze].flatten.compact
781
781
  end
782
782
 
783
783
  end
784
784
  end
785
- end
785
+ end
@@ -2,20 +2,26 @@ module Merb
2
2
 
3
3
  class Router
4
4
  # Cache procs for future reference in eval statement
5
+ # :api: private
5
6
  class CachedProc
6
7
  @@index = 0
7
8
  @@list = []
8
9
 
10
+ # :api: private
9
11
  attr_accessor :cache, :index
10
12
 
11
13
  # ==== Parameters
12
14
  # cache<Proc>:: The block of code to cache.
15
+ #
16
+ # :api: private
13
17
  def initialize(cache)
14
18
  @cache, @index = cache, CachedProc.register(self)
15
19
  end
16
20
 
17
21
  # ==== Returns
18
22
  # String:: The CachedProc object in a format embeddable within a string.
23
+ #
24
+ # :api: private
19
25
  def to_s
20
26
  "CachedProc[#{@index}].cache"
21
27
  end
@@ -27,6 +33,8 @@ module Merb
27
33
  #
28
34
  # ==== Returns
29
35
  # Fixnum:: The index of the newly registered CachedProc.
36
+ #
37
+ # :api: private
30
38
  def register(cached_code)
31
39
  CachedProc[@@index] = cached_code
32
40
  @@index += 1
@@ -38,6 +46,8 @@ module Merb
38
46
  # ==== Parameters
39
47
  # index<Fixnum>:: The index of the cached code to set.
40
48
  # code<CachedProc>:: The cached code to set.
49
+ #
50
+ # :api: private
41
51
  def []=(index, code) @@list[index] = code end
42
52
 
43
53
  # ==== Parameters
@@ -45,8 +55,10 @@ module Merb
45
55
  #
46
56
  # ==== Returns
47
57
  # CachedProc:: The cached code at index.
58
+ #
59
+ # :api: private
48
60
  def [](index) @@list[index] end
49
61
  end
50
62
  end # CachedProc
51
63
  end
52
- end
64
+ end