Class: Orthoses::Builder
- Inherits:
-
Object
- Object
- Orthoses::Builder
- Defined in:
- lib/orthoses/builder.rb
Overview
Defined Under Namespace
Modules: CallLogable
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(&block) ⇒ Builder
constructor
A new instance of Builder.
- #reset_runner(loader) ⇒ Object
- #run(loader) ⇒ Object
- #to_loader ⇒ Object
- #use(middleware, *args, **key, &block) ⇒ Object
Constructor Details
#initialize(&block) ⇒ Builder
Returns a new instance of Builder.
14 15 16 17 18 |
# File 'lib/orthoses/builder.rb', line 14 def initialize(&block) @use = [] @runner = nil instance_eval(&block) if block end |
Instance Method Details
#call ⇒ Object
56 57 58 |
# File 'lib/orthoses/builder.rb', line 56 def call to_loader.call end |
#reset_runner(loader) ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'lib/orthoses/builder.rb', line 43 def reset_runner(loader) @runner = proc do Orthoses.logger.info("[loader].call start") loader.call.tap do Orthoses.logger.info("[loader].call end") end end end |
#run(loader) ⇒ Object
38 39 40 41 |
# File 'lib/orthoses/builder.rb', line 38 def run(loader) use Store reset_runner(loader) end |
#to_loader ⇒ Object
52 53 54 |
# File 'lib/orthoses/builder.rb', line 52 def to_loader @use.reverse.inject(@runner) { |current, next_proc| next_proc[current] } end |
#use(middleware, *args, **key, &block) ⇒ Object
29 30 31 32 33 34 35 36 |
# File 'lib/orthoses/builder.rb', line 29 def use(middleware, *args, **key, &block) Orthoses.logger.debug("use #{middleware}") @use << proc do |loader| middleware.new(loader, *args, **key, &block).tap do |m| m.extend CallLogable end end end |