Sha256: 096f2de6773c2627fad966f81c4be32a2776c631a0b5d3518f13514663680e2a

Contents?: true

Size: 787 Bytes

Versions: 9

Compression:

Stored size: 787 Bytes

Contents

#   Usage:
#
#     records = AnonymousActiveRecord.factory(source_data: [{name: 'Bob McGurdy'}], columns: ['name']) do
#                 def flowery_name
#                   "🌸#{name}🌸"
#                 end
#               end
#     records.first.flowery_name # => "🌸Bob McGurdy🌸"
#
module AnonymousActiveRecord
  # Factory initializes instances of a pseudo anonymous class in a particular namespace of your choosing.
  class Factory
    attr_reader :klass

    def initialize(source_data, klass)
      @source_data = source_data # an array of hashes
      @klass = klass
    end

    def run
      @source_data.map do |hash|
        klass.create(hash)
      end
    end

    def run!
      @source_data.map do |hash|
        klass.create!(hash)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
anonymous_active_record-1.0.3 lib/anonymous_active_record/factory.rb
anonymous_active_record-1.0.2 lib/anonymous_active_record/factory.rb
anonymous_active_record-1.0.1 lib/anonymous_active_record/factory.rb
anonymous_active_record-1.0.0 lib/anonymous_active_record/factory.rb
anonymous_active_record-0.1.4 lib/anonymous_active_record/factory.rb
anonymous_active_record-0.1.3 lib/anonymous_active_record/factory.rb
anonymous_active_record-0.1.2 lib/anonymous_active_record/factory.rb
anonymous_active_record-0.1.1 lib/anonymous_active_record/factory.rb
anonymous_active_record-0.1.0 lib/anonymous_active_record/factory.rb