module Rubidux::Reducer

Public Class Methods

combine() click to toggle source
# File lib/rubidux/reducer.rb, line 3
def combine
  -> **reducers {
    -> (state, action) {
      state ||= {}
      reducers.
        lazy.
        select { |key, reducer| reducer.is_a? Proc }.
        map    { |key, reducer| [key, reducer.(state[key], action)] }.
        to_h
    }
  }
end

Private Instance Methods

combine() click to toggle source
# File lib/rubidux/reducer.rb, line 3
def combine
  -> **reducers {
    -> (state, action) {
      state ||= {}
      reducers.
        lazy.
        select { |key, reducer| reducer.is_a? Proc }.
        map    { |key, reducer| [key, reducer.(state[key], action)] }.
        to_h
    }
  }
end