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.
- data/README.rdoc +23 -4
- data/VERSION +1 -1
- data/aspect4r.gemspec +11 -9
- data/examples/advices_on_class_method_example.rb +2 -2
- data/examples/around_example.rb +2 -2
- data/examples/combined_example.rb +2 -2
- data/examples/test_advices_example.rb +3 -4
- data/lib/aspect4r/base.rb +25 -23
- data/lib/aspect4r/helper.rb +34 -17
- data/lib/aspect4r/model/advice.rb +29 -4
- data/lib/aspect4r/model/aspect_data.rb +14 -5
- data/lib/aspect4r/model/method_matcher.rb +43 -0
- data/spec/aspect4r/advice_on_class_method_spec.rb +4 -4
- data/spec/aspect4r/advice_test_spec.rb +9 -20
- data/spec/aspect4r/around_spec.rb +23 -24
- data/spec/aspect4r/before_spec.rb +1 -1
- data/spec/aspect4r/class_inheritance_spec.rb +40 -6
- data/spec/aspect4r/classic_spec.rb +2 -2
- data/spec/aspect4r/helper_spec.rb +2 -2
- data/spec/aspect4r/inheritance_inclusion_combined_spec.rb +4 -4
- data/spec/aspect4r/method_added_spec.rb +2 -2
- data/spec/aspect4r/{advice_group_spec.rb → model/advice_group_spec.rb} +1 -1
- data/spec/aspect4r/model/advice_spec.rb +52 -0
- data/spec/aspect4r/model/method_matcher_spec.rb +23 -0
- data/spec/aspect4r/module_inclusion_spec.rb +8 -8
- data/spec/aspect4r/regexp_methods_spec.rb +47 -0
- data/spec/aspect4r/singleton_method_added_spec.rb +2 -2
- data/spec/aspect4r_spec.rb +58 -22
- data/test/around_test.rb +2 -2
- data/test/combined_test.rb +2 -2
- metadata +13 -11
- data/lib/aspect4r/model/advices_for_method.rb +0 -26
- data/spec/aspect4r/advice_spec.rb +0 -62
- 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:
|
4
|
+
hash: 57
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 9
|
9
|
-
-
|
10
|
-
version: 0.9.
|
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-
|
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
|