Sha256: 1bb52c1a2e6cf6ea4d24a6e623b99304f3f3b5dcfd3e0f048c1fb467fe4c609f

Contents?: true

Size: 767 Bytes

Versions: 7

Compression:

Stored size: 767 Bytes

Contents

module ActiveRecord
  module CountLoader
    module Builder
      module HasManyExtension
        def valid_options
          super + [:count_loader]
        end

        def build(model)
          define_count_loader(model) if options[:count_loader]
          super
        end

        def define_count_loader(model)
          name_with_count = :"#{name}_count"
          name_with_count = options[:count_loader] if options[:count_loader].is_a?(Symbol)

          valid_options = options.slice(*Associations::Builder::CountLoader.valid_options)
          reflection = Associations::Builder::CountLoader.build(model, name_with_count, nil, valid_options)
          Reflection.add_reflection(model, name_with_count, reflection)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
activerecord-count_loader-0.3.3 lib/active_record/count_loader/has_many_extension.rb
activerecord-count_loader-0.3.2 lib/active_record/count_loader/has_many_extension.rb
activerecord-count_loader-0.3.1 lib/active_record/count_loader/has_many_extension.rb
activerecord-count_loader-0.3.0 lib/active_record/count_loader/has_many_extension.rb
activerecord-count_loader-0.2.2 lib/active_record/count_loader/has_many_extension.rb
activerecord-count_loader-0.2.1 lib/active_record/count_loader/has_many_extension.rb
activerecord-count_loader-0.2.0 lib/active_record/count_loader/has_many_extension.rb