aspect4r 0.9.0 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
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