Permalink
Commits on Jul 27, 2012
  1. Bump version to 3.6.0

    joshuaclayton committed Jul 27, 2012
  2. Adding JRuby support to FactoryGirl

      JRuby are affected by inconsistent behavior of overriding
      #respond_to? that is causing an unconditional call to
      #respond_to_missing.
    
      Current change does not affect MRI users in any way,
      JRuby-specific things are wrapped into the RUBY_PLATFORM
      check.
    
      Adding docs, modifying gemspec and travis.yml to make factory_girl to pass on Travis.
    
      Wire up tests
    ifesdjeen committed with joshuaclayton Jul 6, 2012
Commits on Jul 25, 2012
  1. Memoize the names of attributes to assign for a 33% speed increase on…

    … factories with overrides
    joshuaclayton committed Jul 25, 2012
Commits on Jul 24, 2012
Commits on Jul 14, 2012
  1. Fix FactoryGirl naming convention

    So now, we'll always refer to this Gem as FactoryGirl, regardless of
    context. This commit is to make it consistence throughout the code base.
    sikachu committed with joshuaclayton Jul 13, 2012
Commits on Jul 12, 2012
  1. Add DefinitionHierarchy to handle inheritance of some definition attr…

    …ibutes
    
    This includes #callbacks, #constructor, and #to_create. The reasoning
    behind this is that we were mimicing an inheritance chain via methods;
    now, we actually generate classes, which Factory maintains, who inherit
    from their parent's hierarchy. We build the hierarchy during compilation
    to conditionally define methods based on whether what we're dealing
    with from the definition is actually meaningful. The base class
    (DefinitionHierarchy) uses the defaults (an empty array for #callbacks
    and the global #to_create and #constructor) so once we hit the top
    level, if the definition doesn't set any overrides, we have a list of
    sensible values.
    joshuaclayton committed Jul 12, 2012
Commits on Jul 7, 2012
Commits on Jun 29, 2012
  1. Allow factories with traits to be used in associations

    This allows defining associations with factories using traits by slicing
    up the hash passed to association. Passing an array to `:factory` will
    use the first item in the array as the factory, with any subsequent
    symbols as traits.
    
    Here's an example:
    
        factory :post do
          association :author, factory: [:user, :admin], name: 'John Doe'
        end
    
    Closes #395
    joshuaclayton committed Jun 29, 2012
Commits on Jun 25, 2012
Commits on Jun 22, 2012
  1. Bump version to 3.5.0

    joshuaclayton committed Jun 22, 2012
Commits on Jun 20, 2012
  1. Fix date in NEWS

    joshuaclayton committed Jun 20, 2012
  2. Bump version to 3.4.2

    joshuaclayton committed Jun 20, 2012
Commits on Jun 19, 2012
Commits on Jun 18, 2012
  1. Bump version to 3.4.1

    joshuaclayton committed Jun 18, 2012
Commits on Jun 16, 2012
  1. Fix various trait bugs so traits can be used within each other

    The previous implementation of trait handling within the Definition
    didn't account for when implicit traits were used within other traits.
    This is useful if you have two different traits, but one depends on
    another; for example, a refunded order and a completed order could both
    have the attribute `completed_at` set, but refunded would additionally
    have `refunded_at` set:
    
        FactoryGirl.define do
          factory :order do
            trait :completed do
              completed_at { 3.days.ago }
            end
    
            trait :refunded do
              completed
              refunded_at { 1.day.ago }
            end
          end
        end
    
    This also tests to make sure that callbacks, custom constructors, and
    creation overrides work correctly when implicit traits are used within
    other traits.
    
    Fixes #360
    joshuaclayton committed Jun 13, 2012
Commits on Jun 12, 2012
  1. Don't mutate hash

    joshuaclayton committed Jun 12, 2012
Commits on Jun 11, 2012
  1. Bump version to 3.4.0

    joshuaclayton committed Jun 11, 2012
Commits on Jun 9, 2012
  1. Support refering to factory based on class name

    Allows for build/creating based on RSpec's described_class, useful since
    we've deprecated other syntaxes from FG.
    
    Closes #386
    joshuaclayton committed Jun 9, 2012
Commits on Jun 8, 2012
Commits on May 18, 2012
  1. Get spec passing on 1.9.2

    joshuaclayton committed May 18, 2012
  2. Optionally disable duplicate assignment of attributes in initialize_with

    By setting:
    
        FactoryGirl.duplicate_attribute_assignment_from_initialize_with =
    false
    
    This turns off duplicate assignment of attributes accessed from
    initialize_with. This means any attributes accessed from the factory and
    assigned in the initialize_with block won't be subsequently set after
    the object has been instantiated.
    
    This will be the default functionality in 4.0.
    
    Closes #345
    joshuaclayton committed May 18, 2012
  3. Remove unnecessary conditional in Evaluator#method_missing

    Evaluator has all methods defined dynamically; this includes standard
    attributes AND overrides. Because of this, method_missing never actually
    gets used to retrieve a value from previously declared attributes or
    overrides.
    
    This branch of logic was never accessed
    joshuaclayton committed May 18, 2012
Commits on May 13, 2012
  1. Sequences support Enumerators

    This introduces an EnumeratorAdapter so everything coming in looks like
    an Enumerator. It doesn't use the adapter if the #peek method exists on
    the object.
    
    This allows for sequences like:
    
        sequence(:cities, %w[Boston Atlanta Detroit Seattle].cycle)
    
    This also makes it easier to cycle through arrays and ranges, since they
    can be converted to Enumerators rather easily.
    
        sequence(:month, (1..12).to_enum)
        sequence(:month, %w[foo bar baz].to_enum)
    
    This doesn't handle when calling Range#step out of the box, because
    Ruby returns an Enumerator but ActiveSupport 3.x returns an array,
    meaning #to_enum still needs to be called.
    
    Closes #339, #378
    joshuaclayton committed May 13, 2012
  2. Bump version to 3.3.0

    joshuaclayton committed May 13, 2012