Sha256: 3228826d2fadd06ec546f5bdca1c0c957b18f428b8764dc433020fc9fb8b58bf

Contents?: true

Size: 1016 Bytes

Versions: 2

Compression:

Stored size: 1016 Bytes

Contents

require "microscope/version"

require 'active_record'
require 'active_support'

require "microscope/scope"
require "microscope/scope/boolean_scope"
require "microscope/scope/datetime_scope"
require "microscope/scope/date_scope"

require "microscope/instance_method"
require "microscope/instance_method/datetime_instance_method"
require "microscope/instance_method/date_instance_method"

module Microscope
  def self.inject_into_active_record
    Proc.new do
      def self.acts_as_microscope(options = {})
        except = options[:except] || []
        model_columns = columns.dup.reject { |c| except.include?(c.name.to_sym) }

        if only = options[:only]
          model_columns = model_columns.select { |c| only.include?(c.name.to_sym) }
        end

        Microscope::Scope.inject_scopes(self, model_columns, options)
        Microscope::InstanceMethod.inject_instance_methods(self, model_columns, options)
      end
    end
  end
end

ActiveRecord::Base.class_eval(&Microscope.inject_into_active_record)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
microscope-0.4.1 lib/microscope.rb
microscope-0.4 lib/microscope.rb