Class: Luo::Middleware::Base
- Inherits:
-
Object
- Object
- Luo::Middleware::Base
- Extended by:
- Dry::Configurable
- Defined in:
- lib/luo/middleware/base.rb
Direct Known Subclasses
Class Method Summary collapse
- .after(&block) ⇒ Object
- .before(&block) ⇒ Object
- .call(&block) ⇒ Object
- .create_method(name, &block) ⇒ Object
Instance Method Summary collapse
- #_after_call_(env) ⇒ Object
- #_before_call_(env) ⇒ Object
- #_call_(env) ⇒ Object
- #call(env) ⇒ Object
-
#initialize(app) ⇒ Base
constructor
A new instance of Base.
Constructor Details
#initialize(app) ⇒ Base
Returns a new instance of Base.
7 8 9 10 |
# File 'lib/luo/middleware/base.rb', line 7 def initialize(app) raise ArgumentError, "app must respond to `call`" unless app.respond_to? :call @app = app end |
Class Method Details
.after(&block) ⇒ Object
49 50 51 |
# File 'lib/luo/middleware/base.rb', line 49 def after(&block) create_method :_after_call_, &block end |
.before(&block) ⇒ Object
45 46 47 |
# File 'lib/luo/middleware/base.rb', line 45 def before(&block) create_method :_before_call_, &block end |
.call(&block) ⇒ Object
53 54 55 |
# File 'lib/luo/middleware/base.rb', line 53 def call(&block) create_method :_call_, &block end |
.create_method(name, &block) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/luo/middleware/base.rb', line 34 def create_method(name, &block) define_method name do |env| _env_ = block.call(env) if _env_.is_a? Env _env_ else env end end end |
Instance Method Details
#_after_call_(env) ⇒ Object
24 25 26 |
# File 'lib/luo/middleware/base.rb', line 24 def _after_call_(env) env end |
#_before_call_(env) ⇒ Object
20 21 22 |
# File 'lib/luo/middleware/base.rb', line 20 def _before_call_(env) env end |
#_call_(env) ⇒ Object
28 29 30 |
# File 'lib/luo/middleware/base.rb', line 28 def _call_(env) env end |
#call(env) ⇒ Object
12 13 14 15 16 17 18 |
# File 'lib/luo/middleware/base.rb', line 12 def call(env) env = Env.validate_env!(env) env = Env.validate_env! _before_call_(env) env = Env.validate_env! _call_(env) env = Env.validate_env! @app.call(env) Env.validate_env! _after_call_(env) end |