Sha256: 8c21f63d1985f4e763c14a7fa33294825da4795e6ec45ef1a84e0da421c39c39

Contents?: true

Size: 839 Bytes

Versions: 1

Compression:

Stored size: 839 Bytes

Contents

# frozen_string_literal: true
module Mobility
=begin

Module loading ActiveRecord-specific classes for Mobility models.

=end
  module ActiveRecord
    require "mobility/active_record/uniqueness_validator"

    def self.included(model_class)
      model_class.class_eval do
        extend QueryMethod.new(Mobility.query_method)
        unless const_defined?(:UniquenessValidator)
          const_set(:UniquenessValidator,
                    Class.new(::Mobility::ActiveRecord::UniquenessValidator))
        end
        delegate :translated_attribute_names, to: :class
      end
    end

    class QueryMethod < Module
      def initialize(query_method)
        module_eval <<-EOM, __FILE__, __LINE__ + 1
          def #{query_method}
            all
          end
        EOM
      end
    end
    private_constant :QueryMethod
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mobility-0.6.0 lib/mobility/active_record.rb