Ruby中面向方面编程

时间:2011-03-22 15:34:22

标签: ruby frameworks aop aspects

将AOP添加到Ruby有哪些框架?

5 个答案:

答案 0 :(得分:8)

您尚未指定任何评估不同框架的条件,因此,这是我在Google上3秒后找到的标准: Aquarium


@Telemachus建议的另一个: gazer

答案 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功能。