Sha256: a1225496f704e7cf2fe8d5f3a69ffbcd69b22b77b7ac7ab41abb27e90dfaa19a

Contents?: true

Size: 548 Bytes

Versions: 1

Compression:

Stored size: 548 Bytes

Contents

module ActiveRecord
  module Precountable
    class NotPrecountedError < StandardError
    end

    def precounts(*association_names)
      association_names.each do |association_name|
        var_name = "#{association_name}_count"
        instance_var_name = "@#{var_name}"

        attr_writer(var_name)
        define_method(var_name) do
          count = instance_variable_get(instance_var_name)
          raise NotPrecountedError.new("`#{association_name}' not precounted") unless count
          count
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
activerecord-precounter-0.4.0 lib/active_record/precountable.rb