[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marius
A nice alternative would have been : bind(todo, html, exclude - {node:NodeSeq =ajaxCheckbox (QueryNotDone, v = {QueryNotDone(v); reDraw})} ... ) But here the node impersonates the childNodes not the original node. So you still can not access the param attribute below

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marc Boschma
A quick just before going to bed reaction is that your change would solve the issue. It is interesting you focused on the exclude and not the list (which is what I have been playing with). I actually missed it was a similar case... Regards, Marc On 06/01/2009, at 9:24 PM, Marius wrote:

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marius
On Jan 6, 12:47 pm, Marc Boschma marc+lift...@boschma.cx wrote: A quick just before going to bed reaction is that your change would   solve the issue. Yeah it would ... (I mean it worked fine in my tests) It is interesting you focused on the exclude and not the   list (which is what I

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marius
I just did a minor modification to the lift code so the actual node it is passed to the BindParam and not its child. Now having: bind(todo, html, exclude - {node:NodeSeq =ajaxCheckbox (QueryNotDone, v = {QueryNotDone(v); reDraw})} ... ) and the markup todo:exclude

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marc Boschma
I've just had a thought as to how to make it not a breaking change. Leave your change calcValue(s.child) I just call calcValue(s) change: case class FuncBindParam(name: String, value: NodeSeq = NodeSeq) extends Tuple2(name, value) with BindParam { def calcValue(in: NodeSeq): NodeSeq =

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marius
On Jan 6, 2:50 pm, Marc Boschma marc+lift...@boschma.cx wrote: I've just had a thought as to how to make it not a breaking change. Leave your change calcValue(s.child) I just call calcValue(s) change:    case class FuncBindParam(name: String, value: NodeSeq = NodeSeq)   extends

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread David Pollak
Folks, I'm about to commit up a non-breaking solution. In bind, you can call: BindHelpers.bindNodes.value: List[NodeSeq] BindHelpers.currentNode.value: Elem bindNodes is a list of the nodes that were passed into bind with the more current node at the head of the list. If you're doing

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marius
Very cool Dave ! thx, Marius On Jan 6, 4:36 pm, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, I'm about to commit up a non-breaking solution. In bind, you can call: BindHelpers.bindNodes.value: List[NodeSeq] BindHelpers.currentNode.value: Elem bindNodes is a list of the

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marius
On Jan 6, 7:15 pm, David Pollak feeder.of.the.be...@gmail.com wrote: I also added BindHelpers.attr(tag): Option[NodeSeq] so you can do something like: span class={BindHelpers.attr(class).../span and: BindHelpers.attr(prefix, tag) I think it is committed to curAttr which personally I'm

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread David Pollak
On Tue, Jan 6, 2009 at 10:28 AM, Marius marius.dan...@gmail.com wrote: On Jan 6, 7:15 pm, David Pollak feeder.of.the.be...@gmail.com wrote: I also added BindHelpers.attr(tag): Option[NodeSeq] so you can do something like: span class={BindHelpers.attr(class).../span and:

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marius
Ok ... i just committed some changes: 1. Renamed curAttr to attr 2. The BindHelpers vals are now private but we expose two functions currentNode and bindNodes Br's, Marius On Jan 6, 8:37 pm, David Pollak feeder.of.the.be...@gmail.com wrote: On Tue, Jan 6, 2009 at 10:28 AM, Marius

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread David Pollak
On Tue, Jan 6, 2009 at 11:16 AM, Marius marius.dan...@gmail.com wrote: Ok ... i just committed some changes: 1. Renamed curAttr to attr 2. The BindHelpers vals are now private but we expose two functions currentNode and bindNodes Cool beans! Br's, Marius On Jan 6, 8:37 pm, David

[Lift] Re: Can or Box or something else

2009-01-06 Thread Tony Morris
Can is not an Option and to call it so in any way is an error of misintegration. Indeed it would be an error to replace Option with Can - they are completely different algebras. Either is kinded * - * - * so cannot possible be isomorphic and cannot possibly have map, flatMap etc (though it can

[Lift] Re: Can or Box or something else

2009-01-06 Thread David Pollak
Tony, Can (now Box) is not an Either. David On Tue, Jan 6, 2009 at 2:37 PM, Tony Morris tonymor...@gmail.com wrote: Can is not an Option and to call it so in any way is an error of misintegration. Indeed it would be an error to replace Option with Can - they are completely different

[Lift] Re: Can or Box or something else

2009-01-06 Thread David Pollak
It's an Option. It contains a value or it doesn't. In the case that it does not contain a value, it may contain out of band information. This is not any different from None which contains information. It contains the information that it lacks information. Sure, you can write Option[T] as

[Lift] Re: Can or Box or something else

2009-01-06 Thread Tony Morris
No this is a mistake. Can is not an Option. Indeed it is (almost) impossible to write Can using Option (if you are familiar with Peano Arithmetic you will understand the need to qualify with almost). There is an arrow from forall A. Can[A] to Option[A] but not from forall A. Option[A] to Can[A]

[Lift] Re: Can or Box or something else

2009-01-06 Thread Jorge Ortiz
It depends on what the meaning of is is. If Option were not sealed, Can could be implemented as an Option... by adding Failure and Empty as subclasses of None. In this (OO) sense, a Can is an option. In the algebraic sense, then you're probably right that a Can is not an Option. --j On Tue,

[Lift] Re: Can or Box or something else

2009-01-06 Thread Tony Morris
When talking about data types is means is congruent to or is isomorphic to. You are not free to use is arbitrarily, since if you are then Can is anything I want it to be. Since equivalence can be broken into an implication both ways e.g. A - B and B - A then it is quite easy to test if Can is an

[Lift] Re: Can or Box or something else

2009-01-06 Thread Miles Sabin
On Tue, Jan 6, 2009 at 11:23 PM, Tony Morris tonymor...@gmail.com wrote: No this is a mistake. Can is not an Option. Indeed it is (almost) impossible to write Can using Option (if you are familiar with Peano Arithmetic you will understand the need to qualify with almost). While you're right

[Lift] Re: Can or Box or something else

2009-01-06 Thread Jorge Ortiz
For most people, is does not always and exclusively mean bi-implication. You are free to think this way, if you choose, but please don't impose your Language Police on us. --j On Tue, Jan 6, 2009 at 5:49 PM, Tony Morris tonymor...@gmail.com wrote: When talking about data types is means is

[Lift] Flot Widget

2009-01-06 Thread David Pollak
Folks, I've just updated the Flot widget (which is pretty cool) to be more Lift-like. I've changed Option to Box to be consistent with Lift's use of Box unless there's a compelling reason to use Option. I've changed the code so it uses Lift's JavaScript helpers rather than doing manual string

[Lift] Re: Can or Box or something else

2009-01-06 Thread Josh Suereth
Do any conversions exist to treat a Box[_] as an Either[Option[_],Exception] or as an Option[_]? Are there any helper functions that lift could benefit from by having these? Also, anytime I see the line I leave this as an excercise to the reader I feel like I'm being lectured :) On Jan 6,

[Lift] Re: Can or Box or something else

2009-01-06 Thread David Pollak
On Tue, Jan 6, 2009 at 5:27 PM, Josh Suereth joshua.suer...@gmail.comwrote: Do any conversions exist to treat a Box[_] as an Either[Option[_],Exception] or as an Option[_]? Are there any helper functions that lift could benefit from by having these? Box instances have a toOption method.

[Lift] Re: Flot Widget

2009-01-06 Thread TylerWeir
Awesome, I just looked at the Flot+Comet stuff, some cool stuff could be done with that. Nice stuff Dave and Francois! On Jan 6, 8:15 pm, David Pollak feeder.of.the.be...@gmail.com wrote: Folks, I've just updated the Flot widget (which is pretty cool) to be more Lift-like. I've changed

[Lift] Does memcache fit in here somewhere?

2009-01-06 Thread Bob Eastbrook
I'm keeping my eye on Lift, but I'm primarily a PHP guy as far as paying the bills goes. I've got a slightly better high-level understanding of things now versus a month or so ago, but I'm not sure where caching fits into the picture. In the LAMP world, it's standard practice to put memcache

[Lift] Re: Does memcache fit in here somewhere?

2009-01-06 Thread Randall R Schulz
On Tuesday 06 January 2009 20:15, David Pollak wrote: Bob, memcached is failure. ... Please look at this presentation. That's rather elliptic. Is there something less terse to go with it? Some more detailed paper or exposition of its thesis, perhaps? Thanks, David Randall Schulz

[Lift] Re: accessing the attributes of the XML node associated with a FuncBindParam in bind(...)

2009-01-06 Thread Marc Boschma
Cool code! Works nicely... Would it make sense to also add something similar to this from S.attr ? def apply[T](what: String, f: String = T, default: = T): T = apply(what).map(f) openOr default ie maybe: def apply[T](prefix: String, key: String, f: String = T): Option[T] =