Commits on Feb 17, 2012
  1. Bump version to 2.6.0

    joshuaclayton committed Feb 17, 2012
  2. Fix ignored attribute name

    joshuaclayton committed Feb 17, 2012
Commits on Feb 12, 2012
Commits on Feb 10, 2012
  1. Don't mutate overrides

    joshuaclayton committed Feb 10, 2012
  2. Add AssociationRunner for running associations from strategies

    joshuaclayton committed Feb 8, 2012
    This extracts logic for running factories based on name and either
    strategy class, symbol representing a strategy, or nil (defaulting to
    the create strategy)
  3. Proxy => Strategy

    joshuaclayton committed Feb 8, 2012
  4. Bump version to 2.5.2

    joshuaclayton committed Feb 10, 2012
Commits on Feb 8, 2012
  1. Move factory associations logic to evaluator_class

    joshuaclayton committed Feb 8, 2012
    evaluator_class contains the fully-inherited list of attributes; this
    includes parent classes, traits, etc. When calculating associations for
    an individual factory, the factory should use inheritance to build the
    list instead of merely accessing association attributes on itself.
    Closes #293
  2. Minor code cleanup

    joshuaclayton committed Feb 8, 2012
  3. Let Cucumber steps use inherited associations.

    eostrom committed with joshuaclayton Feb 7, 2012
    By making Factory#associations include the parent's associations.
  4. Clean up gemspec.

    Gabe Berke-Williams committed Feb 8, 2012
  5. Remove unnecessary call to #should.

    Gabe Berke-Williams committed Feb 8, 2012
Commits on Feb 4, 2012
Commits on Feb 3, 2012
  1. Bump version to 2.5.1

    joshuaclayton committed Feb 3, 2012
  2. Overrides become methods defined on each instance of the evaluator

    joshuaclayton committed Jan 29, 2012
    There were some big issues with trying to undefine specific methods on
    the Evaluator. After investigating maybe inheriting from BasicObject (or
    ActiveSupport::BasicObject since BasicObject is 1.9+), that turned out
    to be too much of a pain because it undefines almost everything,
    including class and a handful of other methods necessary for Evaluator
    to work properly.
    The second solution was to undefine all private methods. The problem is,
    when other libraries defining methods (private or otherwise) on Object
    are loaded *after* factory girl, those methods get added and Evaluator
    sees those methods on Object. So, that solution didn't directly work either.
    This commit removes undefining methods (the sole reason of which was to
    capture with method_missing and process ourselves, returning the
    override or cached value) and instead introduces a new concept -
    iterating over each override and defining it as a method on the
    evaluator INSTANCE. This means that overrides don't collide because
    they're on the instance and we don't have to worry about undefining
    methods so that method_missing kicks in. This is the most stable and
    guaranteed way to get this to work because the overrides are applied to
    each instance at runtime.
    Closes #279, #285
Commits on Jan 29, 2012
  1. Update rubygems on before running dependency installation

    michaelklishin committed Jan 29, 2012
    REE will fail to install Rails 3.2 gems w/o rubygems update.
Commits on Jan 23, 2012
Commits on Jan 21, 2012
  1. Bump version to 2.5.0

    joshuaclayton committed Jan 21, 2012
Commits on Jan 20, 2012
  1. Revert "Deprecate attributes_for and build_stubbed"

    joshuaclayton committed Jan 20, 2012
    This reverts commit a883315.
  2. Implement initialize_with to allow overriding object instantiation

    joshuaclayton committed Jan 20, 2012
    Factory Girl now allows factories to override object instantiation. This
    means factories can use factory methods (e.g. methods other than new) as
    well as pass arguments explicitly.
        factory :user do
          ignore do
            things { ["thing 1", "thing 2"] }
          initialize_with { User.construct_with_things(things) }
        factory :report_generator do
          ignore do
            name { "Generic Report" }
            data { {:foo => "bar", :baz => "buzz"} }
          initialize_with {, data) }
    Code recommendations