solnic changed the topic of #rom-rb to: Ruby Object Mapper | Mailing List: https://groups.google.com/forum/?fromgroups#!forum/rom-rb | Logs: http://irclog.whitequark.org/rom-rb
djsell has quit [Ping timeout: 246 seconds]
djsell has joined #rom-rb
cored has quit [Ping timeout: 252 seconds]
knowtheory has joined #rom-rb
djsell has quit [Ping timeout: 240 seconds]
djsell has joined #rom-rb
knowtheory has quit [Ping timeout: 256 seconds]
knowtheory has joined #rom-rb
knowtheory has quit [Ping timeout: 246 seconds]
djsell has quit [Ping timeout: 276 seconds]
snusnu has joined #rom-rb
knowtheory has joined #rom-rb
knowtheory has quit [Ping timeout: 256 seconds]
knowtheory has joined #rom-rb
snusnu has quit [Quit: Leaving.]
knowtheory has quit [Ping timeout: 256 seconds]
knowtheory has joined #rom-rb
knowtheory has quit [Ping timeout: 248 seconds]
knowtheory has joined #rom-rb
knowtheory has quit [Ping timeout: 252 seconds]
knowtheory has joined #rom-rb
knowtheory has quit [Ping timeout: 268 seconds]
knowtheory has joined #rom-rb
dkubb has joined #rom-rb
solnic has joined #rom-rb
solnic has quit [Read error: Connection reset by peer]
solnic has joined #rom-rb
splattael has joined #rom-rb
kleech has joined #rom-rb
postmodern has quit [Quit: Leaving]
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] rom-rb/rom-mapper#27 (master - 1d6df89 : Piotr Solnica): The build was broken.
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Build details : http://travis-ci.org/rom-rb/rom-mapper/builds/8533380
solnic has quit [Read error: Connection reset by peer]
mbj has joined #rom-rb
<mbj> hola!
<mbj> dkubb: hi, did my comment answered the zombification question you had?
<dkubb> mbj: yeah it did
<dkubb> mbj: that one mutation was interesting eh? I'd guess it was something out of place in the ast
<mbj> or an unparser problem
<mbj> I'll have to look at the AST.
<mbj> dkubb: still or already awake?
<dkubb> mbj: yeah, just finishing something up before I go away tomorrow
<mbj> dkubb: Holidays?
<mbj> Nice!
<mbj> I'll go to the north see (netherlands) soon.
<mbj> A week or so, will recharge batteries.
solnic has joined #rom-rb
<mbj> solnic: hola!
<solnic> mbj: hello :)
zekefast has joined #rom-rb
<mbj> solnic: Still not had the time to write down my feedback to rom-session, sorry.
<solnic> mbj: that's OK
<solnic> I'll merge it in anyway :P
<solnic> we can always refactor / improve etc after it's merged
<solnic> it's over 60 commits
<mbj> solnic: jo, full ack!
zekefast has quit [Quit: Leaving.]
<dkubb> mbj: just going away for 4 days to visit the inlaws, nothing super long
mbj has quit [Quit: Lost terminal]
solnic_ has joined #rom-rb
solnic has quit [Read error: Operation timed out]
mbj has joined #rom-rb
<mbj> dkubb: So I wish you'll have a nice vacation!
<mbj> Dunno how to say this better :D
<Gibheer> mbj: just say "have fun" ;)
<mbj> dkubb: "have fun" :D
<mbj> Gibheer: thx!
<Gibheer> hehe
knowtheory has quit [Ping timeout: 276 seconds]
cored has joined #rom-rb
cored has joined #rom-rb
cored has quit [Changing host]
kleech has quit [Remote host closed the connection]
knowtheory has joined #rom-rb
zaidan has joined #rom-rb
knowtheory has quit [Ping timeout: 256 seconds]
knowtheory has joined #rom-rb
snusnu has joined #rom-rb
brandon7 has joined #rom-rb
shingara has quit [Write error: Broken pipe]
shingara has joined #rom-rb
knowtheory has quit [Ping timeout: 246 seconds]
knowtheory has joined #rom-rb
solnic_ has quit [Quit: Leaving...]
knowtheory has quit [Quit: Computer has gone to sleep]
knowtheory has joined #rom-rb
splattael has quit [Quit: Leaving.]
snusnu has quit [Quit: Leaving.]
snusnu has joined #rom-rb
<dkubb> good morning
djsell has joined #rom-rb
<mbj> dkubb: hola
<mbj> dkubb: Minutes before pushing advanced zomfifier :D
<mbj> dkubb: Still not made my brain doing clients work :(
<mbj> dkubb: Just talked to CircleCI support, they plan matrix support!
<dkubb> oh wow
<dkubb> that would be awesome
<mbj> dkubb: Lulz!
<mbj> dkubb: Zombifier is able to vendor the whole ruby stdlib :D
<mbj> dkubb: Recursion works!
<mbj> dkubb: Mutant::Zombify.run('ice_nine'), pulls 'set', 'ice_nine/support/recursion_guard', ...
<mbj> dkubb: Really nice!
djsell has quit [Quit: Leaving.]
<namelessjon> "zombifier"?
<mbj> namelessjon: interesting story! Wanna listen?
<namelessjon> I'm curious, so yeah
<mbj> The problem: Mutant cannot run against itself, or one of its dependencies.
<mbj> A mutation could mutate mutants ability to detect mutations.
<mbj> Basically you crash mutant or all mutations are getting killed.
<mbj> The idea is to create an in-memory copy of mutant under the ::Zombie namespace.
<mbj> And include all dependencies of mutant (only ruby dependencies for now) in this Zombie namespace.
<mbj> So we'll have a: Zombie::Mutant class
<mbj> A Zombie::IceNine
<mbj> A Zombie::Equalizer
<mbj> etc.
<mbj> So if:
<mbj> module Zombie
<mbj> module Mutant
<mbj> class Something
<mbj> include Adamantium
<mbj> it will pick up Zombie::Adamantium!
<mbj> And not ::Adamantium
* namelessjon nod
<mbj> So we are free to run mutant against ::Adamantium
<mbj> Or ::Mutant
<mbj> with executing Zombie::Mutant
<mbj> namelessjon: got it?
<mbj> The trick is to abuse rubies "dynamic constant lookup" :D
<mbj> And having a perfect unparser, that allows such in-memory vendoring.
<mbj> I had this feature for 0.2 already, but now I'm building the "perfect" version.
<mbj> That is able to recurse into libraries, and pick up dependencies of dependencies etc.
<mbj> Hah, and by saing that: I need a recursion guard :D
<namelessjon> Yeah, I've used it before (or rather, been bitten by it)
<mbj> namelessjon: Thx for pulling that words out of my brain!
<mbj> namelessjon: You did mutations on mutant or mutant dependencies?
<namelessjon> No, had dynamic constant lookup occasionally surprise me :)
<mbj> namelessjon: That is the old version: https://github.com/mbj/mutant/blob/master/spec/support/zombie.rb
<mbj> namelessjon: I love dynamic constant lookup :D
<mbj> The new one will be shiny and unicorns :D
<namelessjon> Mostly I do too. Except occasionally when I forget about it and then get surprised.
<mbj> I love to do stuff like self.class::SOME_CONST
<mbj> And having subclasses defining their own SOME_CONST
snusnu has quit [Quit: Leaving.]
<mbj> dkubb, namelessjon: Can you review this readme! https://github.com/mbj/unparser
<mbj> I'm not a native speaker, and need to check if my point about equivalency and identical source reproduction is understandable!
<dkubb> mbj: I would probably put an apostrphe in here: unparser does not use the source locations' in parsers nodes
<dkubb> or hmm..
<dkubb> nevermind
<dkubb> I was having trouble parsing that sentence ;)
<mbj> hehe
<mbj> mom, lemme retry
<dkubb> mbj: I think you can get rid of the "Technical" section actually
<dkubb> mbj: from the pov of someone reading a README they've got a good summary
<mbj> dkubb: done, thx!
<mbj> dkubb: I need more README reviews, getting more reports about bad READMEs than bad code in my OSS stuff :D
<mbj> Aweseome virtus-1.0.0 campaign is at 150% of the funding goal: https://www.bountysource.com/#fundraisers/329-virtus-1-0-0
<namelessjon> mbj: Looks good to me. Though, you refer to a LICENSE file, but don't provide one
<mbj> namelessjon: thx fixed!
<dkubb> mbj: hehe, that's not a bad problem to have
<cored> dkubb: oh you are around
zaidan has quit [Ping timeout: 276 seconds]
<dkubb> cored: yeah I haven't left yet
<dkubb> cored: how is the refactoring going? I checked it yesterday and it looked really good. I suspect those specs for Attribute itself will need a stand-in example Attribute with .type ?
knowtheo1y has joined #rom-rb
knowtheory has quit [Ping timeout: 252 seconds]
djsell has joined #rom-rb
dkubb has quit [Quit: Leaving...]
djsell has quit [Quit: Leaving.]
postmodern has joined #rom-rb
<mbj> postmodern: hola
<mbj> postmodern: Time to checkout new mutant?
zaidan has joined #rom-rb
<postmodern> mbj, not yet
<postmodern> mbj, let me install it
brandon7 has quit [Quit: Leaving.]
brandon7 has joined #rom-rb
knowtheory has joined #rom-rb
knowtheo1y has quit [Ping timeout: 246 seconds]
brandon71 has joined #rom-rb
brandon7 has quit [Ping timeout: 252 seconds]
<cored> shits, dkubb went away
brandon71 has quit [Quit: Leaving.]
djsell has joined #rom-rb
<cored> I thought that if I use Virtus
<cored> and add something like attribute :name, String
<cored> and after instantiate it that object and add something like o.name = 1
<cored> that will throw an exception
kleech has joined #rom-rb
kleech has quit [Remote host closed the connection]
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] mbj/mutant#414 (master - 3666139 : Markus Schirp): The build was broken.
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Build details : http://travis-ci.org/mbj/mutant/builds/8555320
travis-ci has joined #rom-rb
travis-ci has left #rom-rb [#rom-rb]
<travis-ci> [travis-ci] Build details : http://travis-ci.org/mbj/mutant/builds/8555383
<travis-ci> [travis-ci] mbj/mutant#415 (master - a6e7fa5 : Markus Schirp): The build was broken.
<zaidan> mbj: I have created an example project for rom-status (https://github.com/zaidan/rom-status-example), plugin support is nearly finished
<mbj> zaidan: wow, nice!
<mbj> zaidan: FYI, I just added support for mutant mutating itself :D
<zaidan> mbj: hehe :D
<mbj> zaidan: Did you saw the work solnic did on the rom-rb homepage?
<mbj> zaidan: Ideally we can merge rom-status with https://github.com/rom-rb/rom-rb.org
<zaidan> mbj: yeah looks nice
<mbj> zaidan: http://rom-rb.org/
<zaidan> mbj: you mean merging config.yml + generated content + Gemfile with rom-rb/rom-rb.org
<mbj> zaidan: Jo, rom-rb/rom-rb.org is build with github-pages (a service by github)
<mbj> It supports static content only, but we dont have a really need for dynamic content.
<zaidan> mbj: should we rename rom-status, giving it a more general name?
<mbj> zaidan: Ideally we remove rom-status and merge it with rom-rb.rg
<zaidan> mbj: yeah i am familiar with gh-pages
<mbj> zaidan: I think they support the generation of content "once". So we still could use that stuff behind config.yml
<mbj> But I'm not sure, never used gh-pages for myself.
<zaidan> mbj: you mean removing the "old" rom-status or the new one? we do not need to remove the new one, because it became an indipendent tool.
<mbj> zaidan: Sure we can still create a new software that ships rom-status features.
<mbj> But for rom-rb I think a static status side is enough.
<mbj> Or we add some features, such as twitter tracking, open issue count etc, something we need serverside logic fore.
<mbj> But all that stuff I said is also possible via javascript.
<xybre> What prompted the name change?
<mbj> xybre: The need for a fresh namespace.
<mbj> xybre: We had DataMapper::Repository etc in dm-mapper at this time.
<mbj> Nobody could have run dm-1 and dm-2 together.
<mbj> Or we'd have to workaround with stupid names.
<xybre> That seems a simple enough fix. lib/datamapper.rb and lib/datamapper2.rb, where 1 sets the namespace to "Datamapper" and 2 to "Datamapper2" or even make it configurable.
<mbj> xybre: tbh, no.
<mbj> I'd dislike to have a single char difference between that two namespaces
<mbj> And to make it configurable etc.
<mbj> Also the rom project is not related to the datamapper-1 sources in any way.
<mbj> It is a compleate rewrite.
<xybre> I think a fresh start could be good actually.
<mbj> It is ;)
<xybre> Datamapper was super lightweight, and ROM seems even more flexible.
<xybre> I discovered a horrible ActiveRecord "feature" today too. It does coercions ("type casting") eagerly when you set the value. And I don't see any way to turn it off.
<mbj> xybre: ActiveRecord (pattern) is by design a single reponsibility violation.
<xybre> So for a boolean column, as soon as you set the value on the Ruby object it will immediately try to force it into the expected type. As a result the string "true" is converted to a true object, but "True" is converted to false.
<mbj> The implementation ActiveRecord does far to much at one spot.
<mbj> Okay, we could argue the pattern can be used in a way we dont have an SRP-violation.
<xybre> So I can't even do validations against the actual originally set value!
<mbj> But the implementation stuffs far to much into your models.
<zaidan> mbj: ok great, will think about a good name
<xybre> ActiveRecord::Base's namespace is *full* of stuff.
<xybre> Dumping it with `ls` in Pry reveals just an obscene number of methods and objects.
<mbj> zaidan: jo
<mbj> zaidan: Also talk to snusnu, he wrote such a tool some years ago
<mbj> zaidan: We could reuse his name, and probably win him as a contrib
<mbj> xybre: ack
<zaidan> mbj: ok good idea
<xybre> 394 methods, not included whatever it monkeypatched onto Object.
<xybre> + 70 constants.
travis-ci has joined #rom-rb
<travis-ci> [travis-ci] mbj/concord#23 (master - 974bbc9 : Markus Schirp): The build was broken.
<travis-ci> [travis-ci] Build details : http://travis-ci.org/mbj/concord/builds/8558289
travis-ci has left #rom-rb [#rom-rb]
<mbj> postmodern: Mutant is now self hosting!
<mbj> postmodern: Very happy! And it currently does not pass on itself, but will improve this!
<mbj> If you like AST magic :D
<mbj> It recurively walks libraries and vendors them inside ::Zombie
<mbj> Than ::Mutant gets targeted via the code in ::Zombie::Mutant.