Sha256: 3880c487c27fbc8724c762883cfd6a5dbd52148553d77c04ee514b37f5bd7b44
Contents?: true
Size: 1.19 KB
Versions: 2
Compression:
Stored size: 1.19 KB
Contents
# frozen_string_literal: true module BulkLoader module DSL module ClassMethods # getter for +BulkLoader::ClassAttribute+ # If you pass name, mapping, options argument, you can define loader # if you does not want to export name to object, pass export: false to options. def bulk_loader(*args, &block) @bulk_loader ||= if superclass.respond_to?(:bulk_loader) superclass.bulk_loader.dup else BulkLoader::ClassAttribute.new end return @bulk_loader if args.empty? name, mapping, options = *args options ||= {} does_export = options.delete(:export) @bulk_loader.define_loader(name, BulkLoader::Loader.new(mapping, options, &block)) return if does_export == false define_method name do bulk_loader.public_send(name) end end end def self.included(mod) mod.extend(ClassMethods) end def bulk_loader return @bulk_loader if @bulk_loader class_attribute = self.class.bulk_loader @bulk_loader = BulkLoader::Attribute.new(class_attribute, self) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bulk_loader-0.4.0 | lib/bulk_loader/dsl.rb |
bulk_loader-0.3.0 | lib/bulk_loader/dsl.rb |