module Rubidux::Middleware

Public Class Methods

apply() click to toggle source
# File lib/rubidux/middleware.rb, line 15
def apply
  -> *middlewares {
    -> (get_state, dispatch) {
      middleware_api = {
        get_state: get_state,
        dispatch: -> action { new_dispatch.(action) }
      }
      chain = middlewares.map { |middleware| middleware.(middleware_api) }
      new_dispatch = Rebidux::Util.compose.(*chain).(dispatch)
    }
  }
end
create() click to toggle source
# File lib/rubidux/middleware.rb, line 3
def create
  -> fn {
    -> **middleware_api {
      -> _next {
        -> action {
          fn.(_next, action, **middleware_api)
        }
      }
    }
  }
end

Private Instance Methods

apply() click to toggle source
# File lib/rubidux/middleware.rb, line 15
def apply
  -> *middlewares {
    -> (get_state, dispatch) {
      middleware_api = {
        get_state: get_state,
        dispatch: -> action { new_dispatch.(action) }
      }
      chain = middlewares.map { |middleware| middleware.(middleware_api) }
      new_dispatch = Rebidux::Util.compose.(*chain).(dispatch)
    }
  }
end
create() click to toggle source
# File lib/rubidux/middleware.rb, line 3
def create
  -> fn {
    -> **middleware_api {
      -> _next {
        -> action {
          fn.(_next, action, **middleware_api)
        }
      }
    }
  }
end