Sha256: 9e016157952a62871c53025705adf8bc083a01c7e863f565007123bfd41d1ebd

Contents?: true

Size: 1.76 KB

Versions: 12

Compression:

Stored size: 1.76 KB

Contents

module FactoryGirl
  class Proxy #:nodoc:

    attr_reader :callbacks

    def initialize(klass)
    end

    def get(attribute)
      nil
    end

    def set(attribute, value)
    end

    def associate(name, factory, attributes)
    end

    def add_callback(name, block)
      @callbacks ||= {}
      @callbacks[name] ||= []
      @callbacks[name] << block
    end

    def run_callbacks(name)
      if @callbacks && @callbacks[name]
        @callbacks[name].each do |block|
          block.arity.zero? ? block.call : block.call(@instance)
        end
      end
    end

    # Generates an association using the current build strategy.
    #
    # Arguments:
    #   name: (Symbol)
    #     The name of the factory that should be used to generate this
    #     association.
    #   attributes: (Hash)
    #     A hash of attributes that should be overridden for this association.
    #
    # Returns:
    #   The generated association for the current build strategy. Note that
    #   associations are not generated for the attributes_for strategy. Returns
    #   nil in this case.
    #
    # Example:
    #
    #   factory :user do
    #     # ...
    #   end
    #
    #   factory :post do
    #     # ...
    #     author { |post| post.association(:user, :name => 'Joe') }
    #   end
    #
    #   # Builds (but doesn't save) a Post and a User
    #   FactoryGirl.build(:post)
    #
    #   # Builds and saves a User, builds a Post, assigns the User to the
    #   # author association, and saves the User.
    #   FactoryGirl.create(:post)
    #
    def association(name, overrides = {})
      nil
    end

    def method_missing(method, *args, &block)
      get(method)
    end

    def result(to_create)
      raise NotImplementedError, "Strategies must return a result"
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
factory_girl-2.0.4 lib/factory_girl/proxy.rb
factory_girl-2.0.3 lib/factory_girl/proxy.rb
factory_girl-2.0.2 lib/factory_girl/proxy.rb
factory_girl-2.0.1 lib/factory_girl/proxy.rb
factory_girl-2.0.0.rc4 lib/factory_girl/proxy.rb
factory_girl-2.0.0.rc3 lib/factory_girl/proxy.rb
factory_girl-2.0.0.rc2 lib/factory_girl/proxy.rb
factory_girl-2.0.0.rc1 lib/factory_girl/proxy.rb
factory_girl-2.0.0.beta5 lib/factory_girl/proxy.rb
factory_girl-2.0.0.beta4 lib/factory_girl/proxy.rb
factory_girl-2.0.0.beta3 lib/factory_girl/proxy.rb
factory_girl-2.0.0.beta2 lib/factory_girl/proxy.rb