Sha256: ccd24a6a3aa41fe51009bf29a517b760f9c6bfff52b58cfc1fed061a00e322b4

Contents?: true

Size: 400 Bytes

Versions: 8

Compression:

Stored size: 400 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] = {blk: blk}

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
baza_models-0.0.13 lib/baza_models/model/scopes.rb
baza_models-0.0.12 lib/baza_models/model/scopes.rb
baza_models-0.0.11 lib/baza_models/model/scopes.rb
baza_models-0.0.10 lib/baza_models/model/scopes.rb
baza_models-0.0.9 lib/baza_models/model/scopes.rb
baza_models-0.0.8 lib/baza_models/model/scopes.rb
baza_models-0.0.7 lib/baza_models/model/scopes.rb
baza_models-0.0.6 lib/baza_models/model/scopes.rb