Sha256: a1219ce9caaa549e8a61128009831c4457aeef601a03302899c4ad5643b74038

Contents?: true

Size: 1.53 KB

Versions: 3

Compression:

Stored size: 1.53 KB

Contents

= aspect4r

Aspect Oriented Programming support for Ruby

== Feature

* extract common logic from multiple methods into before, after, around advices
* before_filter as method filters (work like before_filters in web application)
* advices can be customized (e.g. to take an optional method name argument)
* work as a supporting piece for more complex AOP tasks

== Usage

  class A
    include Aspect4r
    
    around :test do |proxy_method, value|
      a4r_invoke proxy_method, value
    end

    before :test do |value|
      puts "entering test(#{value})"
    end

    before  :test, :do_something
    
    before_filter :test do |value|
      value >= 0
    end

    after :test do |result, value|
      puts "test(#{value}) returned #{result}"
      result
    end

    after :test, :do_something_else
    
    def test value
      ...
    end

    def do_something value
      ...
    end
    
    def do_something_else result, value
      ...
    end

  end
  
== How does it work?

== TODO

See github issues tab http://github.com/gcao/aspect4r/issues

== Note on Patches/Pull Requests
 
* Fork the project.
* Make your feature addition or bug fix.
* Add tests for it. This is important so I don't break it in a
  future version unintentionally.
* Commit, do not mess with rakefile, version, or history.
  (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
* Send me a pull request. Bonus points for topic branches.

== Copyright

Copyright (c) 2010 Guoliang Cao. See LICENSE for details.

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aspect4r-0.8.1 README.rdoc
aspect4r-0.8.0 README.rdoc
aspect4r-0.7.1 README.rdoc