Ginty wrote:
> 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}.#{[email protected]" }
> 
> this is more elegant in it's simplicity:
> 
> :email => "#{first_name}.#{[email protected]"
> 
> Personal preference.

For a trivial example like that, sure.  But it doesn't generalize to 
anything more complex.  Blocks do.

> 
>> >> 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, 

I noticed that.  On what class?

> 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.

Why on earth would you assign a symbol to what I assume is an 
association?

> 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. 

I'm not all that fond of FG's association syntax either.  But for 
Machinist, it really is just
Post.make.comments.make
or
Comment.make :post => Post.make
just like Rails.  If you find that hard to understand, I don't know what 
more I can say.

> 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.
> 

Then try Machinist!

> 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.

I've never even heard of it.

> 
> 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.

I think that in your quest for "simplicity", you've wound up with 
something that seems to take twice as much work as Machinist to set up a 
usable test environment.

Best,
--
Marnen Laibow-Koser
http://www.marnen.org
[email protected]
-- 
Posted via http://www.ruby-forum.com/.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to