module Ovto::Middleware

Public Class Methods

create_middleware_states_class(middlewares) click to toggle source

(internal) Create a subclass of Ovto::State that handles states of `middlewares` Called from App#initialize

# File lib/ovto/middleware.rb, line 24
def self.create_middleware_states_class(middlewares)
  return Class.new(Ovto::State){
    middlewares.each do |m|
      item m.name, default_proc: ->{
        mw_state_class = m.const_get('State')
        mw_state_class.item :_middlewares, default_proc: -> {
          Ovto::Middleware.create_middleware_states_class(m.middlewares).new
        }
        mw_state_class.new
      }
    end
  }
end
dig_middleware_state(app_state, middleware_path) click to toggle source

Get the state of the middleware specified with `middleware_path`

# File lib/ovto/middleware.rb, line 39
def self.dig_middleware_state(app_state, middleware_path)
  return middleware_path.inject(app_state){|state, middleware_name|
    state._middlewares.__send__(middleware_name)
  }
end