Module: Cyberweb::REST::Delegator
- Included in:
- Rack::Builder
- Defined in:
- lib/cyberweb/REST/base/delegator.rb
Overview
#
Sinatra delegation mixin. Mixing this module into an object causes all methods to be delegated to the Sinatra::Application class. Used primarily at the top-level.
#
Class Attribute Summary collapse
-
.target ⇒ Object
# === Cyberweb::REST::Delegator.target ======================================================================= #.
Class Method Summary collapse
-
.delegate(*methods) ⇒ Object
# === Cyberweb::REST::Delegator.delegate ========================================================================= #.
Class Attribute Details
.target ⇒ Object
#
Cyberweb::REST::Delegator.target
#
71 72 73 |
# File 'lib/cyberweb/REST/base/delegator.rb', line 71 def target @target end |
Class Method Details
.delegate(*methods) ⇒ Object
#
Cyberweb::REST::Delegator.delegate
#
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/cyberweb/REST/base/delegator.rb', line 25 def self.delegate(*methods) methods.each { |method_name| define_method(method_name) { |*args, &block| return super(*args, &block) if respond_to? method_name ::Cyberweb::REST::Delegator.target.send(method_name, *args, &block) } # ===================================================================== # # ensure keyword argument passing is compatible with ruby >= 2.7 # ===================================================================== # ruby2_keywords(method_name) if respond_to?(:ruby2_keywords, true) private method_name } end |