aquarium 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +4 -0
- data/EXAMPLES.rd +4 -0
- data/MIT-LICENSE +20 -0
- data/README +250 -0
- data/RELEASE-PLAN +1 -0
- data/Rakefile +236 -0
- data/UPGRADE +3 -0
- data/examples/aspect_design_example.rb +36 -0
- data/examples/design_by_contract_example.rb +88 -0
- data/examples/method_missing_example.rb +44 -0
- data/examples/method_tracing_example.rb +64 -0
- data/lib/aquarium.rb +7 -0
- data/lib/aquarium/aspects.rb +6 -0
- data/lib/aquarium/aspects/advice.rb +189 -0
- data/lib/aquarium/aspects/aspect.rb +577 -0
- data/lib/aquarium/aspects/default_object_handler.rb +27 -0
- data/lib/aquarium/aspects/dsl.rb +1 -0
- data/lib/aquarium/aspects/dsl/aspect_dsl.rb +61 -0
- data/lib/aquarium/aspects/join_point.rb +158 -0
- data/lib/aquarium/aspects/pointcut.rb +254 -0
- data/lib/aquarium/aspects/pointcut_composition.rb +36 -0
- data/lib/aquarium/extensions.rb +5 -0
- data/lib/aquarium/extensions/hash.rb +85 -0
- data/lib/aquarium/extensions/regexp.rb +20 -0
- data/lib/aquarium/extensions/set.rb +49 -0
- data/lib/aquarium/extensions/string.rb +13 -0
- data/lib/aquarium/extensions/symbol.rb +22 -0
- data/lib/aquarium/extras.rb +4 -0
- data/lib/aquarium/extras/design_by_contract.rb +64 -0
- data/lib/aquarium/finders.rb +4 -0
- data/lib/aquarium/finders/finder_result.rb +121 -0
- data/lib/aquarium/finders/method_finder.rb +228 -0
- data/lib/aquarium/finders/object_finder.rb +74 -0
- data/lib/aquarium/finders/type_finder.rb +127 -0
- data/lib/aquarium/utils.rb +9 -0
- data/lib/aquarium/utils/array_utils.rb +29 -0
- data/lib/aquarium/utils/hash_utils.rb +28 -0
- data/lib/aquarium/utils/html_escaper.rb +17 -0
- data/lib/aquarium/utils/invalid_options.rb +9 -0
- data/lib/aquarium/utils/method_utils.rb +18 -0
- data/lib/aquarium/utils/nil_object.rb +13 -0
- data/lib/aquarium/utils/set_utils.rb +32 -0
- data/lib/aquarium/version.rb +30 -0
- data/rake_tasks/examples.rake +7 -0
- data/rake_tasks/examples_specdoc.rake +8 -0
- data/rake_tasks/examples_with_rcov.rake +8 -0
- data/rake_tasks/verify_rcov.rake +7 -0
- data/spec/aquarium/aspects/advice_chain_node_spec.rb +34 -0
- data/spec/aquarium/aspects/advice_spec.rb +103 -0
- data/spec/aquarium/aspects/aspect_invocation_spec.rb +111 -0
- data/spec/aquarium/aspects/aspect_spec.rb +978 -0
- data/spec/aquarium/aspects/aspect_with_nested_types_spec.rb +129 -0
- data/spec/aquarium/aspects/concurrent_aspects_spec.rb +423 -0
- data/spec/aquarium/aspects/concurrent_aspects_with_objects_and_types_spec.rb +103 -0
- data/spec/aquarium/aspects/concurrently_accessed.rb +21 -0
- data/spec/aquarium/aspects/dsl/aspect_dsl_spec.rb +514 -0
- data/spec/aquarium/aspects/join_point_spec.rb +302 -0
- data/spec/aquarium/aspects/pointcut_and_composition_spec.rb +131 -0
- data/spec/aquarium/aspects/pointcut_or_composition_spec.rb +111 -0
- data/spec/aquarium/aspects/pointcut_spec.rb +800 -0
- data/spec/aquarium/extensions/hash_spec.rb +187 -0
- data/spec/aquarium/extensions/regex_spec.rb +40 -0
- data/spec/aquarium/extensions/set_spec.rb +105 -0
- data/spec/aquarium/extensions/string_spec.rb +25 -0
- data/spec/aquarium/extensions/symbol_spec.rb +37 -0
- data/spec/aquarium/extras/design_by_contract_spec.rb +68 -0
- data/spec/aquarium/finders/finder_result_spec.rb +359 -0
- data/spec/aquarium/finders/method_finder_spec.rb +878 -0
- data/spec/aquarium/finders/method_sorting_spec.rb +16 -0
- data/spec/aquarium/finders/object_finder_spec.rb +230 -0
- data/spec/aquarium/finders/type_finder_spec.rb +210 -0
- data/spec/aquarium/spec_example_classes.rb +117 -0
- data/spec/aquarium/spec_helper.rb +3 -0
- data/spec/aquarium/utils/array_utils_spec.rb +47 -0
- data/spec/aquarium/utils/hash_utils_spec.rb +48 -0
- data/spec/aquarium/utils/html_escaper_spec.rb +18 -0
- data/spec/aquarium/utils/method_utils_spec.rb +50 -0
- data/spec/aquarium/utils/nil_object_spec.rb +19 -0
- data/spec/aquarium/utils/set_utils_spec.rb +60 -0
- metadata +132 -0
@@ -0,0 +1,117 @@
|
|
1
|
+
# :enddoc:
|
2
|
+
# Declares classes, etc. that support several different module specs.
|
3
|
+
class ExampleParentClass
|
4
|
+
def == other
|
5
|
+
self.object_id == other.object_id or self.class == other.class
|
6
|
+
end
|
7
|
+
alias :eql? :==
|
8
|
+
end
|
9
|
+
|
10
|
+
class ClassWithPublicInstanceMethod < ExampleParentClass
|
11
|
+
def public_instance_test_method
|
12
|
+
end
|
13
|
+
end
|
14
|
+
class ClassWithPublicInstanceMethod2 < ExampleParentClass
|
15
|
+
def public_instance_test_method2
|
16
|
+
end
|
17
|
+
end
|
18
|
+
class ClassWithProtectedInstanceMethod < ExampleParentClass
|
19
|
+
protected
|
20
|
+
def protected_instance_test_method
|
21
|
+
end
|
22
|
+
end
|
23
|
+
class ClassWithPrivateInstanceMethod < ExampleParentClass
|
24
|
+
private
|
25
|
+
def private_instance_test_method
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class ClassWithPublicClassMethod < ExampleParentClass
|
30
|
+
def self.public_class_test_method
|
31
|
+
end
|
32
|
+
end
|
33
|
+
class ClassWithPrivateClassMethod < ExampleParentClass
|
34
|
+
def self.private_class_test_method
|
35
|
+
end
|
36
|
+
private_class_method :private_class_test_method
|
37
|
+
end
|
38
|
+
|
39
|
+
class ClassWithAttribs < ExampleParentClass
|
40
|
+
attr_accessor :attrRW_ClassWithAttribs, :name
|
41
|
+
attr_reader :attrR_ClassWithAttribs
|
42
|
+
attr_writer :attrW_ClassWithAttribs
|
43
|
+
def initialize
|
44
|
+
@name = "Name"
|
45
|
+
end
|
46
|
+
def eql? other
|
47
|
+
super(other) && name.eql?(other.name)
|
48
|
+
end
|
49
|
+
alias :== :eql?
|
50
|
+
end
|
51
|
+
|
52
|
+
class Watchful
|
53
|
+
class WatchfulError < Exception
|
54
|
+
def initialize message = nil
|
55
|
+
super
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def eql? other
|
60
|
+
super && instance_variables.each do |var|
|
61
|
+
return false unless instance_variable_get(var) == other.instance_variable_get(var)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
alias :== :eql?
|
65
|
+
|
66
|
+
%w[public protected private].each do |protection|
|
67
|
+
class_eval(<<-EOF, __FILE__, __LINE__)
|
68
|
+
public
|
69
|
+
attr_accessor :#{protection}_watchful_method_args, :#{protection}_watchful_method_that_raises_args
|
70
|
+
#{protection}
|
71
|
+
def #{protection}_watchful_method *args
|
72
|
+
@#{protection}_watchful_method_args = args
|
73
|
+
yield *args if block_given?
|
74
|
+
end
|
75
|
+
def #{protection}_watchful_method_that_raises *args
|
76
|
+
@#{protection}_watchful_method_that_raises_args = args
|
77
|
+
yield *args if block_given?
|
78
|
+
raise WatchfulError.new #("#{protection}_watchful_method_that_raises")
|
79
|
+
end
|
80
|
+
EOF
|
81
|
+
end
|
82
|
+
|
83
|
+
%w[public private].each do |protection|
|
84
|
+
class_eval(<<-EOF, __FILE__, __LINE__)
|
85
|
+
@@#{protection}_class_watchful_method_args = nil
|
86
|
+
@@#{protection}_class_watchful_method_that_raises_args = nil
|
87
|
+
class << self
|
88
|
+
public
|
89
|
+
def #{protection}_class_watchful_method_args
|
90
|
+
@@#{protection}_class_watchful_method_args
|
91
|
+
end
|
92
|
+
def #{protection}_class_watchful_method_args= args
|
93
|
+
@@#{protection}_class_watchful_method_args = args
|
94
|
+
end
|
95
|
+
def #{protection}_class_watchful_method_that_raises_args
|
96
|
+
@@#{protection}_class_watchful_method_that_raises_args
|
97
|
+
end
|
98
|
+
def #{protection}_class_watchful_method_that_raises_args args
|
99
|
+
@@#{protection}_class_watchful_method_that_raises_args = args
|
100
|
+
end
|
101
|
+
|
102
|
+
def #{protection}_class_watchful_method *args
|
103
|
+
@@#{protection}_class_watchful_method_args = args
|
104
|
+
yield *args if block_given?
|
105
|
+
end
|
106
|
+
def #{protection}_class_watchful_method_that_raises *args
|
107
|
+
@@#{protection}_class_watchful_method_that_raises_args = args
|
108
|
+
yield *args if block_given?
|
109
|
+
raise WatchfulError.new #("#{protection}_class_watchful_method_that_raises")
|
110
|
+
end
|
111
|
+
#{protection} :#{protection}_class_watchful_method, :#{protection}_class_watchful_method_that_raises
|
112
|
+
end
|
113
|
+
EOF
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
class WatchfulChild < Watchful; end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require 'aquarium/utils/array_utils'
|
3
|
+
require 'set'
|
4
|
+
|
5
|
+
describe Aquarium::Utils::ArrayUtils, "make_array" do
|
6
|
+
|
7
|
+
it "should return an empty array if the input is nil." do
|
8
|
+
make_array(nil).should == []
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return an empty array if an input array contains all nils." do
|
12
|
+
make_array([nil, nil]).should == []
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return an empty array if an input Set contains all nils." do
|
16
|
+
make_array(Set.new([nil, nil])).should == []
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return an array with all nils removed from the input array." do
|
20
|
+
make_array([nil, 1, 2, nil, 3, 4]).should == [1, 2, 3, 4]
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return an array with all nils removed from the input Set." do
|
24
|
+
make_array(Set.new([nil, 1, 2, nil, 3, 4])).should == [1, 2, 3, 4]
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return an 1-element array with an empty element if the input is empty." do
|
28
|
+
make_array("").should == [""]
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should return an 1-element array with an element that matched the input element." do
|
32
|
+
make_array("123").should == ["123"]
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return an input array unchanged if it contains no nil elements." do
|
36
|
+
make_array([1,2,"123"]).should == [1,2,"123"]
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should return an input Set#to_a if it contains no nil elements." do
|
40
|
+
make_array(Set.new([1,2,"123"])).should == [1,2,"123"]
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should accept a list of arguments instead of an array or Set." do
|
44
|
+
make_array(nil, nil).should == []
|
45
|
+
make_array(nil, 1, 2, nil, 3, 4).should == [1, 2, 3, 4]
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/../spec_example_classes'
|
3
|
+
require 'aquarium/utils/hash_utils'
|
4
|
+
|
5
|
+
describe Aquarium::Utils::HashUtils, "#make_hash" do
|
6
|
+
|
7
|
+
it "should return an empty hash if the input is nil." do
|
8
|
+
make_hash(nil).should == {}
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return an empty hash if the input hash is empty." do
|
12
|
+
make_hash({}).should == {}
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return a hash with all nil keys and their corresponding values removed." do
|
16
|
+
make_hash({nil => 'nil', :a => 'a'}).should == {:a => 'a'}
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return an unmodified hash if the input hash has no nil keys." do
|
20
|
+
make_hash({:a => 'a', :b => 'b'}).should == {:a => 'a', :b => 'b'}
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return a 1-element hash with an empty key and a nil value if the input is empty." do
|
24
|
+
make_hash("").should == {"" => nil}
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return a 1-element hash with the input item as a key and nil as the corresponding value if a single input value is given and no block is given." do
|
28
|
+
make_hash("123").should == {"123" => nil}
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should return a 1-element hash with the input item as a key and the value of the block as the corresponding value if a single input value is given." do
|
32
|
+
make_hash("123"){|x| x+x}.should == {"123" => "123123"}
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return a hash with the input list items as keys with any nils removed." do
|
36
|
+
make_hash(["123", nil, nil, "22", nil]).should == {"123" => nil, "22" => nil}
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should return a hash with the input list items as keys and nils as the corresponding values, if no block is given." do
|
40
|
+
make_hash(["123", "22"]).should == {"123" => nil, "22" => nil}
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should return a hash with the input list items as keys and the value of the block as the corresponding value." do
|
44
|
+
make_hash(["123", "22"]){|x| x+x}.should == {"123" => "123123", "22" => "2222"}
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require 'aquarium/utils/array_utils'
|
3
|
+
require 'set'
|
4
|
+
|
5
|
+
describe Aquarium::Utils::HtmlEscaper, ".escape" do
|
6
|
+
it "should replace < with < and > with >" do
|
7
|
+
Aquarium::Utils::HtmlEscaper.escape("<html></html>").should == "<html></html>"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe Aquarium::Utils::HtmlEscaper, "#escape" do
|
12
|
+
it "should replace < with < and > with >" do
|
13
|
+
class Escaper
|
14
|
+
include Aquarium::Utils::HtmlEscaper
|
15
|
+
end
|
16
|
+
Escaper.new.escape("<html></html>").should == "<html></html>"
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require 'aquarium/utils/method_utils'
|
3
|
+
|
4
|
+
describe "Aquarium::Utils::MethodUtils.method_args_to_hash" do
|
5
|
+
|
6
|
+
it "should return an empty hash for no arguments." do
|
7
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash().should == {}
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should return an empty hash for a nil argument." do
|
11
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(nil).should == {}
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should return a hash with the input arguments as keys and nil for each value, if no block is given and the last argument is not a hash." do
|
15
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(:a, :b).should == {:a => nil, :b => nil}
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should return a hash with the input arguments as keys and the block result for each value, if a block is given and the last argument is not a hash." do
|
19
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(:a, :b){|key| key.to_s}.should == {:a => 'a', :b => 'b'}
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should return the input hash if the input arguments consist of a single hash." do
|
23
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(:a =>'a', :b => 'b'){|key| key.to_s}.should == {:a => 'a', :b => 'b'}
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return the input hash if the input arguments consist of a single hash, ignoring a given block." do
|
27
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(:a =>'a', :b => 'b'){|key| key.to_s+key.to_s}.should == {:a => 'a', :b => 'b'}
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should treat a hash that is not at the end of the argument list as a non-hash argument." do
|
31
|
+
hash_arg = {:a =>'a', :b => 'b'}
|
32
|
+
h = Aquarium::Utils::MethodUtils.method_args_to_hash(hash_arg, :c){|key| "foo"}
|
33
|
+
h.size.should == 2
|
34
|
+
h[hash_arg].should == "foo"
|
35
|
+
h[:c].should == "foo"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should return a hash containing an input hash at the end of the input arguments." do
|
39
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(:x, :y, :a =>'a', :b => 'b').should == {:a => 'a', :b => 'b', :x => nil, :y => nil}
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should ignore whether or not the trailing input hash is wrapped in {}." do
|
43
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(:x, :y, {:a =>'a', :b => 'b'}).should == {:a => 'a', :b => 'b', :x => nil, :y => nil}
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should return a hash with the non-hash arguments mapped to key-value pairs with value specified by the input block (or null) and the input unchanged." do
|
47
|
+
Aquarium::Utils::MethodUtils.method_args_to_hash(:x, :y, :a =>'a', :b => 'b'){|a| a.to_s.capitalize}.should == {:a => 'a', :b => 'b', :x => 'X', :y => 'Y'}
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/../spec_example_classes'
|
3
|
+
require 'aquarium/utils/nil_object'
|
4
|
+
|
5
|
+
describe Aquarium::Utils::NilObject, " (when a message is sent to it)" do
|
6
|
+
it "should return itself, by default, for methods not defined for Object" do
|
7
|
+
nil_object = Aquarium::Utils::NilObject.new
|
8
|
+
%w[a b foo].each do |method_name|
|
9
|
+
nil_object.send(method_name.to_sym).should == nil_object
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should invoke Object's methods, when defined" do
|
14
|
+
nil_object = Aquarium::Utils::NilObject.new
|
15
|
+
%w[to_s inspect].each do |method_name|
|
16
|
+
nil_object.send(method_name.to_sym).include?("Aquarium::Utils::NilObject").should be_true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/../spec_example_classes'
|
3
|
+
require 'aquarium/utils/set_utils'
|
4
|
+
|
5
|
+
describe Aquarium::Utils::SetUtils, "make_set" do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
@empty_set = Set.new
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return an empty set if the input is empty." do
|
12
|
+
make_set().should == @empty_set
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should return an empty set if the input is an empty array." do
|
16
|
+
make_set([]).should == @empty_set
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return an empty set if the input is nil." do
|
20
|
+
make_set(nil).should == @empty_set
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return an empty set if the input set contains all nils." do
|
24
|
+
make_set([nil, nil]).should == @empty_set
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should return a set with all input nils removed." do
|
28
|
+
make_set([nil, 1, 2, nil, 3, 4]).should == Set.new([1, 2, 3, 4])
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should return a 1-element set with an empty element if the input is empty." do
|
32
|
+
make_set("").should == Set.new([""])
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return a 1-element set with an element that matched the input element." do
|
36
|
+
make_set("123").should == Set.new(["123"])
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should return an input set unchanged if it contains no nil elements." do
|
40
|
+
make_set([1,2,"123"]).should == Set.new([1,2,"123"])
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should accept a single argument." do
|
44
|
+
make_set(nil).should == @empty_set
|
45
|
+
make_set(1).should == Set.new([1])
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should accept a list of arguments." do
|
49
|
+
make_set(nil, nil).should == @empty_set
|
50
|
+
make_set(nil, 1, 2, nil, 3, 4).should == Set.new([1, 2, 3, 4])
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should accept an array" do
|
54
|
+
make_set([nil, 1, 2, nil, 3, 4]).should == Set.new([1, 2, 3, 4])
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should accept a set" do
|
58
|
+
make_set(Set.new([nil, 1, 2, nil, 3, 4])).should == Set.new([1, 2, 3, 4])
|
59
|
+
end
|
60
|
+
end
|
metadata
ADDED
@@ -0,0 +1,132 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.4
|
3
|
+
specification_version: 1
|
4
|
+
name: aquarium
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.1.0
|
7
|
+
date: 2007-08-23 00:00:00 -05:00
|
8
|
+
summary: Aquarium-0.1.0 (r7) - Aspect-Oriented Programming toolkit for Ruby http://aquarium.rubyforge.org
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: aquarium-devel@rubyforge.org
|
12
|
+
homepage: http://aquarium.rubyforge.org
|
13
|
+
rubyforge_project: aquarium
|
14
|
+
description: Aquarium is a full-featured Aspect-Oriented Programming (AOP) framework for Ruby that is designed to provide an intuitive syntax and support for large-scale, dynamic aspects.
|
15
|
+
autorequire: aquarium
|
16
|
+
default_executable: ""
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
29
|
+
authors:
|
30
|
+
- - Aquarium Development Team
|
31
|
+
files:
|
32
|
+
- CHANGES
|
33
|
+
- EXAMPLES.rd
|
34
|
+
- MIT-LICENSE
|
35
|
+
- Rakefile
|
36
|
+
- README
|
37
|
+
- RELEASE-PLAN
|
38
|
+
- UPGRADE
|
39
|
+
- lib/aquarium/aspects/advice.rb
|
40
|
+
- lib/aquarium/aspects/aspect.rb
|
41
|
+
- lib/aquarium/aspects/default_object_handler.rb
|
42
|
+
- lib/aquarium/aspects/dsl/aspect_dsl.rb
|
43
|
+
- lib/aquarium/aspects/dsl.rb
|
44
|
+
- lib/aquarium/aspects/join_point.rb
|
45
|
+
- lib/aquarium/aspects/pointcut.rb
|
46
|
+
- lib/aquarium/aspects/pointcut_composition.rb
|
47
|
+
- lib/aquarium/aspects.rb
|
48
|
+
- lib/aquarium/extensions/hash.rb
|
49
|
+
- lib/aquarium/extensions/regexp.rb
|
50
|
+
- lib/aquarium/extensions/set.rb
|
51
|
+
- lib/aquarium/extensions/string.rb
|
52
|
+
- lib/aquarium/extensions/symbol.rb
|
53
|
+
- lib/aquarium/extensions.rb
|
54
|
+
- lib/aquarium/extras/design_by_contract.rb
|
55
|
+
- lib/aquarium/extras.rb
|
56
|
+
- lib/aquarium/finders/finder_result.rb
|
57
|
+
- lib/aquarium/finders/method_finder.rb
|
58
|
+
- lib/aquarium/finders/object_finder.rb
|
59
|
+
- lib/aquarium/finders/type_finder.rb
|
60
|
+
- lib/aquarium/finders.rb
|
61
|
+
- lib/aquarium/utils/array_utils.rb
|
62
|
+
- lib/aquarium/utils/hash_utils.rb
|
63
|
+
- lib/aquarium/utils/html_escaper.rb
|
64
|
+
- lib/aquarium/utils/invalid_options.rb
|
65
|
+
- lib/aquarium/utils/method_utils.rb
|
66
|
+
- lib/aquarium/utils/nil_object.rb
|
67
|
+
- lib/aquarium/utils/set_utils.rb
|
68
|
+
- lib/aquarium/utils.rb
|
69
|
+
- lib/aquarium/version.rb
|
70
|
+
- lib/aquarium.rb
|
71
|
+
- spec/aquarium/aspects/advice_chain_node_spec.rb
|
72
|
+
- spec/aquarium/aspects/advice_spec.rb
|
73
|
+
- spec/aquarium/aspects/aspect_invocation_spec.rb
|
74
|
+
- spec/aquarium/aspects/aspect_spec.rb
|
75
|
+
- spec/aquarium/aspects/aspect_with_nested_types_spec.rb
|
76
|
+
- spec/aquarium/aspects/concurrent_aspects_spec.rb
|
77
|
+
- spec/aquarium/aspects/concurrent_aspects_with_objects_and_types_spec.rb
|
78
|
+
- spec/aquarium/aspects/concurrently_accessed.rb
|
79
|
+
- spec/aquarium/aspects/dsl/aspect_dsl_spec.rb
|
80
|
+
- spec/aquarium/aspects/join_point_spec.rb
|
81
|
+
- spec/aquarium/aspects/pointcut_and_composition_spec.rb
|
82
|
+
- spec/aquarium/aspects/pointcut_or_composition_spec.rb
|
83
|
+
- spec/aquarium/aspects/pointcut_spec.rb
|
84
|
+
- spec/aquarium/extensions/hash_spec.rb
|
85
|
+
- spec/aquarium/extensions/regex_spec.rb
|
86
|
+
- spec/aquarium/extensions/set_spec.rb
|
87
|
+
- spec/aquarium/extensions/string_spec.rb
|
88
|
+
- spec/aquarium/extensions/symbol_spec.rb
|
89
|
+
- spec/aquarium/extras/design_by_contract_spec.rb
|
90
|
+
- spec/aquarium/finders/finder_result_spec.rb
|
91
|
+
- spec/aquarium/finders/method_finder_spec.rb
|
92
|
+
- spec/aquarium/finders/method_sorting_spec.rb
|
93
|
+
- spec/aquarium/finders/object_finder_spec.rb
|
94
|
+
- spec/aquarium/finders/type_finder_spec.rb
|
95
|
+
- spec/aquarium/spec_example_classes.rb
|
96
|
+
- spec/aquarium/spec_helper.rb
|
97
|
+
- spec/aquarium/utils/array_utils_spec.rb
|
98
|
+
- spec/aquarium/utils/hash_utils_spec.rb
|
99
|
+
- spec/aquarium/utils/html_escaper_spec.rb
|
100
|
+
- spec/aquarium/utils/method_utils_spec.rb
|
101
|
+
- spec/aquarium/utils/nil_object_spec.rb
|
102
|
+
- spec/aquarium/utils/set_utils_spec.rb
|
103
|
+
- examples/aspect_design_example.rb
|
104
|
+
- examples/design_by_contract_example.rb
|
105
|
+
- examples/method_missing_example.rb
|
106
|
+
- examples/method_tracing_example.rb
|
107
|
+
- rake_tasks/examples.rake
|
108
|
+
- rake_tasks/examples_specdoc.rake
|
109
|
+
- rake_tasks/examples_with_rcov.rake
|
110
|
+
- rake_tasks/verify_rcov.rake
|
111
|
+
test_files: []
|
112
|
+
|
113
|
+
rdoc_options:
|
114
|
+
- --title
|
115
|
+
- Aquarium
|
116
|
+
- --line-numbers
|
117
|
+
- --inline-source
|
118
|
+
- --main
|
119
|
+
- README
|
120
|
+
extra_rdoc_files:
|
121
|
+
- README
|
122
|
+
- CHANGES
|
123
|
+
- MIT-LICENSE
|
124
|
+
- UPGRADE
|
125
|
+
executables: []
|
126
|
+
|
127
|
+
extensions: []
|
128
|
+
|
129
|
+
requirements: []
|
130
|
+
|
131
|
+
dependencies: []
|
132
|
+
|