将AOP添加到Ruby有哪些框架?
答案 0 :(得分:8)
答案 1 :(得分:7)
使用Ruby 2.0+,您不一定需要一个框架:
module BarkLogger
def bark
puts "Logging #@name's bark!"
super
end
end
class Dog
prepend BarkLogger
def initialize(name)
@name = name
end
def bark
puts "#@name the dog says bark!"
end
end
Dog.new("Rufus").bark
输出:
记录鲁弗斯的树皮!
鲁弗斯狗说树皮!
答案 2 :(得分:2)
无耻的插件:aspector可能就是你想要的。它允许您定义方面,然后应用于一个或多个目标。
答案 3 :(得分:1)
我在大学项目中尝试了2或3年前的Aquarium宝石。工作得很好,项目的目标是与AspectJ进行比较,以确定它是否能像AspectJ那样具备所有功能。那时,AspectJ所具备的许多功能都缺失了。但现在我看到添加了很多东西,所以值得再试一次。
答案 4 :(得分:0)
AspectR(最新版本与2002年相似) - 最初是Ruby中的规范AOP库。
Facets - 具有一些AOP功能。