aspector 0.13.0 → 0.13.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/.rvmrc CHANGED
@@ -1,6 +1,6 @@
1
1
  rvm_gemset_create_on_use_flag=1
2
2
 
3
- if [ "$RUBY_VERSION" == "1.8" ]; then
3
+ if [ "$RUBY_VERSION" '==' "1.8" ]; then
4
4
  rvm use 1.8.7@aspector
5
5
  else
6
6
  rvm use 1.9.3@aspector
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.13.0
1
+ 0.13.1
data/aspector.gemspec CHANGED
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = "aspector"
8
- s.version = "0.13.0"
7
+ s.name = %q{aspector}
8
+ s.version = "0.13.1"
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 = "2013-01-04"
13
- s.description = ""
14
- s.email = "gcao99@gmail.com"
12
+ s.date = %q{2013-01-23}
13
+ s.description = %q{}
14
+ s.email = %q{gcao99@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.rdoc"
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
37
37
  "examples/cache_aspect.rb",
38
38
  "examples/design_by_contract.rb",
39
39
  "examples/exception_handler.rb",
40
+ "examples/exception_handler2.rb",
40
41
  "examples/implicit_method_option_test.rb",
41
42
  "examples/logging_aspect.rb",
42
43
  "examples/retry_aspect.rb",
@@ -80,11 +81,11 @@ Gem::Specification.new do |s|
80
81
  "spec/unit/raw_spec.rb",
81
82
  "spec/unit/special_chars_spec.rb"
82
83
  ]
83
- s.homepage = "http://github.com/gcao/aspector"
84
+ s.homepage = %q{http://github.com/gcao/aspector}
84
85
  s.licenses = ["MIT"]
85
86
  s.require_paths = ["lib"]
86
- s.rubygems_version = "1.8.24"
87
- s.summary = "Aspect Oriented Ruby Programming"
87
+ s.rubygems_version = %q{1.6.2}
88
+ s.summary = %q{Aspect Oriented Ruby Programming}
88
89
 
89
90
  if s.respond_to? :specification_version then
90
91
  s.specification_version = 3
@@ -0,0 +1,45 @@
1
+ class A
2
+
3
+ def self.test input
4
+ puts input.upcase
5
+ end
6
+
7
+ def test input
8
+ puts input.upcase
9
+ end
10
+
11
+ end
12
+
13
+ ##############################
14
+
15
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
16
+
17
+ require 'aspector'
18
+
19
+ class ExceptionHandler < Aspector::Base
20
+
21
+ target do
22
+ def handle_exception proxy, *args, &block
23
+ proxy.call *args, &block
24
+ rescue => e
25
+ puts "Rescued: #{e}"
26
+ end
27
+ end
28
+
29
+ around :handle_exception
30
+
31
+ end
32
+
33
+ ##############################
34
+
35
+ ExceptionHandler.apply A, :method => "test", :class_methods => true
36
+
37
+ A.test 'good'
38
+ A.test nil
39
+
40
+ ExceptionHandler.apply A, :method => "test"
41
+
42
+ a = A.new
43
+ a.test 'good'
44
+ a.test nil
45
+
data/lib/aspector/base.rb CHANGED
@@ -36,6 +36,7 @@ module Aspector
36
36
  end
37
37
 
38
38
  def apply
39
+ include_extension_module
39
40
  invoke_deferred_logics
40
41
  define_methods_for_advice_blocks
41
42
  add_to_instances unless @options[:old_methods_only]
@@ -96,6 +97,12 @@ module Aspector
96
97
 
97
98
  private
98
99
 
100
+ def include_extension_module
101
+ if self.class.const_defined?(:ToBeIncluded)
102
+ context.send(:include, self.class.const_get(:ToBeIncluded))
103
+ end
104
+ end
105
+
99
106
  def deferred_logic_results logic
100
107
  @deferred_logic_results[logic]
101
108
  end
metadata CHANGED
@@ -1,200 +1,199 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: aspector
3
- version: !ruby/object:Gem::Version
4
- version: 0.13.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 41
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 13
9
+ - 1
10
+ version: 0.13.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Guoliang Cao
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2013-01-04 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rspec
16
- requirement: !ruby/object:Gem::Requirement
17
+
18
+ date: 2013-01-23 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ requirement: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ hash: 3
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ version_requirements: *id001
22
32
  type: :development
33
+ name: rspec
23
34
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
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
35
+ - !ruby/object:Gem::Dependency
36
+ requirement: &id002 !ruby/object:Gem::Requirement
33
37
  none: false
34
- requirements:
38
+ requirements:
35
39
  - - ~>
36
- - !ruby/object:Gem::Version
40
+ - !ruby/object:Gem::Version
41
+ hash: 7
42
+ segments:
43
+ - 1
44
+ - 6
45
+ - 4
37
46
  version: 1.6.4
47
+ version_requirements: *id002
38
48
  type: :development
49
+ name: jeweler
39
50
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 1.6.4
46
- - !ruby/object:Gem::Dependency
47
- name: ruby-prof
48
- requirement: !ruby/object:Gem::Requirement
51
+ - !ruby/object:Gem::Dependency
52
+ requirement: &id003 !ruby/object:Gem::Requirement
49
53
  none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ version_requirements: *id003
54
62
  type: :development
63
+ name: ruby-prof
55
64
  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
65
+ - !ruby/object:Gem::Dependency
66
+ requirement: &id004 !ruby/object:Gem::Requirement
65
67
  none: false
66
- requirements:
68
+ requirements:
67
69
  - - ~>
68
- - !ruby/object:Gem::Version
70
+ - !ruby/object:Gem::Version
71
+ hash: 55
72
+ segments:
73
+ - 0
74
+ - 8
75
+ - 4
69
76
  version: 0.8.4
77
+ version_requirements: *id004
70
78
  type: :development
79
+ name: guard
71
80
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 0.8.4
78
- - !ruby/object:Gem::Dependency
79
- name: guard-bundler
80
- requirement: !ruby/object:Gem::Requirement
81
+ - !ruby/object:Gem::Dependency
82
+ requirement: &id005 !ruby/object:Gem::Requirement
81
83
  none: false
82
- requirements:
84
+ requirements:
83
85
  - - ~>
84
- - !ruby/object:Gem::Version
86
+ - !ruby/object:Gem::Version
87
+ hash: 29
88
+ segments:
89
+ - 0
90
+ - 1
91
+ - 3
85
92
  version: 0.1.3
93
+ version_requirements: *id005
86
94
  type: :development
95
+ name: guard-bundler
87
96
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: &id006 !ruby/object:Gem::Requirement
89
99
  none: false
90
- requirements:
100
+ requirements:
91
101
  - - ~>
92
- - !ruby/object:Gem::Version
93
- version: 0.1.3
94
- - !ruby/object:Gem::Dependency
95
- name: guard-rspec
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ~>
100
- - !ruby/object:Gem::Version
102
+ - !ruby/object:Gem::Version
103
+ hash: 15
104
+ segments:
105
+ - 0
106
+ - 5
107
+ - 2
101
108
  version: 0.5.2
109
+ version_requirements: *id006
102
110
  type: :development
111
+ name: guard-rspec
103
112
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
113
+ - !ruby/object:Gem::Dependency
114
+ requirement: &id007 !ruby/object:Gem::Requirement
105
115
  none: false
106
- requirements:
116
+ requirements:
107
117
  - - ~>
108
- - !ruby/object:Gem::Version
109
- version: 0.5.2
110
- - !ruby/object:Gem::Dependency
111
- name: guard-shell
112
- requirement: !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ~>
116
- - !ruby/object:Gem::Version
118
+ - !ruby/object:Gem::Version
119
+ hash: 25
120
+ segments:
121
+ - 0
122
+ - 1
123
+ - 1
117
124
  version: 0.1.1
125
+ version_requirements: *id007
118
126
  type: :development
127
+ name: guard-shell
119
128
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ~>
124
- - !ruby/object:Gem::Version
125
- version: 0.1.1
126
- - !ruby/object:Gem::Dependency
127
- name: rb-fsevent
128
- requirement: !ruby/object:Gem::Requirement
129
+ - !ruby/object:Gem::Dependency
130
+ requirement: &id008 !ruby/object:Gem::Requirement
129
131
  none: false
130
- requirements:
131
- - - ! '>='
132
- - !ruby/object:Gem::Version
133
- version: '0'
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ hash: 3
136
+ segments:
137
+ - 0
138
+ version: "0"
139
+ version_requirements: *id008
134
140
  type: :development
141
+ name: rb-fsevent
135
142
  prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
- requirements:
139
- - - ! '>='
140
- - !ruby/object:Gem::Version
141
- version: '0'
142
- - !ruby/object:Gem::Dependency
143
- name: growl
144
- requirement: !ruby/object:Gem::Requirement
143
+ - !ruby/object:Gem::Dependency
144
+ requirement: &id009 !ruby/object:Gem::Requirement
145
145
  none: false
146
- requirements:
146
+ requirements:
147
147
  - - ~>
148
- - !ruby/object:Gem::Version
148
+ - !ruby/object:Gem::Version
149
+ hash: 17
150
+ segments:
151
+ - 1
152
+ - 0
153
+ - 3
149
154
  version: 1.0.3
155
+ version_requirements: *id009
150
156
  type: :development
157
+ name: growl
151
158
  prerelease: false
152
- version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
- requirements:
155
- - - ~>
156
- - !ruby/object:Gem::Version
157
- version: 1.0.3
158
- - !ruby/object:Gem::Dependency
159
- name: awesome_print
160
- requirement: !ruby/object:Gem::Requirement
159
+ - !ruby/object:Gem::Dependency
160
+ requirement: &id010 !ruby/object:Gem::Requirement
161
161
  none: false
162
- requirements:
163
- - - ! '>='
164
- - !ruby/object:Gem::Version
165
- version: '0'
162
+ requirements:
163
+ - - ">="
164
+ - !ruby/object:Gem::Version
165
+ hash: 3
166
+ segments:
167
+ - 0
168
+ version: "0"
169
+ version_requirements: *id010
166
170
  type: :development
171
+ name: awesome_print
167
172
  prerelease: false
168
- version_requirements: !ruby/object:Gem::Requirement
173
+ - !ruby/object:Gem::Dependency
174
+ requirement: &id011 !ruby/object:Gem::Requirement
169
175
  none: false
170
- requirements:
171
- - - ! '>='
172
- - !ruby/object:Gem::Version
173
- version: '0'
174
- - !ruby/object:Gem::Dependency
175
- name: pry
176
- requirement: !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ! '>='
180
- - !ruby/object:Gem::Version
181
- version: '0'
176
+ requirements:
177
+ - - ">="
178
+ - !ruby/object:Gem::Version
179
+ hash: 3
180
+ segments:
181
+ - 0
182
+ version: "0"
183
+ version_requirements: *id011
182
184
  type: :development
185
+ name: pry
183
186
  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: ''
187
+ description: ""
191
188
  email: gcao99@gmail.com
192
189
  executables: []
190
+
193
191
  extensions: []
194
- extra_rdoc_files:
192
+
193
+ extra_rdoc_files:
195
194
  - LICENSE.txt
196
195
  - README.rdoc
197
- files:
196
+ files:
198
197
  - .document
199
198
  - .irbrc
200
199
  - .rspec
@@ -215,6 +214,7 @@ files:
215
214
  - examples/cache_aspect.rb
216
215
  - examples/design_by_contract.rb
217
216
  - examples/exception_handler.rb
217
+ - examples/exception_handler2.rb
218
218
  - examples/implicit_method_option_test.rb
219
219
  - examples/logging_aspect.rb
220
220
  - examples/retry_aspect.rb
@@ -257,32 +257,39 @@ files:
257
257
  - spec/unit/method_matcher_spec.rb
258
258
  - spec/unit/raw_spec.rb
259
259
  - spec/unit/special_chars_spec.rb
260
+ has_rdoc: true
260
261
  homepage: http://github.com/gcao/aspector
261
- licenses:
262
+ licenses:
262
263
  - MIT
263
264
  post_install_message:
264
265
  rdoc_options: []
265
- require_paths:
266
+
267
+ require_paths:
266
268
  - lib
267
- required_ruby_version: !ruby/object:Gem::Requirement
269
+ required_ruby_version: !ruby/object:Gem::Requirement
268
270
  none: false
269
- requirements:
270
- - - ! '>='
271
- - !ruby/object:Gem::Version
272
- version: '0'
273
- segments:
271
+ requirements:
272
+ - - ">="
273
+ - !ruby/object:Gem::Version
274
+ hash: 3
275
+ segments:
274
276
  - 0
275
- hash: -866779375770691873
276
- required_rubygems_version: !ruby/object:Gem::Requirement
277
+ version: "0"
278
+ required_rubygems_version: !ruby/object:Gem::Requirement
277
279
  none: false
278
- requirements:
279
- - - ! '>='
280
- - !ruby/object:Gem::Version
281
- version: '0'
280
+ requirements:
281
+ - - ">="
282
+ - !ruby/object:Gem::Version
283
+ hash: 3
284
+ segments:
285
+ - 0
286
+ version: "0"
282
287
  requirements: []
288
+
283
289
  rubyforge_project:
284
- rubygems_version: 1.8.24
290
+ rubygems_version: 1.6.2
285
291
  signing_key:
286
292
  specification_version: 3
287
293
  summary: Aspect Oriented Ruby Programming
288
294
  test_files: []
295
+