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.
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
+