Sha256: e283ea96f3e811add8c9c4e86616fb0e75560676c2e3bd8f0751904051be4fc1
Contents?: true
Size: 1.13 KB
Versions: 2
Compression:
Stored size: 1.13 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 @bulk_loader = BulkLoader::Attribute.new(self) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
bulk_loader-1.1.0 | lib/bulk_loader/dsl.rb |
bulk_loader-1.0.0 | lib/bulk_loader/dsl.rb |