Module: Aspekt::Helpers::ShorthandMethods
- Defined in:
- lib/aspekt/helpers/shorthand_methods.rb
Instance Method Summary collapse
-
#after(*pointcuts, &block) ⇒ Object
Shorthand for after advice.
-
#around(*pointcuts, &block) ⇒ Object
Shorthand for around advice.
-
#before(*pointcuts, &block) ⇒ Object
Shorthand for before advice.
Instance Method Details
#after(*pointcuts, &block) ⇒ Object
Shorthand for after advice.
Examples
after type: Test, methods: /to_/ do
puts "Before called on a object #{self}"
end
class TestMe
after methods: [:a, /b/] do |joinpoint| # note how type or instance is not specified, it is automatically resolved to self (what is TestMe in class body)
puts "After #{joinpoint}!"
end
end
47 48 49 |
# File 'lib/aspekt/helpers/shorthand_methods.rb', line 47 def after *pointcuts, &block Aspekt::Advice.new type: :after, pointcuts: pointcuts, &block end |
#around(*pointcuts, &block) ⇒ Object
Shorthand for around advice.
Example
around type: Test, methods: /to_/ do |joinpoint|
puts "Before called on a object #{self} and method #{joinpoint[:method]}"
result = joinpoint.proceed
puts "After called on a object #{self} and method #{joinpoint[:method]}"
result
end
class TestMe
around methods: [:a, /b/] do |joinpoint| # note how type or instance is not specified, it is automatically resolved to self (what is TestMe in class body)
puts "Before around #{joinpoint}!"
result = joinpoint.proceed
puts "After around #{joinpoint}!"
result
end
end
73 74 75 |
# File 'lib/aspekt/helpers/shorthand_methods.rb', line 73 def around *pointcuts, &block Aspekt::Advice.new type: :around, pointcuts: pointcuts, &block end |
#before(*pointcuts, &block) ⇒ Object
Shorthand for before advice.
Examples
before type: Test, methods: /to_/ do
puts "Before called on a object #{self}"
end
before(
{type: Class1, method: :method1},
{types: [Class2, Class3], methods: [/cotaining/, :method3]},
{instances: [Class3, Class4, some_object], method: :lal}
) do |joinpoint|
puts "Before #{joinpoint[:method]} on #{self}. Other information of joinpoint: #{joinpoint}."
end
class TestMe
before methods: [:a, /b/] do |joinpoint| # note how type or instance is not specified, it is automatically resolved to self (what is TestMe in class body)
puts "Before #{joinpoint}!"
end
end
27 28 29 |
# File 'lib/aspekt/helpers/shorthand_methods.rb', line 27 def before *pointcuts, &block Aspekt::Advice.new type: :before, pointcuts: pointcuts, &block end |