3

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

4

5 回答 5

11

使用 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

输出:

记录鲁弗斯的吠声!

鲁弗斯狗会叫!

于 2014-07-03T16:59:55.253 回答
8

您还没有指定任何评估不同框架的标准,所以这是我在 Google 上 3 秒后找到的:Aquarium


@Telemachus建议的另一个:凝视器。

于 2011-03-22T15:38:15.687 回答
2

无耻的插件:aspector可能是你正在寻找的东西。它允许您定义方面,然后应用于一个或多个目标。

于 2012-06-15T13:23:15.480 回答
1

我在 2 或 3 年前在大学项目中尝试过水族馆宝石。工作得很好,项目的目的是与 AspectJ 进行比较,以确定它是否能够像 AspectJ 一样处理所有事情。那时,很多 AspectJ 能够提供的功能都缺失了。但是现在我看到添加了很多东西,所以值得再试一次。

于 2013-08-12T14:04:54.150 回答
0

AspectR(最后一个版本看起来是在 2002 年)——最初是 Ruby 中的规范 AOP 库。

Facets - 具有一些 AOP 功能。

于 2012-08-10T19:58:21.123 回答