aspect4r 0.9.0 → 0.9.1

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 (34) hide show
  1. data/README.rdoc +23 -4
  2. data/VERSION +1 -1
  3. data/aspect4r.gemspec +11 -9
  4. data/examples/advices_on_class_method_example.rb +2 -2
  5. data/examples/around_example.rb +2 -2
  6. data/examples/combined_example.rb +2 -2
  7. data/examples/test_advices_example.rb +3 -4
  8. data/lib/aspect4r/base.rb +25 -23
  9. data/lib/aspect4r/helper.rb +34 -17
  10. data/lib/aspect4r/model/advice.rb +29 -4
  11. data/lib/aspect4r/model/aspect_data.rb +14 -5
  12. data/lib/aspect4r/model/method_matcher.rb +43 -0
  13. data/spec/aspect4r/advice_on_class_method_spec.rb +4 -4
  14. data/spec/aspect4r/advice_test_spec.rb +9 -20
  15. data/spec/aspect4r/around_spec.rb +23 -24
  16. data/spec/aspect4r/before_spec.rb +1 -1
  17. data/spec/aspect4r/class_inheritance_spec.rb +40 -6
  18. data/spec/aspect4r/classic_spec.rb +2 -2
  19. data/spec/aspect4r/helper_spec.rb +2 -2
  20. data/spec/aspect4r/inheritance_inclusion_combined_spec.rb +4 -4
  21. data/spec/aspect4r/method_added_spec.rb +2 -2
  22. data/spec/aspect4r/{advice_group_spec.rb → model/advice_group_spec.rb} +1 -1
  23. data/spec/aspect4r/model/advice_spec.rb +52 -0
  24. data/spec/aspect4r/model/method_matcher_spec.rb +23 -0
  25. data/spec/aspect4r/module_inclusion_spec.rb +8 -8
  26. data/spec/aspect4r/regexp_methods_spec.rb +47 -0
  27. data/spec/aspect4r/singleton_method_added_spec.rb +2 -2
  28. data/spec/aspect4r_spec.rb +58 -22
  29. data/test/around_test.rb +2 -2
  30. data/test/combined_test.rb +2 -2
  31. metadata +13 -11
  32. data/lib/aspect4r/model/advices_for_method.rb +0 -26
  33. data/spec/aspect4r/advice_spec.rb +0 -62
  34. data/spec/aspect4r/advices_for_method_spec.rb +0 -17
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aspect4r
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 57
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 0
10
- version: 0.9.0
9
+ - 1
10
+ version: 0.9.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Guoliang Cao
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-29 00:00:00 -04:00
18
+ date: 2011-05-02 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -66,15 +66,12 @@ files:
66
66
  - lib/aspect4r/helper.rb
67
67
  - lib/aspect4r/model/advice.rb
68
68
  - lib/aspect4r/model/advice_metadata.rb
69
- - lib/aspect4r/model/advices_for_method.rb
70
69
  - lib/aspect4r/model/aspect_data.rb
70
+ - lib/aspect4r/model/method_matcher.rb
71
71
  - lib/aspect4r/return_this.rb
72
- - spec/aspect4r/advice_group_spec.rb
73
72
  - spec/aspect4r/advice_on_class_method_spec.rb
74
73
  - spec/aspect4r/advice_scope_spec.rb
75
- - spec/aspect4r/advice_spec.rb
76
74
  - spec/aspect4r/advice_test_spec.rb
77
- - spec/aspect4r/advices_for_method_spec.rb
78
75
  - spec/aspect4r/after_spec.rb
79
76
  - spec/aspect4r/around_spec.rb
80
77
  - spec/aspect4r/before_spec.rb
@@ -84,7 +81,11 @@ files:
84
81
  - spec/aspect4r/include_advices_from_module_spec.rb
85
82
  - spec/aspect4r/inheritance_inclusion_combined_spec.rb
86
83
  - spec/aspect4r/method_added_spec.rb
84
+ - spec/aspect4r/model/advice_group_spec.rb
85
+ - spec/aspect4r/model/advice_spec.rb
86
+ - spec/aspect4r/model/method_matcher_spec.rb
87
87
  - spec/aspect4r/module_inclusion_spec.rb
88
+ - spec/aspect4r/regexp_methods_spec.rb
88
89
  - spec/aspect4r/singleton_method_added_spec.rb
89
90
  - spec/aspect4r/super_in_method_spec.rb
90
91
  - spec/aspect4r_spec.rb
@@ -137,12 +138,9 @@ test_files:
137
138
  - examples/before_example.rb
138
139
  - examples/combined_example.rb
139
140
  - examples/test_advices_example.rb
140
- - spec/aspect4r/advice_group_spec.rb
141
141
  - spec/aspect4r/advice_on_class_method_spec.rb
142
142
  - spec/aspect4r/advice_scope_spec.rb
143
- - spec/aspect4r/advice_spec.rb
144
143
  - spec/aspect4r/advice_test_spec.rb
145
- - spec/aspect4r/advices_for_method_spec.rb
146
144
  - spec/aspect4r/after_spec.rb
147
145
  - spec/aspect4r/around_spec.rb
148
146
  - spec/aspect4r/before_spec.rb
@@ -152,7 +150,11 @@ test_files:
152
150
  - spec/aspect4r/include_advices_from_module_spec.rb
153
151
  - spec/aspect4r/inheritance_inclusion_combined_spec.rb
154
152
  - spec/aspect4r/method_added_spec.rb
153
+ - spec/aspect4r/model/advice_group_spec.rb
154
+ - spec/aspect4r/model/advice_spec.rb
155
+ - spec/aspect4r/model/method_matcher_spec.rb
155
156
  - spec/aspect4r/module_inclusion_spec.rb
157
+ - spec/aspect4r/regexp_methods_spec.rb
156
158
  - spec/aspect4r/singleton_method_added_spec.rb
157
159
  - spec/aspect4r/super_in_method_spec.rb
158
160
  - spec/aspect4r_spec.rb
@@ -1,26 +0,0 @@
1
- module Aspect4r
2
- module Model
3
- class AdvicesForMethod < Array
4
- attr_reader :method
5
- attr_accessor :wrapped_method
6
-
7
- def initialize method
8
- @method = method
9
- end
10
-
11
- def add new_advice
12
- self << new_advice unless include?(new_advice)
13
- end
14
-
15
- def include? new_advice
16
- detect { |advice| advice.name == new_advice.name }
17
- end
18
-
19
- def [] index
20
- return super unless index.is_a? String or index.is_a? Symbol
21
-
22
- detect {|advice| advice.name.to_sym == index.to_sym }
23
- end
24
- end
25
- end
26
- end
@@ -1,62 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
-
3
- describe Aspect4r::Model::Advice do
4
- it "before? returns true for before advice" do
5
- advice = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::BEFORE, :advice_method, :group
6
- advice.before?.should be_true
7
- end
8
-
9
- it "before_filter? returns false for before_filter advice" do
10
- advice = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::BEFORE, :advice_method, :group
11
- advice.before_filter?.should be_false
12
- end
13
-
14
- it "before? returns false for before advice" do
15
- advice = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::BEFORE, :advice_method, :group, :skip_if_false => true
16
- advice.before?.should be_false
17
- end
18
-
19
- it "before_filter? returns true for before_filter advice" do
20
- advice = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::BEFORE, :advice_method, :group, :skip_if_false => true
21
- advice.before_filter?.should be_true
22
- end
23
-
24
- it "invoke before advice" do
25
- advice = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::BEFORE, :advice_method, :group
26
-
27
- o = Object.new
28
- o.class.send :define_method, :advice_method do |*args|
29
- do_something *args
30
- end
31
-
32
- o.expects(:do_something).with(1)
33
-
34
- advice.invoke(o, 1)
35
- end
36
-
37
- it "invoke after advice" do
38
- advice = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::AFTER, :advice_method, :group
39
-
40
- o = Object.new
41
- o.class.send :define_method, :advice_method do |result, *args|
42
- do_something result, *args
43
- end
44
-
45
- o.expects(:do_something).with(1)
46
-
47
- advice.invoke(o, 1)
48
- end
49
-
50
- it "invoke around advice" do
51
- advice = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::AROUND, :advice_method, :group
52
-
53
- o = Object.new
54
- o.class.send :define_method, :advice_method do |proxy, *args|
55
- a4r_invoke proxy, *args
56
- end
57
-
58
- o.expects(:a4r_invoke).with(:proxy, 1)
59
-
60
- advice.invoke(o, :proxy, 1)
61
- end
62
- end
@@ -1,17 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
-
3
- describe Aspect4r::Model::AdvicesForMethod do
4
- it "should be able to get advice by name" do
5
- advices = Aspect4r::Model::AdvicesForMethod.new(:test)
6
- advice1 = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::BEFORE, :advice_method, :group, :name => :advice1
7
- advices.add advice1
8
- advices[:advice1].should == advice1
9
- end
10
-
11
- it "should be able to get advice by name String" do
12
- advices = Aspect4r::Model::AdvicesForMethod.new(:test)
13
- advice1 = Aspect4r::Model::Advice.new Aspect4r::Model::Advice::BEFORE, :advice_method, :group, :name => :advice1
14
- advices.add advice1
15
- advices['advice1'].should == advice1
16
- end
17
- end