aspector 0.9.1 → 0.10.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.
- data/.rvmrc +3 -3
- data/VERSION +1 -1
- data/aspector.gemspec +3 -3
- data/examples/cache_aspect.rb +6 -9
- data/examples/logging_aspect.rb +1 -1
- data/lib/aspector/base.rb +28 -59
- data/lib/aspector/base_class_methods.rb +6 -2
- data/spec/functional/aspector_spec.rb +0 -28
- data/spec/unit/after_spec.rb +2 -2
- data/spec/unit/around_spec.rb +2 -2
- data/spec/unit/before_spec.rb +2 -2
- metadata +161 -168
data/.rvmrc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.10.0
|
data/aspector.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "aspector"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.10.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Guoliang Cao"]
|
12
|
-
s.date = "2012-03-
|
12
|
+
s.date = "2012-03-19"
|
13
13
|
s.description = ""
|
14
14
|
s.email = "gcao99@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -74,7 +74,7 @@ Gem::Specification.new do |s|
|
|
74
74
|
s.homepage = "http://github.com/gcao/aspector"
|
75
75
|
s.licenses = ["MIT"]
|
76
76
|
s.require_paths = ["lib"]
|
77
|
-
s.rubygems_version = "1.8.
|
77
|
+
s.rubygems_version = "1.8.18"
|
78
78
|
s.summary = "Aspect Oriented Ruby Programming"
|
79
79
|
|
80
80
|
if s.respond_to? :specification_version then
|
data/examples/cache_aspect.rb
CHANGED
@@ -46,15 +46,12 @@ require 'aspector'
|
|
46
46
|
class CacheAspect < Aspector::Base
|
47
47
|
default :ttl => 60
|
48
48
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
SimpleCache.cache key, ttl do
|
56
|
-
proxy.call &block
|
57
|
-
end
|
49
|
+
around options[:method], :aspect_arg => true, :method_arg => true do |aspect, method, proxy, &block|
|
50
|
+
key = method
|
51
|
+
ttl = aspect.options[:ttl]
|
52
|
+
|
53
|
+
SimpleCache.cache key, ttl do
|
54
|
+
proxy.call &block
|
58
55
|
end
|
59
56
|
end
|
60
57
|
|
data/examples/logging_aspect.rb
CHANGED
@@ -16,7 +16,7 @@ class LoggingAspect < Aspector::Base
|
|
16
16
|
|
17
17
|
ALL_METHODS = /.*/
|
18
18
|
|
19
|
-
around ALL_METHODS, :except => :class, :
|
19
|
+
around ALL_METHODS, :except => :class, :method_arg => true do |method, proxy, *args, &block|
|
20
20
|
class_method = "#{self.class}.#{method}"
|
21
21
|
puts "Entering #{class_method}: #{args.join(',')}"
|
22
22
|
result = proxy.call *args, &block
|
data/lib/aspector/base.rb
CHANGED
@@ -30,6 +30,8 @@ module Aspector
|
|
30
30
|
class << self
|
31
31
|
def aop_disabled?; end
|
32
32
|
end
|
33
|
+
|
34
|
+
aop_disabled?
|
33
35
|
end
|
34
36
|
alias enable aop_enable
|
35
37
|
|
@@ -37,6 +39,8 @@ module Aspector
|
|
37
39
|
class << self
|
38
40
|
def aop_disabled?; true; end
|
39
41
|
end
|
42
|
+
|
43
|
+
aop_disabled?
|
40
44
|
end
|
41
45
|
alias disable aop_disable
|
42
46
|
|
@@ -44,6 +48,8 @@ module Aspector
|
|
44
48
|
class << self
|
45
49
|
remove_method :aop_disabled?
|
46
50
|
end
|
51
|
+
|
52
|
+
aop_disabled?
|
47
53
|
end
|
48
54
|
alias reset_disabled :aop_reset_disabled
|
49
55
|
|
@@ -51,21 +57,11 @@ module Aspector
|
|
51
57
|
end
|
52
58
|
|
53
59
|
def disabled?
|
54
|
-
aop_disabled
|
60
|
+
aop_disabled?
|
55
61
|
end
|
56
62
|
|
57
63
|
def aop_advices
|
58
|
-
|
59
|
-
|
60
|
-
if shared_advices and shared_advices.size > 0
|
61
|
-
if @aop_advices
|
62
|
-
@aop_advices + shared_advices
|
63
|
-
else
|
64
|
-
shared_advices
|
65
|
-
end
|
66
|
-
else
|
67
|
-
@aop_advices or []
|
68
|
-
end
|
64
|
+
self.class.aop_advices
|
69
65
|
end
|
70
66
|
alias :advices :aop_advices
|
71
67
|
|
@@ -152,30 +148,6 @@ module Aspector
|
|
152
148
|
def after_apply_to_method method, advices
|
153
149
|
end
|
154
150
|
|
155
|
-
def aop_before *methods, &block
|
156
|
-
@aop_advices ||= []
|
157
|
-
@aop_advices << self.class.send(:aop_create_advice, Aspector::AdviceMetadata::BEFORE, self, methods, &block)
|
158
|
-
end
|
159
|
-
alias :before :aop_before
|
160
|
-
|
161
|
-
def aop_before_filter *methods, &block
|
162
|
-
@aop_advices ||= []
|
163
|
-
@aop_advices << self.class.send(:aop_create_advice, Aspector::AdviceMetadata::BEFORE_FILTER, self, methods, &block)
|
164
|
-
end
|
165
|
-
alias :before_filter :aop_before_filter
|
166
|
-
|
167
|
-
def aop_after *methods, &block
|
168
|
-
@aop_advices ||= []
|
169
|
-
@aop_advices << self.class.send(:aop_create_advice, Aspector::AdviceMetadata::AFTER, self, methods, &block)
|
170
|
-
end
|
171
|
-
alias :after :aop_after
|
172
|
-
|
173
|
-
def aop_around *methods, &block
|
174
|
-
@aop_advices ||= []
|
175
|
-
@aop_advices << self.class.send(:aop_create_advice, Aspector::AdviceMetadata::AROUND, self, methods, &block)
|
176
|
-
end
|
177
|
-
alias :around :aop_around
|
178
|
-
|
179
151
|
private
|
180
152
|
|
181
153
|
def aop_deferred_logic_results logic
|
@@ -294,12 +266,11 @@ module Aspector
|
|
294
266
|
<% end %>
|
295
267
|
|
296
268
|
# Before advices
|
297
|
-
<% before_advices.each do |advice|
|
298
|
-
|
299
|
-
|
300
|
-
<%
|
301
|
-
|
302
|
-
<% end %>
|
269
|
+
<% before_advices.each do |advice| %>
|
270
|
+
result = <%= advice.with_method %> <%
|
271
|
+
if advice.options[:aspect_arg] %>aspect, <% end %><%
|
272
|
+
if advice.options[:method_arg] %>'<%= method %>', <% end
|
273
|
+
%>*args
|
303
274
|
|
304
275
|
<% if advice.options[:skip_if_false] %>
|
305
276
|
return unless result
|
@@ -309,13 +280,11 @@ module Aspector
|
|
309
280
|
|
310
281
|
<% if around_advice %>
|
311
282
|
# Around advice
|
312
|
-
|
313
|
-
|
314
|
-
<%
|
315
|
-
|
316
|
-
<%
|
317
|
-
else
|
318
|
-
%>
|
283
|
+
result = <%= around_advice.with_method %> <%
|
284
|
+
if around_advice.options[:aspect_arg] %>aspect, <% end %><%
|
285
|
+
if around_advice.options[:method_arg] %>'<%= method %>', <% end
|
286
|
+
%>wrapped_method.bind(self), *args, &block
|
287
|
+
<% else %>
|
319
288
|
# Invoke original method
|
320
289
|
result = orig_method.bind(self).call *args, &block
|
321
290
|
<% end %>
|
@@ -323,18 +292,18 @@ module Aspector
|
|
323
292
|
# After advices
|
324
293
|
<% unless after_advices.empty?
|
325
294
|
after_advices.each do |advice|
|
326
|
-
if advice.options[:
|
327
|
-
if advice.options[:result_arg]
|
328
|
-
%>
|
329
|
-
result = <%= advice.with_method %> '<%= method %>', result, *args
|
330
|
-
<% else %>
|
331
|
-
<%= advice.with_method %> '<%= method %>', *args
|
332
|
-
<% end
|
333
|
-
elsif advice.options[:result_arg]
|
295
|
+
if advice.options[:result_arg]
|
334
296
|
%>
|
335
|
-
result = <%= advice.with_method %>
|
297
|
+
result = <%= advice.with_method %> <%
|
298
|
+
if advice.options[:aspect_arg] %>aspect, <% end %><%
|
299
|
+
if advice.options[:method_arg] %>'<%= method %>', <% end %><%
|
300
|
+
if advice.options[:result_arg] %>result, <% end
|
301
|
+
%>*args
|
336
302
|
<% else %>
|
337
|
-
<%= advice.with_method %>
|
303
|
+
<%= advice.with_method %> <%
|
304
|
+
if advice.options[:aspect_arg] %>aspect, <% end %><%
|
305
|
+
if advice.options[:method_arg] %>'<%= method %>', <% end
|
306
|
+
%>*args
|
338
307
|
<% end
|
339
308
|
end
|
340
309
|
%>
|
@@ -4,15 +4,19 @@ module Aspector
|
|
4
4
|
::Aspector::Base.extend(self)
|
5
5
|
|
6
6
|
def aop_enable
|
7
|
-
|
7
|
+
send :define_method, :aop_disabled? do
|
8
8
|
end
|
9
|
+
|
10
|
+
nil
|
9
11
|
end
|
10
12
|
alias :enable :aop_enable
|
11
13
|
|
12
14
|
def aop_disable
|
13
|
-
|
15
|
+
send :define_method, :aop_disabled? do
|
14
16
|
true
|
15
17
|
end
|
18
|
+
|
19
|
+
nil
|
16
20
|
end
|
17
21
|
alias :disable :aop_disable
|
18
22
|
|
@@ -25,34 +25,6 @@ describe "Aspector" do
|
|
25
25
|
obj.value.should == %w"do_before do_around_before test do_around_after do_after"
|
26
26
|
end
|
27
27
|
|
28
|
-
it "advices defined in after_initialization" do
|
29
|
-
klass = create_test_class
|
30
|
-
|
31
|
-
aspector(klass) do
|
32
|
-
def after_initialize
|
33
|
-
name = 'this'
|
34
|
-
|
35
|
-
before(:test) { value << "do_before(#{name})" }
|
36
|
-
|
37
|
-
after(:test) do |result|
|
38
|
-
value << "do_after(#{name})"
|
39
|
-
result
|
40
|
-
end
|
41
|
-
|
42
|
-
around(:test) do |proxy, &block|
|
43
|
-
value << "do_around_before(#{name})"
|
44
|
-
result = proxy.call &block
|
45
|
-
value << "do_around_after(#{name})"
|
46
|
-
result
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
obj = klass.new
|
52
|
-
obj.test
|
53
|
-
obj.value.should == %w"do_before(this) do_around_before(this) test do_around_after(this) do_after(this)"
|
54
|
-
end
|
55
|
-
|
56
28
|
it "multiple aspects should work together" do
|
57
29
|
klass = create_test_class
|
58
30
|
aspector(klass) do
|
data/spec/unit/after_spec.rb
CHANGED
@@ -18,7 +18,7 @@ describe "After advices" do
|
|
18
18
|
obj.value.should == %w"test do_this"
|
19
19
|
end
|
20
20
|
|
21
|
-
it "
|
21
|
+
it "method_arg" do
|
22
22
|
klass = create_test_class do
|
23
23
|
def do_this method, result
|
24
24
|
value << "do_this(#{method})"
|
@@ -27,7 +27,7 @@ describe "After advices" do
|
|
27
27
|
end
|
28
28
|
|
29
29
|
aspector(klass) do
|
30
|
-
after :test, :do_this, :
|
30
|
+
after :test, :do_this, :method_arg => true
|
31
31
|
end
|
32
32
|
|
33
33
|
obj = klass.new
|
data/spec/unit/around_spec.rb
CHANGED
@@ -37,7 +37,7 @@ describe "Around advices" do
|
|
37
37
|
obj.value.should == %w"before test after"
|
38
38
|
end
|
39
39
|
|
40
|
-
it "
|
40
|
+
it "method_arg" do
|
41
41
|
klass = create_test_class do
|
42
42
|
def do_this method, proxy, &block
|
43
43
|
value << "before(#{method})"
|
@@ -48,7 +48,7 @@ describe "Around advices" do
|
|
48
48
|
end
|
49
49
|
|
50
50
|
aspector(klass) do
|
51
|
-
around :test, :do_this, :
|
51
|
+
around :test, :do_this, :method_arg => true
|
52
52
|
end
|
53
53
|
|
54
54
|
obj = klass.new
|
data/spec/unit/before_spec.rb
CHANGED
@@ -53,10 +53,10 @@ describe "Before advices" do
|
|
53
53
|
obj.value.should == %w"do_this test"
|
54
54
|
end
|
55
55
|
|
56
|
-
it "
|
56
|
+
it "method_arg" do
|
57
57
|
klass = Class.new do
|
58
58
|
aspector do
|
59
|
-
before :test, :do_this, :
|
59
|
+
before :test, :do_this, :method_arg => true
|
60
60
|
end
|
61
61
|
|
62
62
|
def value
|
metadata
CHANGED
@@ -1,201 +1,200 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: aspector
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.10.0
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 1
|
10
|
-
version: 0.9.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Guoliang Cao
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
22
|
-
none: false
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
hash: 3
|
27
|
-
segments:
|
28
|
-
- 0
|
29
|
-
version: "0"
|
30
|
-
version_requirements: *id001
|
12
|
+
date: 2012-03-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
31
15
|
name: rspec
|
32
|
-
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
33
22
|
type: :development
|
34
|
-
|
35
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
36
25
|
none: false
|
37
|
-
requirements:
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: jeweler
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
38
35
|
- - ~>
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
hash: 7
|
41
|
-
segments:
|
42
|
-
- 1
|
43
|
-
- 6
|
44
|
-
- 4
|
36
|
+
- !ruby/object:Gem::Version
|
45
37
|
version: 1.6.4
|
46
|
-
version_requirements: *id002
|
47
|
-
name: jeweler
|
48
|
-
prerelease: false
|
49
38
|
type: :development
|
50
|
-
|
51
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
41
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
|
58
|
-
- 0
|
59
|
-
version: "0"
|
60
|
-
version_requirements: *id003
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.6.4
|
46
|
+
- !ruby/object:Gem::Dependency
|
61
47
|
name: ruby-prof
|
62
|
-
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
63
54
|
type: :development
|
64
|
-
|
65
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: guard
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
66
65
|
none: false
|
67
|
-
requirements:
|
66
|
+
requirements:
|
68
67
|
- - ~>
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
hash: 55
|
71
|
-
segments:
|
72
|
-
- 0
|
73
|
-
- 8
|
74
|
-
- 4
|
68
|
+
- !ruby/object:Gem::Version
|
75
69
|
version: 0.8.4
|
76
|
-
version_requirements: *id004
|
77
|
-
name: guard
|
78
|
-
prerelease: false
|
79
70
|
type: :development
|
80
|
-
|
81
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
73
|
none: false
|
83
|
-
requirements:
|
74
|
+
requirements:
|
84
75
|
- - ~>
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
|
87
|
-
|
88
|
-
- 0
|
89
|
-
- 1
|
90
|
-
- 3
|
91
|
-
version: 0.1.3
|
92
|
-
version_requirements: *id005
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.8.4
|
78
|
+
- !ruby/object:Gem::Dependency
|
93
79
|
name: guard-bundler
|
94
|
-
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 0.1.3
|
95
86
|
type: :development
|
96
|
-
|
97
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
89
|
none: false
|
99
|
-
requirements:
|
90
|
+
requirements:
|
100
91
|
- - ~>
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
|
104
|
-
- 0
|
105
|
-
- 5
|
106
|
-
- 2
|
107
|
-
version: 0.5.2
|
108
|
-
version_requirements: *id006
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 0.1.3
|
94
|
+
- !ruby/object:Gem::Dependency
|
109
95
|
name: guard-rspec
|
110
|
-
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 0.5.2
|
111
102
|
type: :development
|
112
|
-
|
113
|
-
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
105
|
none: false
|
115
|
-
requirements:
|
106
|
+
requirements:
|
116
107
|
- - ~>
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
|
119
|
-
|
120
|
-
- 0
|
121
|
-
- 1
|
122
|
-
- 1
|
123
|
-
version: 0.1.1
|
124
|
-
version_requirements: *id007
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 0.5.2
|
110
|
+
- !ruby/object:Gem::Dependency
|
125
111
|
name: guard-shell
|
126
|
-
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.1.1
|
127
118
|
type: :development
|
128
|
-
|
129
|
-
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
130
121
|
none: false
|
131
|
-
requirements:
|
122
|
+
requirements:
|
132
123
|
- - ~>
|
133
|
-
- !ruby/object:Gem::Version
|
134
|
-
|
135
|
-
|
136
|
-
- 0
|
137
|
-
- 4
|
138
|
-
- 3
|
139
|
-
- 1
|
140
|
-
version: 0.4.3.1
|
141
|
-
version_requirements: *id008
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 0.1.1
|
126
|
+
- !ruby/object:Gem::Dependency
|
142
127
|
name: rb-fsevent
|
143
|
-
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 0.4.3.1
|
144
134
|
type: :development
|
145
|
-
|
146
|
-
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
147
137
|
none: false
|
148
|
-
requirements:
|
138
|
+
requirements:
|
149
139
|
- - ~>
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
|
152
|
-
|
153
|
-
- 1
|
154
|
-
- 0
|
155
|
-
- 3
|
156
|
-
version: 1.0.3
|
157
|
-
version_requirements: *id009
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 0.4.3.1
|
142
|
+
- !ruby/object:Gem::Dependency
|
158
143
|
name: growl
|
159
|
-
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 1.0.3
|
160
150
|
type: :development
|
161
|
-
|
162
|
-
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
153
|
none: false
|
164
|
-
requirements:
|
165
|
-
- -
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
|
168
|
-
|
169
|
-
- 0
|
170
|
-
version: "0"
|
171
|
-
version_requirements: *id010
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 1.0.3
|
158
|
+
- !ruby/object:Gem::Dependency
|
172
159
|
name: awesome_print
|
173
|
-
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '0'
|
174
166
|
type: :development
|
175
|
-
|
176
|
-
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
169
|
none: false
|
178
|
-
requirements:
|
179
|
-
- -
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
|
182
|
-
|
183
|
-
- 0
|
184
|
-
version: "0"
|
185
|
-
version_requirements: *id011
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
- !ruby/object:Gem::Dependency
|
186
175
|
name: pry
|
187
|
-
|
176
|
+
requirement: !ruby/object:Gem::Requirement
|
177
|
+
none: false
|
178
|
+
requirements:
|
179
|
+
- - ! '>='
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '0'
|
188
182
|
type: :development
|
189
|
-
|
183
|
+
prerelease: false
|
184
|
+
version_requirements: !ruby/object:Gem::Requirement
|
185
|
+
none: false
|
186
|
+
requirements:
|
187
|
+
- - ! '>='
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: '0'
|
190
|
+
description: ''
|
190
191
|
email: gcao99@gmail.com
|
191
192
|
executables: []
|
192
|
-
|
193
193
|
extensions: []
|
194
|
-
|
195
|
-
extra_rdoc_files:
|
194
|
+
extra_rdoc_files:
|
196
195
|
- LICENSE.txt
|
197
196
|
- README.rdoc
|
198
|
-
files:
|
197
|
+
files:
|
199
198
|
- .document
|
200
199
|
- .irbrc
|
201
200
|
- .rspec
|
@@ -250,37 +249,31 @@ files:
|
|
250
249
|
- spec/unit/deferred_logic_spec.rb
|
251
250
|
- spec/unit/method_matcher_spec.rb
|
252
251
|
homepage: http://github.com/gcao/aspector
|
253
|
-
licenses:
|
252
|
+
licenses:
|
254
253
|
- MIT
|
255
254
|
post_install_message:
|
256
255
|
rdoc_options: []
|
257
|
-
|
258
|
-
require_paths:
|
256
|
+
require_paths:
|
259
257
|
- lib
|
260
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
258
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
261
259
|
none: false
|
262
|
-
requirements:
|
263
|
-
- -
|
264
|
-
- !ruby/object:Gem::Version
|
265
|
-
|
266
|
-
segments:
|
260
|
+
requirements:
|
261
|
+
- - ! '>='
|
262
|
+
- !ruby/object:Gem::Version
|
263
|
+
version: '0'
|
264
|
+
segments:
|
267
265
|
- 0
|
268
|
-
|
269
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
266
|
+
hash: -2602659987837807092
|
267
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
270
268
|
none: false
|
271
|
-
requirements:
|
272
|
-
- -
|
273
|
-
- !ruby/object:Gem::Version
|
274
|
-
|
275
|
-
segments:
|
276
|
-
- 0
|
277
|
-
version: "0"
|
269
|
+
requirements:
|
270
|
+
- - ! '>='
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: '0'
|
278
273
|
requirements: []
|
279
|
-
|
280
274
|
rubyforge_project:
|
281
|
-
rubygems_version: 1.8.
|
275
|
+
rubygems_version: 1.8.18
|
282
276
|
signing_key:
|
283
277
|
specification_version: 3
|
284
278
|
summary: Aspect Oriented Ruby Programming
|
285
279
|
test_files: []
|
286
|
-
|