aquarium 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/CHANGES +4 -0
  2. data/EXAMPLES.rd +4 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +250 -0
  5. data/RELEASE-PLAN +1 -0
  6. data/Rakefile +236 -0
  7. data/UPGRADE +3 -0
  8. data/examples/aspect_design_example.rb +36 -0
  9. data/examples/design_by_contract_example.rb +88 -0
  10. data/examples/method_missing_example.rb +44 -0
  11. data/examples/method_tracing_example.rb +64 -0
  12. data/lib/aquarium.rb +7 -0
  13. data/lib/aquarium/aspects.rb +6 -0
  14. data/lib/aquarium/aspects/advice.rb +189 -0
  15. data/lib/aquarium/aspects/aspect.rb +577 -0
  16. data/lib/aquarium/aspects/default_object_handler.rb +27 -0
  17. data/lib/aquarium/aspects/dsl.rb +1 -0
  18. data/lib/aquarium/aspects/dsl/aspect_dsl.rb +61 -0
  19. data/lib/aquarium/aspects/join_point.rb +158 -0
  20. data/lib/aquarium/aspects/pointcut.rb +254 -0
  21. data/lib/aquarium/aspects/pointcut_composition.rb +36 -0
  22. data/lib/aquarium/extensions.rb +5 -0
  23. data/lib/aquarium/extensions/hash.rb +85 -0
  24. data/lib/aquarium/extensions/regexp.rb +20 -0
  25. data/lib/aquarium/extensions/set.rb +49 -0
  26. data/lib/aquarium/extensions/string.rb +13 -0
  27. data/lib/aquarium/extensions/symbol.rb +22 -0
  28. data/lib/aquarium/extras.rb +4 -0
  29. data/lib/aquarium/extras/design_by_contract.rb +64 -0
  30. data/lib/aquarium/finders.rb +4 -0
  31. data/lib/aquarium/finders/finder_result.rb +121 -0
  32. data/lib/aquarium/finders/method_finder.rb +228 -0
  33. data/lib/aquarium/finders/object_finder.rb +74 -0
  34. data/lib/aquarium/finders/type_finder.rb +127 -0
  35. data/lib/aquarium/utils.rb +9 -0
  36. data/lib/aquarium/utils/array_utils.rb +29 -0
  37. data/lib/aquarium/utils/hash_utils.rb +28 -0
  38. data/lib/aquarium/utils/html_escaper.rb +17 -0
  39. data/lib/aquarium/utils/invalid_options.rb +9 -0
  40. data/lib/aquarium/utils/method_utils.rb +18 -0
  41. data/lib/aquarium/utils/nil_object.rb +13 -0
  42. data/lib/aquarium/utils/set_utils.rb +32 -0
  43. data/lib/aquarium/version.rb +30 -0
  44. data/rake_tasks/examples.rake +7 -0
  45. data/rake_tasks/examples_specdoc.rake +8 -0
  46. data/rake_tasks/examples_with_rcov.rake +8 -0
  47. data/rake_tasks/verify_rcov.rake +7 -0
  48. data/spec/aquarium/aspects/advice_chain_node_spec.rb +34 -0
  49. data/spec/aquarium/aspects/advice_spec.rb +103 -0
  50. data/spec/aquarium/aspects/aspect_invocation_spec.rb +111 -0
  51. data/spec/aquarium/aspects/aspect_spec.rb +978 -0
  52. data/spec/aquarium/aspects/aspect_with_nested_types_spec.rb +129 -0
  53. data/spec/aquarium/aspects/concurrent_aspects_spec.rb +423 -0
  54. data/spec/aquarium/aspects/concurrent_aspects_with_objects_and_types_spec.rb +103 -0
  55. data/spec/aquarium/aspects/concurrently_accessed.rb +21 -0
  56. data/spec/aquarium/aspects/dsl/aspect_dsl_spec.rb +514 -0
  57. data/spec/aquarium/aspects/join_point_spec.rb +302 -0
  58. data/spec/aquarium/aspects/pointcut_and_composition_spec.rb +131 -0
  59. data/spec/aquarium/aspects/pointcut_or_composition_spec.rb +111 -0
  60. data/spec/aquarium/aspects/pointcut_spec.rb +800 -0
  61. data/spec/aquarium/extensions/hash_spec.rb +187 -0
  62. data/spec/aquarium/extensions/regex_spec.rb +40 -0
  63. data/spec/aquarium/extensions/set_spec.rb +105 -0
  64. data/spec/aquarium/extensions/string_spec.rb +25 -0
  65. data/spec/aquarium/extensions/symbol_spec.rb +37 -0
  66. data/spec/aquarium/extras/design_by_contract_spec.rb +68 -0
  67. data/spec/aquarium/finders/finder_result_spec.rb +359 -0
  68. data/spec/aquarium/finders/method_finder_spec.rb +878 -0
  69. data/spec/aquarium/finders/method_sorting_spec.rb +16 -0
  70. data/spec/aquarium/finders/object_finder_spec.rb +230 -0
  71. data/spec/aquarium/finders/type_finder_spec.rb +210 -0
  72. data/spec/aquarium/spec_example_classes.rb +117 -0
  73. data/spec/aquarium/spec_helper.rb +3 -0
  74. data/spec/aquarium/utils/array_utils_spec.rb +47 -0
  75. data/spec/aquarium/utils/hash_utils_spec.rb +48 -0
  76. data/spec/aquarium/utils/html_escaper_spec.rb +18 -0
  77. data/spec/aquarium/utils/method_utils_spec.rb +50 -0
  78. data/spec/aquarium/utils/nil_object_spec.rb +19 -0
  79. data/spec/aquarium/utils/set_utils_spec.rb +60 -0
  80. 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,3 @@
1
+ $LOAD_PATH.unshift File.dirname(__FILE__) + '/../../lib'
2
+ require 'rubygems'
3
+ require 'spec'
@@ -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 &lt; and > with &gt;" do
7
+ Aquarium::Utils::HtmlEscaper.escape("<html></html>").should == "&lt;html&gt;&lt;/html&gt;"
8
+ end
9
+ end
10
+
11
+ describe Aquarium::Utils::HtmlEscaper, "#escape" do
12
+ it "should replace < with &lt; and > with &gt;" do
13
+ class Escaper
14
+ include Aquarium::Utils::HtmlEscaper
15
+ end
16
+ Escaper.new.escape("<html></html>").should == "&lt;html&gt;&lt;/html&gt;"
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
+