Sha256: 3cca92f19c087631ef98c47411421b0683cc4bb559485c8b3d1701be2fe549af

Contents?: true

Size: 684 Bytes

Versions: 2

Compression:

Stored size: 684 Bytes

Contents

module Ohm
  module Scope
    def self.included(model)
      unless model.const_defined?(:DefinedScopes, false)
        model.const_set(:DefinedScopes, Module.new)
      end

      model.extend ClassMethods
    end

    module ClassMethods
      def scope(scope = nil, &block)
        self::DefinedScopes.module_eval(&block) if block_given?
        self::DefinedScopes.send(:include, scope) if scope
      end
    end

    module OverloadedSet
      def initialize(*args)
        super

        extend model::DefinedScopes if defined?(model::DefinedScopes)
      end
    end

    Ohm::Model::Set.send :include, OverloadedSet
  end

  Model::Set.send :include, Scope::OverloadedSet
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ohm-contrib-1.0.rc1 lib/ohm/scope.rb
ohm-contrib-1.0.rc0 lib/ohm/scope.rb