aquarium 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. data/Aquarium-IDEA.ipr +252 -0
  2. data/Aquarium-IDEA.iws +493 -0
  3. data/Aquarium.ipr +1 -1
  4. data/Aquarium.iws +133 -138
  5. data/CHANGES +63 -0
  6. data/ParseTreePlay.rb +25 -0
  7. data/README +55 -3
  8. data/RELEASE-PLAN +9 -1
  9. data/TODO.rb +175 -15
  10. data/examples/aspect_design_example.rb +13 -1
  11. data/examples/aspect_design_example_spec.rb +20 -2
  12. data/examples/introductions_example.rb +35 -0
  13. data/examples/introductions_example_spec.rb +37 -0
  14. data/examples/method_missing_example.rb +2 -1
  15. data/lib/aquarium/aspects/advice.rb +127 -74
  16. data/lib/aquarium/aspects/aspect.rb +139 -72
  17. data/lib/aquarium/aspects/default_objects_handler.rb +6 -4
  18. data/lib/aquarium/aspects/exclusion_handler.rb +15 -3
  19. data/lib/aquarium/aspects/join_point.rb +60 -55
  20. data/lib/aquarium/aspects/pointcut.rb +153 -124
  21. data/lib/aquarium/aspects/pointcut_composition.rb +1 -1
  22. data/lib/aquarium/dsl/aspect_dsl.rb +13 -5
  23. data/lib/aquarium/dsl/object_dsl.rb +4 -2
  24. data/lib/aquarium/extras/design_by_contract.rb +9 -5
  25. data/lib/aquarium/finders.rb +1 -0
  26. data/lib/aquarium/finders/finder_result.rb +13 -5
  27. data/lib/aquarium/finders/method_finder.rb +75 -70
  28. data/lib/aquarium/finders/pointcut_finder.rb +166 -0
  29. data/lib/aquarium/finders/type_finder.rb +104 -62
  30. data/lib/aquarium/utils/array_utils.rb +1 -1
  31. data/lib/aquarium/utils/invalid_options.rb +2 -0
  32. data/lib/aquarium/utils/name_utils.rb +3 -2
  33. data/lib/aquarium/utils/nil_object.rb +7 -3
  34. data/lib/aquarium/utils/options_utils.rb +38 -27
  35. data/lib/aquarium/utils/set_utils.rb +2 -2
  36. data/lib/aquarium/utils/type_utils.rb +11 -0
  37. data/lib/aquarium/version.rb +1 -1
  38. data/spec/aquarium/aspects/advice_spec.rb +147 -32
  39. data/spec/aquarium/aspects/aspect_invocation_spec.rb +252 -43
  40. data/spec/aquarium/aspects/aspect_spec.rb +148 -88
  41. data/spec/aquarium/aspects/aspect_with_nested_types_spec.rb +40 -34
  42. data/spec/aquarium/aspects/aspect_with_subtypes_spec.rb +39 -3
  43. data/spec/aquarium/aspects/join_point_spec.rb +190 -227
  44. data/spec/aquarium/aspects/pointcut_spec.rb +24 -1
  45. data/spec/aquarium/dsl/aspect_dsl_spec.rb +17 -17
  46. data/spec/aquarium/finders/method_finder_spec.rb +8 -2
  47. data/spec/aquarium/finders/pointcut_finder_spec.rb +193 -0
  48. data/spec/aquarium/finders/pointcut_finder_spec_test_classes.rb +90 -0
  49. data/spec/aquarium/finders/type_finder_spec.rb +17 -0
  50. data/spec/aquarium/finders/type_finder_with_descendents_and_ancestors_spec.rb +4 -4
  51. data/spec/aquarium/finders/type_finder_with_nested_types.rb +47 -0
  52. data/spec/aquarium/utils/nil_object_spec.rb +21 -0
  53. data/spec/aquarium/utils/type_utils_sample_nested_types.rb +51 -0
  54. data/spec/aquarium/utils/type_utils_spec.rb +18 -1
  55. metadata +13 -3
data/Aquarium.ipr CHANGED
@@ -228,7 +228,7 @@
228
228
  <module fileurl="file://$PROJECT_DIR$/aquarium.iml" filepath="$PROJECT_DIR$/aquarium.iml" />
229
229
  </modules>
230
230
  </component>
231
- <component name="ProjectRootManager" version="2" assert-keyword="true" jdk-15="true" project-jdk-name="Ruby SDK 1.8.6" project-jdk-type="RUBY_SDK">
231
+ <component name="ProjectRootManager" version="2" assert-keyword="true" jdk-15="true" project-jdk-name="JRuby SDK 1.8.6 (1)" project-jdk-type="JRUBY_SDK">
232
232
  <output url="file://$PROJECT_DIR$/out" />
233
233
  </component>
234
234
  <component name="ResourceManagerContainer">
data/Aquarium.iws CHANGED
@@ -1,6 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <project relativePaths="false" version="4">
3
3
  <component name="AnalysisUIOptions">
4
+ <option name="ANALYZE_TEST_SOURCES" value="false" />
4
5
  <option name="SCOPE_TYPE" value="4" />
5
6
  <option name="CUSTOM_SCOPE_NAME" value="Project Files" />
6
7
  </component>
@@ -19,12 +20,7 @@
19
20
  <option name="historyRevisionsNumber" value="4" />
20
21
  </component>
21
22
  <component name="ChangeListManager">
22
- <list default="true" name="Default" comment="">
23
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/aquarium/aspects/aspect.rb" afterPath="$PROJECT_DIR$/lib/aquarium/aspects/aspect.rb" />
24
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/aquarium/utils/type_utils.rb" afterPath="$PROJECT_DIR$/lib/aquarium/utils/type_utils.rb" />
25
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/aquarium/extras/design_by_contract.rb" afterPath="$PROJECT_DIR$/lib/aquarium/extras/design_by_contract.rb" />
26
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/spec/aquarium/aspects/aspect_spec.rb" afterPath="$PROJECT_DIR$/spec/aquarium/aspects/aspect_spec.rb" />
27
- </list>
23
+ <list default="true" name="Default" comment="" />
28
24
  <ignored path="Aquarium.iws" />
29
25
  <ignored path=".idea/workspace.xml" />
30
26
  </component>
@@ -77,6 +73,11 @@
77
73
  <breakpoint_rules />
78
74
  <ui_properties />
79
75
  </component>
76
+ <component name="DynamicManagerImpl">
77
+ <option name="containingClasses">
78
+ <map />
79
+ </option>
80
+ </component>
80
81
  <component name="ErrorTreeViewConfiguration">
81
82
  <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
82
83
  <option name="HIDE_WARNINGS" value="false" />
@@ -86,37 +87,10 @@
86
87
  </component>
87
88
  <component name="FileEditorManager">
88
89
  <leaf>
89
- <file leaf-file-name="default_objects_handler.rb" pinned="false" current="false" current-in-tab="false">
90
- <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects/default_objects_handler.rb">
91
- <provider selected="true" editor-type-id="text-editor">
92
- <state line="14" column="38" selection-start="486" selection-end="695" vertical-scroll-proportion="0.41025642">
93
- <folding />
94
- </state>
95
- </provider>
96
- </entry>
97
- </file>
98
- <file leaf-file-name="aspect_spec.rb" pinned="false" current="true" current-in-tab="true">
99
- <entry file="file://$PROJECT_DIR$/spec/aquarium/aspects/aspect_spec.rb">
100
- <provider selected="true" editor-type-id="text-editor">
101
- <state line="22" column="20" selection-start="825" selection-end="825" vertical-scroll-proportion="0.38019803">
102
- <folding />
103
- </state>
104
- </provider>
105
- </entry>
106
- </file>
107
- <file leaf-file-name="aspect_invocation_spec.rb" pinned="false" current="false" current-in-tab="false">
108
- <entry file="file://$PROJECT_DIR$/spec/aquarium/aspects/aspect_invocation_spec.rb">
109
- <provider selected="true" editor-type-id="text-editor">
110
- <state line="11" column="0" selection-start="297" selection-end="297" vertical-scroll-proportion="-1.0244821">
111
- <folding />
112
- </state>
113
- </provider>
114
- </entry>
115
- </file>
116
- <file leaf-file-name="aspect.rb" pinned="false" current="false" current-in-tab="false">
117
- <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects/aspect.rb">
90
+ <file leaf-file-name="advice.rb" pinned="false" current="true" current-in-tab="true">
91
+ <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects/advice.rb">
118
92
  <provider selected="true" editor-type-id="text-editor">
119
- <state line="225" column="13" selection-start="9133" selection-end="9133" vertical-scroll-proportion="0.5442561">
93
+ <state line="2" column="34" selection-start="108" selection-end="108" vertical-scroll-proportion="0.03907204">
120
94
  <folding />
121
95
  </state>
122
96
  </provider>
@@ -180,7 +154,7 @@
180
154
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
181
155
  </PATH_ELEMENT>
182
156
  <PATH_ELEMENT>
183
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
157
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium" />
184
158
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
185
159
  </PATH_ELEMENT>
186
160
  </PATH>
@@ -194,15 +168,15 @@
194
168
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
195
169
  </PATH_ELEMENT>
196
170
  <PATH_ELEMENT>
197
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
171
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium" />
198
172
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
199
173
  </PATH_ELEMENT>
200
174
  <PATH_ELEMENT>
201
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/spec" />
175
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/spec" />
202
176
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
203
177
  </PATH_ELEMENT>
204
178
  <PATH_ELEMENT>
205
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/spec/aquarium" />
179
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/spec/aquarium" />
206
180
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
207
181
  </PATH_ELEMENT>
208
182
  </PATH>
@@ -216,19 +190,19 @@
216
190
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
217
191
  </PATH_ELEMENT>
218
192
  <PATH_ELEMENT>
219
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
193
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium" />
220
194
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
221
195
  </PATH_ELEMENT>
222
196
  <PATH_ELEMENT>
223
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/spec" />
197
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/spec" />
224
198
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
225
199
  </PATH_ELEMENT>
226
200
  <PATH_ELEMENT>
227
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/spec/aquarium" />
201
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/spec/aquarium" />
228
202
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
229
203
  </PATH_ELEMENT>
230
204
  <PATH_ELEMENT>
231
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/spec/aquarium/aspects" />
205
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/spec/aquarium/aspects" />
232
206
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
233
207
  </PATH_ELEMENT>
234
208
  </PATH>
@@ -242,11 +216,11 @@
242
216
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
243
217
  </PATH_ELEMENT>
244
218
  <PATH_ELEMENT>
245
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
219
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium" />
246
220
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
247
221
  </PATH_ELEMENT>
248
222
  <PATH_ELEMENT>
249
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/lib" />
223
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/lib" />
250
224
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
251
225
  </PATH_ELEMENT>
252
226
  </PATH>
@@ -260,15 +234,15 @@
260
234
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
261
235
  </PATH_ELEMENT>
262
236
  <PATH_ELEMENT>
263
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
237
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium" />
264
238
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
265
239
  </PATH_ELEMENT>
266
240
  <PATH_ELEMENT>
267
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/lib" />
241
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/lib" />
268
242
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
269
243
  </PATH_ELEMENT>
270
244
  <PATH_ELEMENT>
271
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/lib/aquarium" />
245
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/lib/aquarium" />
272
246
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
273
247
  </PATH_ELEMENT>
274
248
  </PATH>
@@ -282,19 +256,19 @@
282
256
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
283
257
  </PATH_ELEMENT>
284
258
  <PATH_ELEMENT>
285
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$" />
259
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium" />
286
260
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
287
261
  </PATH_ELEMENT>
288
262
  <PATH_ELEMENT>
289
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/lib" />
263
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/lib" />
290
264
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
291
265
  </PATH_ELEMENT>
292
266
  <PATH_ELEMENT>
293
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/lib/aquarium" />
267
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/lib/aquarium" />
294
268
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
295
269
  </PATH_ELEMENT>
296
270
  <PATH_ELEMENT>
297
- <option name="myItemId" value="PsiDirectory:$PROJECT_DIR$/lib/aquarium/aspects" />
271
+ <option name="myItemId" value="PsiDirectory:/Users/deanwampler/projects/ruby/aquarium/aquarium-svn/trunk/aquarium/lib/aquarium/aspects" />
298
272
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
299
273
  </PATH_ELEMENT>
300
274
  </PATH>
@@ -326,43 +300,60 @@
326
300
  <property name="GoToClass.toSaveIncludeLibraries" value="false" />
327
301
  </component>
328
302
  <component name="RubyDocSettings">
329
- <RUBY_DOC NAME="DEFAULTS" VALUE="TRUE" />
303
+ <RUBY_DOC NAME="DEFAULTS" VALUE="true" />
330
304
  <RUBY_DOC NAME="NUMBER" VALUE="0" />
331
305
  </component>
332
- <component name="RunManager" selected="RubyOnRails.aspect_invocation_spec">
333
- <tempConfiguration default="false" name="aspect_invocation_spec" type="RubyRunConfigurationType" factoryName="RSpec">
306
+ <component name="RunManager" selected="RubyOnRails.profile">
307
+ <tempConfiguration default="false" name="profile" type="RubyRunConfigurationType" factoryName="Ruby script">
308
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="$PROJECT_DIR$/profile.rb" />
309
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
310
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
311
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="$PROJECT_DIR$" />
312
+ <RUBY_RUN_CONFIG NAME="MODULE_NAME" VALUE="aquarium" />
313
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
314
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
315
+ <RunnerSettings RunnerId="Run" />
316
+ <ConfigurationWrapper RunnerId="Run" />
317
+ <method>
318
+ <option name="Make" value="true" />
319
+ </method>
320
+ </tempConfiguration>
321
+ <configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby script">
322
+ <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
323
+ <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
324
+ <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
325
+ <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
326
+ <RUBY_RUN_CONFIG NAME="MODULE_NAME" VALUE="" />
327
+ <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
328
+ <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
329
+ </configuration>
330
+ <configuration default="true" type="Applet" factoryName="Applet">
331
+ <module name="" />
332
+ <option name="MAIN_CLASS_NAME" />
333
+ <option name="HTML_FILE_NAME" />
334
+ <option name="HTML_USED" value="false" />
335
+ <option name="WIDTH" value="400" />
336
+ <option name="HEIGHT" value="300" />
337
+ <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
338
+ <option name="VM_PARAMETERS" />
339
+ <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
340
+ <option name="ALTERNATIVE_JRE_PATH" />
341
+ </configuration>
342
+ <configuration default="true" type="RubyRunConfigurationType" factoryName="RSpec">
334
343
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
335
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/aquarium/aspects/aspect_invocation_spec.rb" />
344
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
336
345
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="[none]" />
337
346
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
338
347
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
339
348
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="-fs" />
340
349
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
341
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$PROJECT_DIR$/spec/aquarium/aspects" />
342
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="MODULE_NAME" VALUE="aquarium" />
350
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
351
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="MODULE_NAME" VALUE="" />
343
352
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
344
353
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
345
354
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUN_SPECS_SEPARATELY" VALUE="false" />
346
355
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_COLOURED_OUTPUT_ENABLED" VALUE="true" />
347
356
  <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
348
- <RunnerSettings RunnerId="Run" />
349
- <ConfigurationWrapper RunnerId="Run" />
350
- <method>
351
- <option name="Make" value="true" />
352
- </method>
353
- </tempConfiguration>
354
- <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
355
- <option name="MAIN_CLASS_NAME" />
356
- <option name="VM_PARAMETERS" />
357
- <option name="PROGRAM_PARAMETERS" />
358
- <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
359
- <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
360
- <option name="ALTERNATIVE_JRE_PATH" />
361
- <option name="ENABLE_SWING_INSPECTOR" value="false" />
362
- <option name="ENV_VARIABLES" />
363
- <option name="PASS_PARENT_ENVS" value="true" />
364
- <module name="" />
365
- <envs />
366
357
  </configuration>
367
358
  <configuration default="true" type="Remote" factoryName="Remote">
368
359
  <option name="USE_SOCKET_TRANSPORT" value="true" />
@@ -390,45 +381,21 @@
390
381
  </option>
391
382
  <envs />
392
383
  </configuration>
393
- <configuration default="true" type="Applet" factoryName="Applet">
394
- <module name="" />
384
+ <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
395
385
  <option name="MAIN_CLASS_NAME" />
396
- <option name="HTML_FILE_NAME" />
397
- <option name="HTML_USED" value="false" />
398
- <option name="WIDTH" value="400" />
399
- <option name="HEIGHT" value="300" />
400
- <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
401
386
  <option name="VM_PARAMETERS" />
387
+ <option name="PROGRAM_PARAMETERS" />
388
+ <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
402
389
  <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
403
390
  <option name="ALTERNATIVE_JRE_PATH" />
404
- </configuration>
405
- <configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby script">
406
- <RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
407
- <RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
408
- <RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
409
- <RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
410
- <RUBY_RUN_CONFIG NAME="MODULE_NAME" VALUE="" />
411
- <RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
412
- <RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
413
- </configuration>
414
- <configuration default="true" type="RubyRunConfigurationType" factoryName="RSpec">
415
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
416
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
417
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="[none]" />
418
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
419
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
420
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="-fs" />
421
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e STDOUT.sync=true;STDERR.sync=true;load($0=ARGV.shift)" />
422
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
423
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="MODULE_NAME" VALUE="" />
424
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
425
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
426
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUN_SPECS_SEPARATELY" VALUE="false" />
427
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_COLOURED_OUTPUT_ENABLED" VALUE="true" />
428
- <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
391
+ <option name="ENABLE_SWING_INSPECTOR" value="false" />
392
+ <option name="ENV_VARIABLES" />
393
+ <option name="PASS_PARENT_ENVS" value="true" />
394
+ <module name="" />
395
+ <envs />
429
396
  </configuration>
430
397
  <list size="1">
431
- <item index="0" class="java.lang.String" itemvalue="RubyOnRails.aspect_invocation_spec" />
398
+ <item index="0" class="java.lang.String" itemvalue="RubyOnRails.profile" />
432
399
  </list>
433
400
  <configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
434
401
  <Host>localhost</Host>
@@ -486,31 +453,31 @@
486
453
  <layout>
487
454
  <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
488
455
  <window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
489
- <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="7" />
490
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24953446" order="0" />
456
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32881355" order="7" />
457
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24953446" order="0" />
491
458
  <window_info id="RDoc" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
492
459
  <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="1" />
493
- <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24953446" order="1" />
494
- <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
495
- <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="6" />
460
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24953446" order="1" />
461
+ <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="9" />
462
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="5" />
496
463
  <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
497
- <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="8" />
464
+ <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="10" />
498
465
  <window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
499
466
  <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="1" />
500
467
  <window_info id="Maven projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
501
- <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="8" />
502
- <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="2" />
468
+ <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="11" />
469
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32881355" order="2" />
503
470
  <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
504
- <window_info id="Dilbert" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32919955" order="8" />
505
- <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="0" />
506
- <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="4" />
507
- <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
508
- <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
509
- <window_info id="Duplicates" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
471
+ <window_info id="Dilbert" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32881355" order="12" />
472
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3997517" order="0" />
473
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="3" />
474
+ <window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="13" />
475
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="14" />
476
+ <window_info id="Duplicates" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="15" />
510
477
  <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="0" />
511
478
  <window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
512
- <window_info id="EJB" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="3" />
513
- <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="5" />
479
+ <window_info id="EJB" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="4" />
480
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="6" />
514
481
  </layout>
515
482
  </component>
516
483
  <component name="VcsManagerConfiguration">
@@ -572,51 +539,79 @@
572
539
  <option name="FILTER_TARGETS" value="false" />
573
540
  </component>
574
541
  <component name="editorHistoryManager">
575
- <entry file="file://$PROJECT_DIR$/pkg/aquarium-0.3.0/lib/aquarium/aspects/aspect.rb">
542
+ <entry file="file://$PROJECT_DIR$/lib/aquarium/utils/type_utils.rb">
576
543
  <provider selected="true" editor-type-id="text-editor">
577
- <state line="331" column="15" selection-start="13502" selection-end="13520" vertical-scroll-proportion="0.332696">
544
+ <state line="27" column="0" selection-start="905" selection-end="905" vertical-scroll-proportion="0.7912088">
578
545
  <folding />
579
546
  </state>
580
547
  </provider>
581
548
  </entry>
582
- <entry file="file://$PROJECT_DIR$/lib/aquarium/utils/type_utils.rb">
549
+ <entry file="file://$PROJECT_DIR$/lib/aquarium/extras/design_by_contract.rb">
583
550
  <provider selected="true" editor-type-id="text-editor">
584
- <state line="27" column="0" selection-start="905" selection-end="905" vertical-scroll-proportion="0.7912088">
551
+ <state line="5" column="0" selection-start="412" selection-end="412" vertical-scroll-proportion="0.14652015">
585
552
  <folding />
586
553
  </state>
587
554
  </provider>
588
555
  </entry>
589
- <entry file="file://$PROJECT_DIR$/lib/aquarium/extras/design_by_contract.rb">
556
+ <entry file="file://$PROJECT_DIR$/spec/aquarium/aspects/aspect_invocation_spec.rb">
590
557
  <provider selected="true" editor-type-id="text-editor">
591
- <state line="5" column="0" selection-start="412" selection-end="412" vertical-scroll-proportion="0.14652015">
558
+ <state line="11" column="0" selection-start="297" selection-end="297" vertical-scroll-proportion="-1.0244821">
559
+ <folding />
560
+ </state>
561
+ </provider>
562
+ </entry>
563
+ <entry file="file://$PROJECT_DIR$/spec/aquarium/aspects/aspect_spec.rb">
564
+ <provider selected="true" editor-type-id="text-editor">
565
+ <state line="22" column="20" selection-start="825" selection-end="825" vertical-scroll-proportion="0.38019803">
592
566
  <folding />
593
567
  </state>
594
568
  </provider>
595
569
  </entry>
596
570
  <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects/default_objects_handler.rb">
597
571
  <provider selected="true" editor-type-id="text-editor">
598
- <state line="14" column="38" selection-start="486" selection-end="695" vertical-scroll-proportion="0.41025642">
572
+ <state line="3" column="7" selection-start="59" selection-end="59" vertical-scroll-proportion="0.0">
573
+ <folding />
574
+ </state>
575
+ </provider>
576
+ </entry>
577
+ <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects.rb">
578
+ <provider selected="true" editor-type-id="text-editor">
579
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
580
+ <folding />
581
+ </state>
582
+ </provider>
583
+ </entry>
584
+ <entry file="file://$PROJECT_DIR$/TODO.rb">
585
+ <provider selected="true" editor-type-id="text-editor">
586
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
587
+ <folding />
588
+ </state>
589
+ </provider>
590
+ </entry>
591
+ <entry file="file://$PROJECT_DIR$/demo1.rb">
592
+ <provider selected="true" editor-type-id="text-editor">
593
+ <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
599
594
  <folding />
600
595
  </state>
601
596
  </provider>
602
597
  </entry>
603
598
  <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects/aspect.rb">
604
599
  <provider selected="true" editor-type-id="text-editor">
605
- <state line="225" column="13" selection-start="9133" selection-end="9133" vertical-scroll-proportion="0.5442561">
600
+ <state line="439" column="8" selection-start="18845" selection-end="18845" vertical-scroll-proportion="0.0">
606
601
  <folding />
607
602
  </state>
608
603
  </provider>
609
604
  </entry>
610
- <entry file="file://$PROJECT_DIR$/spec/aquarium/aspects/aspect_invocation_spec.rb">
605
+ <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects/pointcut.rb">
611
606
  <provider selected="true" editor-type-id="text-editor">
612
- <state line="11" column="0" selection-start="297" selection-end="297" vertical-scroll-proportion="-1.0244821">
607
+ <state line="190" column="10" selection-start="10659" selection-end="10659" vertical-scroll-proportion="0.0">
613
608
  <folding />
614
609
  </state>
615
610
  </provider>
616
611
  </entry>
617
- <entry file="file://$PROJECT_DIR$/spec/aquarium/aspects/aspect_spec.rb">
612
+ <entry file="file://$PROJECT_DIR$/lib/aquarium/aspects/advice.rb">
618
613
  <provider selected="true" editor-type-id="text-editor">
619
- <state line="22" column="20" selection-start="825" selection-end="825" vertical-scroll-proportion="0.38019803">
614
+ <state line="2" column="34" selection-start="108" selection-end="108" vertical-scroll-proportion="0.03907204">
620
615
  <folding />
621
616
  </state>
622
617
  </provider>