Sha256: 2b13774de250c0be43d4916bf92a2d44b56176eec6d85cb264ac58e81dfa8229

Contents?: true

Size: 607 Bytes

Versions: 10

Compression:

Stored size: 607 Bytes

Contents

module Ohm
  module Scope
    def self.included(base)
      unless defined?(base::DefinedScopes)
        base.const_set(:DefinedScopes, Module.new)
      end

      base.extend Macros
    end

    module Macros
      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
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
ohm-contrib-0.1.2 lib/ohm/contrib/scope.rb
ohm-contrib-0.1.1 lib/ohm/contrib/scope.rb
ohm-contrib-0.1.0 lib/ohm/contrib/scope.rb
ohm-contrib-0.0.42 lib/ohm/contrib/scope.rb
ohm-contrib-0.0.41 lib/ohm/contrib/scope.rb
ohm-contrib-0.0.40 lib/ohm/contrib/scope.rb
ohm-contrib-0.0.39 lib/ohm/contrib/scope.rb
ohm-contrib-0.0.38 lib/ohm/contrib/scope.rb
ohm-contrib-0.0.37 lib/ohm/contrib/scope.rb
ohm-contrib-0.0.36 lib/ohm/contrib/scope.rb