On May 25, 10:51 pm, Marnen Laibow-Koser [email protected] wrote:
arguments…meh.
Uh, no. Passing closures (blocks) as arguments is one feature that
makes Ruby very powerful. You’ll have to do better than “meh” to
explain why you’re choosing not to use a key Ruby feature, at least if
you want people to take you seriously and use your software.
Haha, yeah you’ve probably taken me down a path here I didn’t really
mean to go down.
Marnen says: I didn’t lead you down …
Yeah I know.
Bottom line, this to me is ugly:
u.email {|a| “#{a.first_name}.#{a.last_name}@example.com” }
this is more elegant in it’s simplicity:
:email => “#{first_name}.#{last_name}@example.com”
Personal preference.
is so I can just say Widget.make and get a fully viable Widget object,
and how you relate them.
def user
Define attributes via a hash, generate the values any way you want
define :name => “Jimmy”,
# An ‘n’ counter method is available to help make things
unique
Does it work with Faker?
Yeah it’ll work with anything like that, you’re just defining a
regular method, require what you will.
:email => "jimmy#[email protected]",
:role => :user,
# Call your own helper methods to wire up your
associations…
Does :user just get passed to a helper, or what?
Good point, maybe a bad example, :user was just the value I pass to my
user.role= method. It doesn’t refer to the user factory, model or
otherwise. Could equally have been :admin or what have you. I’ll
change this in the docs.
And what didn’t you feel in control of with Machinist or Factory Girl?
Machinist in particular just uses the usual Rails association
mechanisms.
For me they are too heavy, too much magic at times (admittedly I am a
Factory Girl guy), I need to think too much about how to create an
association if I want anything other than a randomly generated one,
and ultimately I just don’t like the syntax. The combination of these
things has made me feel that I’ve never really ‘flowed’ with this
aspect of writing my tests for want of a better description.
I said in the blog that Miniskirt was a real revelation to me as it
showed me that these factory helpers don’t need to do much, I don’t
quite understand now why some of them are so big under the hood, but
Miniskirt didn’t hit the syntax aspect for me either.
So Cranky is now my factory of choice, it feels good, very good, and I
don’t think that I have abnormal tastes. So I’ve packaged it up should
others like it to. So if you do cool, if you don’t that’s cool to,
we’re not exactly short of choice here.