Sha256: e6c64efbb2fd5e3eb166037d88a8f7e78c95d4d8f2cc094d61aa7e5a64013160

Contents?: true

Size: 1.18 KB

Versions: 3

Compression:

Stored size: 1.18 KB

Contents

require 'aspect4r/base'

module Aspect4r
  module Before
    def self.included(base)
      base.send(:include, Base)
      base.extend(ClassMethods)
      
      eigen_class = class << base; self; end
      eigen_class.extend(ClassMethods)
    end

    module ClassMethods
      def before *methods, &block
        Aspect4r::Helper.process_advice Aspect4r::Model::AdviceMetadata::BEFORE, self, methods, &block
      end
    
      def before_filter *methods, &block
        Aspect4r::Helper.process_advice Aspect4r::Model::AdviceMetadata::BEFORE_FILTER, self, methods, &block
      end
    end
    
    module Classic
      def self.included(base)
        base.send(:include, Base)
        base.extend(ClassMethods)
      
        eigen_class = class << base; self; end
        eigen_class.extend(ClassMethods)
      end
    
      module ClassMethods
        def a4r_before *methods, &block
          Aspect4r::Helper.process_advice Aspect4r::Model::AdviceMetadata::BEFORE, self, methods, &block
        end
    
        def a4r_before_filter *methods, &block
          Aspect4r::Helper.process_advice Aspect4r::Model::AdviceMetadata::BEFORE_FILTER, self, methods, &block
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aspect4r-0.10.0 lib/aspect4r/before.rb
aspect4r-0.9.1 lib/aspect4r/before.rb
aspect4r-0.9.0 lib/aspect4r/before.rb