Has anyone heard of this Ruby project?

https://github.com/LouHenryAlvarez/jackbox

If it’s true. It sounds like some pretty wild stuff. Anyone care to comment about this?

Am I being overly cynical or are you the author of jackbox?

Colin

I’ll “comment” that this is the second place I’ve run across this, which is pretty remarkable for a project that currently contains specs but no implementation. ALL ABOARD THE HYPE TRAIN

As to the functionality, an awful lot of what’s proposed there sounds like things you could do more clearly using modules / concerns directly. Hard to say for sure without code.

–Matt Jones

I am not the author. But, I am having some trouble trying to understand
it. There is currently, I think only the binary implementation form
http://rubygems.org, but looking into the actual gem it seems there are
some c extensions.

My concern comes from the following code from the github posting:

  cup = Coffee.new.enrich(milk).enrich(sprinkles).enrich(sprinkles)
  # or even..
  cup = Coffee.new.enrich milk, sprinkles, sprinkles

  cup.cost.should == 2.10
  cup.should be_instance_of(Coffee)
  cup.injectors.should == [:milk, :sprinkles, :sprinkles]

What does this mean?

Followup to my original comment: the Github page only has specs. Rubygems has a gem, but it’s got binary components without source and obfuscated source (RubyEncoder). I certainly wouldn’t load this code anyplace that wasn’t heavily sandboxed. I have no evidence that it’s malicious, but have the same amount that it isn’t.

There’s some interesting ideas in there, but nothing interesting enough that I’d want to bring un-debuggable, un-updatable mystery code in that also locks me to MRI.

The barrage of “announcement” posts across rails-talk, ruby, ruby-dev, and ruby-core certainly haven’t helped make a positive impression.

–Matt Jones

A final addon: the thing doesn’t even WORK. Brand-new Ruby install on a brand-new Vagrant VM:

vagrant@precise32:~$ irb

irb(main):001:0> require ‘jackbox’

TypeError: can’t create instance of singleton class

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:188:in `new'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:188:in `block (2 levels) in decorate'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:51:in `suppress_warnings'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:179:in `block in decorate'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:208:in `[]'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:208:in `decorate'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox/examples/dir.rb:18:in `block in <class:Dir>'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox/examples/dir.rb:17:in `class_eval'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox/examples/dir.rb:17:in `<class:Dir>'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox/examples/dir.rb:15:in `<top (required)>'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:404:in `require_relative'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:404:in `<encoded>'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:2:in `RGLoader_load'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/jackbox-0.9.3.1/lib/jackbox.rb:2:in `<top (required)>'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `require'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'

from /home/vagrant/.rbenv/versions/2.1.5/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:144:in `require'

from (irb):1

from /home/vagrant/.rbenv/versions/2.1.5/bin/irb:11:in `<main>'

“enhance the Ruby language and/or provide additional software constructs” sounds like a really, really bad idea.

Every Ruby dev trying to re-invent the wheel is exactly why Ruby has the (poor) reputation that it has in some circles.

Well, I tried on my Unix box running Ruby 2.1.1 and 1.9.3 through RVM
and I woke on both platforms. I also ran the specs provided with the
gem after I copied them to a woking folder and I got no errors. But of
course we have to wonder, what is the nature of this project?

Anyone care to comment on their experience?

Star

Sock puppets gotta sock, yo.

–Matt Jones

YOU seem to have an ANGER MANAGEMENT problem! Why don't you let the guy
peddle his stuff. Then MAYBE you can go an do your own instead of
trying to down talk or even worse steel someone else's work.

See yo,

Star L

Nobody is stealing anything. And nobody here objects to anyone who peddles their stuff honestly.

Oh, so now the guys at Jackbox are the dishonest ones!!

Who are the ones bad mouthing them while on the flip side trying to
de-compile the product.

We for one find Jackbox to be pretty cool stuff, and we here at CAS will
be using in one of our upcoming projects even under the current
licensing.

And, if the guys at Jackbox want some money for the license, as long as
it is WITHIN REASON we will gladly pay it.

Star L

Well, I know this is just feeding the troll, but eventually it can get pretty difficult to resist…

I am not the author. But, I am having some trouble trying to understand it.
[snip one of the dumbest examples I have ever seen]

What does this mean?

We for one find Jackbox to be pretty cool stuff, and we here at CAS will

be using in one of our upcoming projects

I have to admit I find it amusing that you are talking both about the trouble you are having understanding it, and also how you think it is cool and will be using it in your project. Too bad for the client, I suppose…maybe they like sprinkles in their coffee too.

Jim

I have to admit I find it amusing that you are talking both about the trouble you are having understanding it, and also how you think it is cool and will be using it in your project. Too bad for the client, I suppose…maybe they like sprinkles in their coffee too.

Jim

What is it you don’t understand?

Star

Jim,

I invite you to check this page:

http://robots.thoughtbot.com/evaluating-alternative-decorator-implementations-in

Thanks

Thanks Star we will try to keep it WITHIN REASON… Right now its free!

I think they’re on to us though… lol