Module: Roda::RodaPlugins::Base::RequestClassMethods
- Defined in:
- lib/roda.rb
Overview
Class methods for RodaRequest
Instance Attribute Summary collapse
-
#match_pattern_cache ⇒ Object
The cache to use for match patterns for this request class.
-
#roda_class ⇒ Object
Reference to the Roda class related to this request class.
Instance Method Summary collapse
-
#cached_matcher(obj) ⇒ Object
Return the cached pattern for the given object.
-
#def_verb_method(mod, verb) ⇒ Object
Define a verb method in the given that will yield to the match block if the request method matches and there are either no arguments or there is a successful terminal match on the arguments.
-
#inspect ⇒ Object
Since RodaRequest is anonymously subclassed when Roda is subclassed, and then assigned to a constant of the Roda subclass, make inspect reflect the likely name for the class.
Instance Attribute Details
#match_pattern_cache ⇒ Object
The cache to use for match patterns for this request class.
352 353 354 |
# File 'lib/roda.rb', line 352 def match_pattern_cache @match_pattern_cache end |
#roda_class ⇒ Object
Reference to the Roda class related to this request class.
349 350 351 |
# File 'lib/roda.rb', line 349 def roda_class @roda_class end |
Instance Method Details
#cached_matcher(obj) ⇒ Object
Return the cached pattern for the given object. If the object is not already cached, yield to get the basic pattern, and convert the basic pattern to a pattern that does not partial segments.
357 358 359 360 361 362 363 364 365 |
# File 'lib/roda.rb', line 357 def cached_matcher(obj) cache = @match_pattern_cache unless pattern = cache[obj] pattern = cache[obj] = consume_pattern(yield) end pattern end |
#def_verb_method(mod, verb) ⇒ Object
Define a verb method in the given that will yield to the match block if the request method matches and there are either no arguments or there is a successful terminal match on the arguments.
370 371 372 373 374 375 376 |
# File 'lib/roda.rb', line 370 def def_verb_method(mod, verb) mod.class_eval(<<-END, __FILE__, __LINE__+1) def #{verb}(*args, &block) _verb(args, &block) if #{verb == :get ? :is_get : verb}? end END end |
#inspect ⇒ Object
Since RodaRequest is anonymously subclassed when Roda is subclassed, and then assigned to a constant of the Roda subclass, make inspect reflect the likely name for the class.
381 382 383 |
# File 'lib/roda.rb', line 381 def inspect "#{roda_class.inspect}::RodaRequest" end |