Middleware now working. Bump to version 0.1.6

This commit is contained in:
mike-thompson-day8 2015-02-25 11:43:10 +11:00
parent 947de41d02
commit 474b2e4bac
4 changed files with 25 additions and 13 deletions

View File

@ -1,4 +1,4 @@
(defproject re-frame "0.1.5"
(defproject re-frame "0.1.6"
:description "A reagent framework"
:url "https://github.com/Day8/re-frame.git"

View File

@ -2,9 +2,7 @@
(:refer-clojure :exclude [flush])
(:require-macros [cljs.core.async.macros :refer [go-loop go]])
(:require [reagent.core :refer [flush]]
;[reagent.ratom :refer [IReactiveAtom]]
[re-frame.db :refer [app-db]]
; [re-frame.history :refer [store-now!]]
[re-frame.utils :refer [first-in-vector warn]]
[cljs.core.async :refer [chan put! <! timeout]]))
@ -15,11 +13,24 @@
(defn register
"register a handler for an event"
[event-id handler-fn]
(when (contains? @id->fn event-id)
(warn "re-frame: overwriting an event-handler for: " event-id)) ;; allow it, but warn.
(swap! id->fn assoc event-id handler-fn))
([event-id handler-fn]
(when (contains? @id->fn event-id)
(warn "re-frame: overwriting an event-handler for: " event-id)) ;; allow it, but warn.
(swap! id->fn assoc event-id handler-fn))
([event-id middleware handler-fn]
(register event-id (middleware handler-fn))))
(defn register
"register a handler for an event"
([event-id handler-fn]
(when (contains? @id->fn event-id)
(warn "re-frame: overwriting an event-handler for: " event-id)) ;; allow it, but warn.
(swap! id->fn assoc event-id handler-fn))
([event-id middleware handler-fn]
(register event-id (middleware handler-fn))))
;; -- The Event Conveyor Belt --------------------------------------------------------------------
;;

View File

@ -1,6 +1,7 @@
(ns re-frame.middleware
(:require [reagent.ratom :refer [IReactiveAtom]]
[re-frame.history :refer [store-now!]]))
(:require
[reagent.ratom :refer [IReactiveAtom]]
[re-frame.undo :refer [store-now!]]))
;; -- Middleware Factories -------------------------------------------------------------------------
;;
@ -11,7 +12,7 @@
;;
;; Use "comp" to compose middelware, like this:
;;
;; (def midware (comp undoable make-pure (validate some-fn))) ;; midware is a function
;; (def midware (comp undoable pure (validate some-fn))) ;; midware is a function
;;
;; then imagine that we have a pure handler:
;;
@ -23,7 +24,7 @@
;;
;; (def h (midware my-handler)) ;; h is "my-handler" wrapped in middleware
;;
;; now call h:
;; I could call h like this:
;; (h app-db [:some-key 23]) <---- h is a handler, just pass in 'db' and 'v'
;;
;; Which means, you could just register 'h'
@ -47,7 +48,7 @@
(next-handler app-db event-vec)))
(defn make-pure
(defn pure
"Middleware which allows you to write a pure handler.
1. on the way through it extracts the value in the atom
2. resets the atom with the returned value after calling the handler"

View File

@ -1,4 +1,4 @@
(ns re-frame.history
(ns re-frame.undo
(:require-macros [reagent.ratom :refer [reaction]])
(:require
[reagent.core :as reagent]