Stephen C. Gilardi
e77fc53e53
simplify state handling around resume
2015-11-06 23:04:45 -05:00
Stephen C. Gilardi
4a3d951568
direct call to -run-queue from resume
...
- this now happens in the :running state
- just like a run-queue, but with an unconditional handling of the
first item on the queue
- no need to trigger here
2015-11-06 23:03:07 -05:00
Stephen C. Gilardi
fc9fa490a6
reorder to be the same as the order in the prototype
2015-11-06 23:01:55 -05:00
Stephen C. Gilardi
bde07088a4
simplify names: pause, resume, regularize run-queue
...
- pause-run -> pause
- begin-resume -> resume
- no longer a multi-step process
- begin-run -> run-queue
- so all action function names match their keywords
2015-11-06 22:58:15 -05:00
Stephen C. Gilardi
38120c4913
fix a couple of comment typos
2015-11-06 22:50:50 -05:00
mike-thompson-day8
c80549ec95
Merge of #128 . Thanks to @nowprovision
2015-11-05 11:08:45 +11:00
Stephen C. Gilardi
6551c010b3
make run-queue more compact
2015-11-04 15:36:41 -05:00
Stephen C. Gilardi
aedafd1ac9
doc string edits
2015-11-04 09:15:53 -05:00
Stephen C. Gilardi
ffa676744d
a few minor comment mods
2015-11-04 09:15:53 -05:00
Stephen C. Gilardi
6751414320
some light editing of the router loop explanation
...
- preserving all the flavor
2015-11-04 09:15:53 -05:00
Stephen C. Gilardi
4533d51fbe
regularize fsm code formatting
...
- full align vectors on the left side within a group
- one space between left and right side
- align # marks in vectors on the right side within a group
- also arg1 -> arg
2015-11-04 09:15:52 -05:00
Stephen C. Gilardi
08e8b450ee
optimize and DRY up pause-run handling
2015-11-04 09:15:52 -05:00
Stephen C. Gilardi
ceafa00483
update/minimize ns form for new impl
2015-11-04 08:07:33 -05:00
mike-thompson-day8
075af4bee2
rename action function, plus use 'case' for performance
2015-11-04 17:11:42 +11:00
Stephen C. Gilardi
4be6227b02
revise fsm terminology around resuming
2015-11-04 00:14:11 -05:00
Stephen C. Gilardi
b32aeab413
fix [:do-paused :add-event] state transition
2015-11-04 00:10:28 -05:00
mike-thompson-day8
46c627430f
Wording changes in docs
2015-11-04 13:33:50 +11:00
mike-thompson-day8
e9a3b1ebeb
Improve wording of comments
2015-11-02 23:43:19 +11:00
mike-thompson-day8
420e42aacc
Introduce a router loop, not based on core-async
2015-11-02 22:37:46 +11:00
Daniel Compton
a2e8c09775
Use yield instead of (timeout 0)
...
(timeout 0) resolves to using js/setTimeout which will actually take 4+
msecs in browsers. This is an eternity. The nextTick approach was
proposed by Patrick O'Brien and implemented here.
Docs on nextTick from Closure library:
Fires the provided callbacks as soon as possible after the current JS
execution context. setTimeout(…, 0) takes at least 4ms when called from
within another setTimeout(…, 0) for legacy reasons.
This will not schedule the callback as a microtask (i.e. a task that can
preempt user input or networking callbacks). It is meant to emulate what
setTimeout(_, 0) would do if it were not throttled. If you desire
microtask behavior, use goog.Promise instead.
2015-10-16 14:49:10 +13:00
Daniel Compton
3e8f1e1dfa
Log warning when non reactive parameters are passed to dynamic subscriptions
...
Closes #115
2015-10-16 14:47:15 +13:00
Daniel Compton
518ff995dc
Remove extra level of indirection when creating dynamic subscription
...
Instead of creating a RAtom and resetting into it on a seperate side
chain of our dependency graph, we can instead return a reaction which is
the result of @@sub, achieving the same goals but with less code and
complexity.
2015-10-16 14:47:15 +13:00
Daniel Compton
7e492930e3
Add dynamic subscriptions to re-frame
...
Dynamic subscriptions allow the user to specify subscriptions that
depend on Ratoms/Reactions and will be rerun when they change. Users
will subscribe with v and a vector of dynamic values. The dynamic values
are dereffed and passed to the handler-fn. Dynamic subscriptions need to
pass a fn which takes app-db, v, and the dereffed dynamic values.
Every time a dynamic value changes, handler-fn will be rerun. This is in
contrast to standard subscriptions where handler-fn will only be run
once, although the reaction that it produces will change over time.
A concrete example of the need for this is:
1. You want to subscribe to a query on a remote server which will return
a Reaction which changes in response to server changes.
2. You want this subscription to be able to be rerun when you change one
of the query parameters.
In the current system, all views need to be aware of the possibility of
changing parameters and provide them in their subscriptions.
Example usage code:
(register-sub
:todo-dynamic
(fn todo-dynamic [_ _ [active-list]]
(let [q (q/get-query active-list)]
q)))
(register-sub
:todos
(fn todos [db _]
(let [active-list (subscribe [:active-list])
todos (subscribe [:todo-dynamic] [active-list])]
(make-reaction (fn todo-vals [] (update @todos :result #(vals (:list %))))))))
2015-10-16 14:46:54 +13:00
Daniel Compton
2720b27e4c
Merge pull request #100 from thenonameguy/patch-2
...
Use if-not instead of (if (not))
2015-09-12 20:27:35 +12:00
Daniel Compton
915ad9a351
Merge branch 'master' into develop
...
Conflicts:
README.md
examples/todomvc/src/todomvc/db.cljs
2015-07-27 16:51:22 +12:00
Szabó Krisztián
e0c816859f
Use if-not instead of (if (not))
2015-07-26 19:57:17 +02:00
Daniel Compton
b566c08f40
Merge pull request #84 from ducky427/patch-1
...
Minor code cleanup
2015-07-25 07:44:22 +12:00
Szabó Krisztián
72b2889f94
Fix spelling of 'weird'
...
https://en.wiktionary.org/wiki/wierd
2015-07-24 15:43:40 +02:00
Stuart Mitchell
62251dfe2b
fixed issue with log groupings
2015-07-17 14:16:56 +12:00
Stuart Mitchell
8caee1115b
fixes bug introduced by 8af8c6840f
2015-07-17 11:51:34 +12:00
Ducky
fc9da0d13a
Minor code cleanup
2015-07-16 17:25:54 +01:00
Earl St Sauver
9326a411e7
Simplify implementation of Middleware Compose
...
The implementation of middleware compose is duplicating behavior already
in compose.
`(apply comp [])` returns identity.
2015-07-11 11:52:23 +07:00
mike-thompson-day8
78dacf5ca1
Fix #65
2015-05-28 23:15:47 +10:00
mike-thompson-day8
16242cc2c4
Merge branch 'master' into develop
2015-05-26 21:53:16 +10:00
Daniel Compton
409b001e26
Clean up spelling, tense, and docstrings
2015-05-26 09:37:10 +12:00
mike-thompson-day8
0aee218689
Improve comments on router.
2015-05-08 15:49:48 +10:00
mike-thompson-day8
25ed816603
When an exception bubbles out of the router loop, it now restarts itself.
...
Previously the the router loop was permanently broken by an exception.
This change makes figwheel debugging work much more nicely in some circumstances.
Plus it means that in production, apps have a chance at recovery from UHE
2015-05-02 10:52:11 +10:00
mike-thompson-day8
b921fa497d
More "error" use instead of "warn"
2015-05-02 10:49:27 +10:00
mike-thompson-day8
7ebfc2a9ba
Start using "error" instead of "warn" for bad things
2015-05-02 10:48:31 +10:00
mike-thompson-day8
36b88a7378
Get logging working
2015-05-02 10:47:37 +10:00
mike-thompson-day8
be8f5b1cc5
Improve comments around logging
2015-05-02 10:46:05 +10:00
mike-thompson-day8
7d85dbca48
Remove unneeded require
2015-04-27 07:39:17 +10:00
mike-thompson-day8
5a32049452
Improve comment
2015-04-27 07:38:48 +10:00
mike-thompson-day8
65c93cd4d1
Implement #53
2015-04-27 07:38:37 +10:00
mike-thompson-day8
87b3572baa
Correct comment
2015-04-27 06:05:06 +10:00
mike-thompson-day8
c1fe51ddfd
Partially fix #43 by adding ability to clear both kinds of handlers.
2015-04-25 09:50:46 +10:00
mike-thompson-day8
82b3c87f80
Introduce reaction-like middleware. Closes #50
2015-04-25 00:06:51 +10:00
mike-thompson-day8
e80c6c94b3
Improve comment
2015-04-24 23:46:27 +10:00
hipitihop
2571cb5e0b
undo
...
- change undo to support separate event :purge-redos
- bump to [org.clojure/clojurescript "0.0-3211"]
2015-04-24 16:12:14 +10:00
hipitihop
06f7a29583
undo
...
- add optional parameter clear-redos? to :undo handler. Defaults to false so this is backward compatible.
2015-04-23 15:44:57 +10:00
mike-thompson-day8
72b605340e
Bump various for a v0.3.2 release
2015-04-22 00:18:31 +10:00
mike-thompson-day8
6ed3ba1e1f
Fix #42
2015-04-22 00:16:55 +10:00
mike-thompson-day8
f5ed759767
Incorporate changes from #46
2015-04-18 21:15:53 +10:00
mike-thompson-day8
76ee67de10
Improve comments and warnings.
...
Continue process of nicely naming of anon fns, so as to get better stack traces.
2015-04-18 17:59:40 +10:00
mike-thompson-day8
5602bffc6b
WIP on subs
2015-04-17 23:51:29 +10:00
mike-thompson-day8
769723c069
add log-ex to core API
2015-04-17 22:51:03 +10:00
mike-thompson-day8
fa954e5d9f
Give middleware anonymous handler functions better names, so they are more meaningful in stack traces
2015-04-16 16:02:19 +10:00
mike-thompson-day8
89f5344a86
Correct wiki links
2015-04-08 09:12:47 +10:00
mike-thompson-day8
f5ee682487
Follow suggestion from @whodidthis and include "v" into after and enrich
2015-03-17 22:03:21 +11:00
mike-thompson-day8
ef9dad529a
Correct stack access
2015-03-15 20:10:54 +11:00
mike-thompson-day8
a5b1ccdb16
Add log-ex middleware.
2015-03-14 09:47:16 +11:00
Stuart Mitchell
6cb43207ec
better printing of errors from re-frame
2015-03-11 16:46:16 +13:00
hipitihop
4426ed278b
undo
...
- correct clear-history! to reset app-explain
- fix subscription :undo-explanations to only con app-explain when there are undos
2015-03-10 15:57:26 +10:00
mike-thompson-day8
0c000f0094
wording in warning
2015-03-06 19:04:27 +11:00
mike-thompson-day8
6a140f9241
Undo tweaks
2015-03-06 19:04:02 +11:00
mike-thompson-day8
ce6a04f68a
Merge branch 'develop' of https://github.com/Day8/re-frame into develop
2015-03-06 18:10:27 +11:00
mike-thompson-day8
13840ed9a1
make path easier to use. Note new usage docs. Modify other docs in the process.
2015-03-06 18:06:25 +11:00
hipitihop
ecda398c5a
undo
...
- conj app-explain to :undo-explanations subscription
- add optional argument to :undo :redo handlers to specify number of undos/redos. Default 1 when not specified.
- correct comment and event name typos
2015-03-06 16:23:33 +10:00
mike-thompson-day8
a180df85c8
core.sync completely trashes the stack in an exception. Print any exception to the console before that happens.
2015-03-06 12:44:22 +11:00
mike-thompson-day8
f0fbea41a9
Various
2015-03-06 11:40:30 +11:00
mike-thompson-day8
b5ec3c6db5
Reimpliment undo so as to handle explanations
2015-03-06 10:48:20 +11:00
mike-thompson-day8
0ebb46cb91
undoable is now a middleware factory
2015-03-06 10:48:00 +11:00
mike-thompson-day8
a48f55ff79
With pure much more firmly embedded as mandatory middleware, remove a couple of checks
2015-03-05 14:43:11 +11:00
mike-thompson-day8
94afb7a7a1
Switch to renames.
2015-03-05 11:57:00 +11:00
mike-thompson-day8
de9e492bdc
derive -> enrich
2015-03-05 11:32:36 +11:00
mike-thompson-day8
816f79f81e
Sadly can't use derive. There's a function call that in the standard library apparently. Use enrich instead.
2015-03-05 11:31:46 +11:00
mike-thompson-day8
3b8643cc01
Use the new low level API for non-pure handlers.
2015-03-05 11:31:02 +11:00
mike-thompson-day8
6c55235160
Better explanation of router's handling of exceptions.
2015-03-05 10:41:50 +11:00
mike-thompson-day8
a7f5aca490
improve comment
2015-03-05 10:40:21 +11:00
mike-thompson-day8
d49bb49fd3
Rename register-pure-handler
2015-03-05 10:40:02 +11:00
mike-thompson-day8
e028034f48
Work on explaining the importance if derive
2015-03-05 10:39:09 +11:00
mike-thompson-day8
c6c6bfebf1
Give better names in middleware to improve stack traces
2015-03-05 00:47:03 +11:00
mike-thompson-day8
94e7a35c5f
Add and remove comments
2015-03-05 00:45:58 +11:00
mike-thompson-day8
6c63ad315c
Various improvements to middleware, mostly comments
2015-03-05 00:01:44 +11:00
mike-thompson-day8
ee5ba0ae01
Better comment
2015-03-05 00:01:03 +11:00
mike-thompson-day8
3540d7da9d
Split handlers.cljs in two, creating router.cljs
2015-03-05 00:00:36 +11:00
mike-thompson-day8
470da75c48
WIP
2015-03-04 17:13:02 +11:00
mike-thompson-day8
ecead71638
Merge branch 'develop' of https://github.com/Day8/re-frame into develop
2015-03-03 16:33:46 +11:00
hipitihop
0ebc84f72b
Undo
...
- correct bug in undo
- use pos? and reuse undo? redo? in handlers
2015-03-03 14:13:06 +10:00
mike-thompson-day8
989c67a4cc
Merge branch 'develop' of https://github.com/Day8/re-frame into develop
2015-03-03 13:16:34 +11:00
mike-thompson-day8
f1684d5db1
Improve comments
2015-03-03 13:16:23 +11:00
hipitihop
459e265c9d
Undo
...
- merge changes incorrectly pushed to master.
- reinstate use of ratoms.
- correct extracted undo/redo counts.
2015-03-03 12:09:19 +10:00
hipitihop
c8bd955c63
Merge branch 'master' into develop
2015-03-03 09:10:32 +10:00
mike-thompson-day8
48e058f6dc
improve comments
2015-03-03 01:06:45 +11:00
mike-thompson-day8
e5a4e9b525
Improve debug output
2015-03-03 01:06:32 +11:00
mike-thompson-day8
95de45a252
WIP
2015-03-03 01:03:09 +11:00
mike-thompson-day8
f5df77163b
Middleware can now be supplied as a vector (containing nils, which are ignored). This is going to make generating middleware much easier.
...
For example, Debug middleware can now more easily be conditionally added and removed.
2015-03-03 00:10:05 +11:00
mike-thompson-day8
6ff74a112b
Improve comments. And debug output
2015-03-02 23:55:05 +11:00
mike-thompson-day8
66191655c9
Improve comments. Improve debug middleware
2015-03-02 23:06:34 +11:00
mike-thompson-day8
fe29846660
Add other round of console API methods. Not very happy about this. But will sort it out later.
2015-03-02 23:06:02 +11:00
mike-thompson-day8
7b0799c80f
Split function.
2015-03-02 23:03:49 +11:00
mike-thompson-day8
f3bb482591
Add new API
...
- a noop middleware
- a comp-middleware
2015-03-02 23:02:56 +11:00
hipitihop
76068c2cb9
- remove usage of historian & dependency
...
- update dependency to [re-frame "0.1.8"]
- use new register-pure-handler in all steps
NOTE: functional but daypart unit tests failing + history not yet working
2015-03-02 17:49:03 +10:00
mike-thompson-day8
dc74e017df
No need to use ratoms, can use normal atoms.
2015-03-02 15:46:46 +11:00
mike-thompson-day8
406cbe261c
Improve the output of debug middleware
2015-03-02 10:07:48 +11:00
mike-thompson-day8
3e7ed53f34
Expose debug middleware through API
2015-03-02 07:58:34 +11:00
mike-thompson-day8
6a3f2e4b74
Improve comments on handlers
2015-03-02 07:57:11 +11:00
mike-thompson-day8
56aecc0866
Add new debug middleware
2015-03-02 07:55:17 +11:00
mike-thompson-day8
3c43bd3cf4
Fix typo pointed out by @btheado cond -> conp
2015-03-01 09:06:54 +11:00
mike-thompson-day8
1d2ffb0d4f
Rename apply-event to trim-v, allow handler to get vector of middleware
2015-02-27 02:07:35 +11:00
mike-thompson-day8
42d1d9e0e6
Further iteration on todomvc
2015-02-27 02:06:23 +11:00
Stuart Mitchell
6e430b0ca7
reverted middleware order
2015-02-26 16:24:50 +13:00
Stuart Mitchell
6a776faa82
fixes
2015-02-26 15:41:50 +13:00
mike-thompson-day8
0039cd651e
Clarify Licence
2015-02-26 08:26:08 +11:00
mike-thompson-day8
00ba238b74
New middleware, mostly untested.
2015-02-25 22:03:47 +11:00
mike-thompson-day8
e548759fe6
new core
2015-02-25 22:03:25 +11:00
mike-thompson-day8
faf340573f
Create a core which carries the API
2015-02-25 22:03:02 +11:00
mike-thompson-day8
16b4efa3fd
New middleware, largely untested
2015-02-25 21:51:38 +11:00
mike-thompson-day8
44b50e4feb
Tweaks and cleanup
2015-02-25 12:51:30 +11:00
mike-thompson-day8
474b2e4bac
Middleware now working. Bump to version 0.1.6
2015-02-25 11:43:10 +11:00
mike-thompson-day8
947de41d02
Back to compiling (removed namespace cycle)
2015-02-25 09:53:04 +11:00
mike-thompson-day8
ab7e613cbb
Introduce new middleware DO NOT USE YET. THIS PUSH DOES NOT EVEN COMPILE
2015-02-25 08:58:55 +11:00
mike-thompson-day8
9f233f07b7
Change warning
2015-02-25 08:26:47 +11:00
mike-thompson-day8
031e9fde53
renaming and word fiddling
2015-02-25 00:26:49 +11:00
mike-thompson-day8
a8a1dcd890
Remove use of historian. An atom-watcher based approach complicates our life. Via middleware we will not explicitly snapshot.
2015-02-25 00:24:31 +11:00
mike-thompson-day8
a9c8d76e1e
Tweaks mostly.
2015-02-22 22:28:40 +11:00
mike-thompson-day8
a3c88750e5
Re-work handlers, routers and dispatchers. More comments
2015-02-21 00:47:01 +11:00
mike-thompson-day8
7c1b48e3a6
Add ability to (dispatch [:flush-reagent])
2015-02-20 16:46:40 +11:00
mike-thompson-day8
1fadc82700
Introduce a timeout into the router, so that the GUI gets a look in, if we have one event after another.
2015-02-18 19:43:50 +11:00
hipitihop
94748ad0dc
- correct rgression off-the-record! caused by healdess git push fuffle
...
- move load-mwi subscriptions to subs.cljs
2015-01-06 16:50:50 +10:00
hipitihop
3a977a0242
Merge remote-tracking branch 'origin/master'
2015-01-06 16:06:00 +10:00
hipitihop
79e3f08d96
- convert :no-history-while from dispatch to direct call off-the-record!
2015-01-06 16:05:39 +10:00
Stuart Mitchell
f442460905
added a dispatch-sync
2015-01-06 10:49:20 +13:00
mike-thompson-day8
d733c9c6b1
Make dispatch async.
...
WARNING: not tested.
2014-12-20 13:12:40 +11:00
hipitihop
a46ab9b345
- remove handlers/get-in-db
...
- switch project back to [lein-cljsbuild "1.0.3"]
2014-12-16 12:34:27 +10:00
hipitihop
bac24cfd37
- typo and temporary re-instate of get-in-db to get refactors and unit tests running
2014-12-16 11:48:41 +10:00
mike-thompson-day8
8654613087
Split handlers from subscriptions
2014-12-15 22:56:32 +11:00
mike-thompson-day8
84b25cab64
README WIP
2014-12-12 07:20:55 +11:00
hipitihop
d37f86989a
- add re-frame as a project dependency
...
- move model/db , handlers & history from dj-scratchpad to re-frame
- introduce priviliged protocol history/reset-history! and call from bootstrap
- convert all requires to use new re-frame/handlers
- introduce demo.bootstrap to init system and trigger handler registrations (removed redundant requires elsewhere).
- call bootsrap from main.cljs
- update unit tests
2014-12-11 18:24:19 +10:00
mike-thompson-day8
5692a6f485
WIP
2014-12-08 14:48:59 +11:00