Sha256: 1ca32946b9e9aba70d3573ec099153e19d4edf70c07b6b7062bc23eca3d2f24e

Contents?: true

Size: 747 Bytes

Versions: 8

Compression:

Stored size: 747 Bytes

Contents

module Resourcelogic
  module Scope
    def self.included(klass)
      klass.class_eval do
        add_acts_as_resource_module(Methods)
      end
    end
    
    module Methods
      def self.included(klass)
        klass.class_eval do
          attr_accessor :scoping, :scoping_parent
        end
      end
      
      private
        def scope
          return @scope if defined?(@scope)
          
          if parent?
            @scope = parent.send(parent_scope_name)
          else
            @scope = model
          end
        end
        
        def parent_scope
          parent_model
        end
        
        def parent_scope_name
          @parent_scope_name ||= model_name.to_s.pluralize
        end
    end
  end
end       

Version data entries

8 entries across 8 versions & 2 rubygems

Version Path
binarylogic-resourcelogic-0.12.3 lib/resourcelogic/scope.rb
binarylogic-resourcelogic-0.12.4 lib/resourcelogic/scope.rb
binarylogic-resourcelogic-0.12.5 lib/resourcelogic/scope.rb
binarylogic-resourcelogic-0.12.6 lib/resourcelogic/scope.rb
resourcelogic-0.12.6 lib/resourcelogic/scope.rb
resourcelogic-0.12.5 lib/resourcelogic/scope.rb
resourcelogic-0.12.3 lib/resourcelogic/scope.rb
resourcelogic-0.12.4 lib/resourcelogic/scope.rb