aquarium 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
|