Sha256: 4aff4ccd87499a8656415e6c18aefde59bd792e28176ba02ba0487ddbcafb2dc

Contents?: true

Size: 394 Bytes

Versions: 5

Compression:

Stored size: 394 Bytes

Contents

module BazaModels::Model::Scopes
  def self.included(base)
    base.extend(ClassMethods)
  end

  module ClassMethods
    def scope(name, blk)
      @scopes ||= {}
      name = name.to_sym

      raise "Such a scope already exists" if @scopes.key?(name)
      @scopes[name] = true

      (class << self; self; end).__send__(:define_method, name) do
        blk.call
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
baza_models-0.0.5 lib/baza_models/model/scopes.rb
baza_models-0.0.4 lib/baza_models/model/scopes.rb
baza_models-0.0.3 lib/baza_models/model/scopes.rb
baza_models-0.0.2 lib/baza_models/model/scopes.rb
baza_models-0.0.1 lib/baza_models/model/scopes.rb