<ryanstout>
I noticed you guys are testing with browserstack, do they offer free open source plans?
<adambeynon>
ryanstout: Im not sure. meh` sorted the testing out with them. I think its usually a paid service though
<ryanstout>
adambeynon: thanks
<ryanstout>
does opal have StringScanner?
<elia>
ryanstout, I think yes
<elia>
ryanstout, yes, require 'strscan'
<adambeynon>
yeap. the parser uses it (when running client side), so it should be fairly complete/functional
<ryanstout>
elia: thanks
<ryanstout>
adambeynon: cool
<adambeynon>
ryanstout: have you ever come across batmanjs? (another dom binding type lib)
<ryanstout>
yea
<ryanstout>
its written in coffeescript right?
<adambeynon>
yes, I think they rely on it for some dsl style things
<adambeynon>
looks a lot nicer than angular, but still with a similar approach
<ryanstout>
yea
<ryanstout>
is it reactive or does it use diff checking?
<adambeynon>
sets up observers like emberjs
<adambeynon>
very influenced by cocoa
<ryanstout>
thats right. I looked it a year or two ago I think
<adambeynon>
just reading up on it now - saw it a while ago
<adambeynon>
yeh, been around for a while
<adambeynon>
trying to get a full grasp of the entire client side rendering/binding libs this evening :)
<ryanstout>
yea, there's a lot of different ways to do it
<ryanstout>
basically most are observers, except for angular, which just triggers a diff check whenever certain things happen
<ryanstout>
and models are scoped to controllers so you only have to update the contents of a controller
<adambeynon>
ryanstout: angular is the one that I find really akward to try and read
<adambeynon>
not sure if its just the code samples
<adambeynon>
but I would hate to write code like that
<adambeynon>
(the js side of things)
<ryanstout>
yea
<ryanstout>
I find it funny its so popular
<ryanstout>
I think the directives thing people really like
<ryanstout>
also, angular and batman you have to do .set(...) and .get(...) everywhere
<ryanstout>
sorry, ember and batman
<ryanstout>
I mean
<adambeynon>
yeah, thats the only problem.
<ryanstout>
I will say, doing diff checking simplifies things internally, at the cost of performance.
<ryanstout>
hence why ruby is a better language for this stuff :-)
<adambeynon>
ryanstout: absolutely. combining real getters/setters in ruby with either ember/voltrb style templates or batman/angular directives seems a really great place to target
<ryanstout>
yea, I think so
<ryanstout>
adambeynon: what's your preference on handlebars vs custom attributes?
<ryanstout>
for view logic
<adambeynon>
ryanstout: Im not sure. I would be happy using either. I think custom attributes might make it easier for a middle ground - rails views using erb/haml could easily generate the templates
<adambeynon>
where as handlebars/voltrb templates might be better for full client side things
<adambeynon>
or a full client-server stack like you are doing
<ryanstout>
yea
<ryanstout>
I personally like the handlebars style, but I'm a bit worried part of the reason angular is popular is its directly in the html
<ryanstout>
(even though it makes some stuff impossible, like an ng-repeat with two tr's in it, hehe)
<adambeynon>
ryanstout: is there much of a performance issue with manually traversing the dom looking for these directives?
<ryanstout>
on my stuff, it happens on the backend before its sent to the server
<ryanstout>
so it gets cached and the rendered html+bindings are spit out
<ryanstout>
I know ember has a handlebars parser thats pretty fast
<ryanstout>
not sure if its faster than doing a css selector for ng- attributes though
<ryanstout>
when its on the backend though, it gets cached and isn't an issue either way :-)
<meh`>
ryanstout, they offer sponsorships to open source projects
<meh`>
I don't know how "important" the project has to be
<meh`>
since the service costs a fuckton because it actually costs a fuckton
<meh`>
all those licenses
<meh`>
for all the Windows and OS X machines
<meh`>
ryanstout, but yeah, you can try contacting them
<ryanstout>
meh`: thanks for the info, will do
<meh`>
we had an "insider" that knew one of the browserstack guys, so he put a good word
<ryanstout>
meh`: I have been fighting with sauce labs all day :-(
<ryanstout>
adambeynon: you're adding observer stuff to vienna right?
<adambeynon>
ryanstout: yep. had basic observers for a while, just been a bit slow in adding them because they aren't quite up to the level I want them to be
<adambeynon>
they are basic in function: object.add_observer(:foo) { puts "foo changed" }
<adambeynon>
it basically overwrites object#foo=
<ryanstout>
adambeynon: I know the feeling, it took me a ton of work to get all of that stuff where I wanted it in volt
<ryanstout>
I had something very similar in volt for a while
skofo has joined #opal
<ryanstout>
question, why is it this works sometimes but not others:
<ryanstout>
if RUBY_PLATFORM != 'opal'
<ryanstout>
is it that if there's a require in it, it won't work?