├── .gitignore ├── .irbrc ├── .rspec ├── .rubocop.yml ├── .ruby-gemset ├── .ruby-version ├── .travis.yml ├── CHANGELOG.md ├── Gemfile ├── Gemfile.lock ├── Guardfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── aspector.gemspec ├── benchmarks ├── after_benchmark.rb ├── applying_benchmark.rb ├── around_advice_benchmark.rb ├── around_benchmark.rb ├── before_benchmark.rb ├── benchmark_helper.rb ├── combined_benchmark.rb ├── method_invocation_benchmark.rb └── raw_benchmark.rb ├── examples ├── activerecord_hooks.rb ├── around_example.rb ├── aspector_apply_example.rb ├── aspector_example.rb ├── cache_aspect.rb ├── design_by_contract.rb ├── exception_handler.rb ├── exception_handler2.rb ├── implicit_method_option_test.rb ├── instance_aspect.rb ├── interception_options_example.rb ├── logging_aspect.rb ├── multiple_aspects_on_same.rb ├── process_aspector.rb └── retry_aspect.rb ├── lib ├── aspector.rb └── aspector │ ├── advice.rb │ ├── advice │ ├── builder.rb │ ├── metadata.rb │ ├── method_matcher.rb │ └── params.rb │ ├── base.rb │ ├── base │ ├── class_methods.rb │ ├── dsl.rb │ ├── status.rb │ └── storage.rb │ ├── deferred │ ├── logic.rb │ └── option.rb │ ├── errors.rb │ ├── extensions │ ├── module.rb │ └── object.rb │ ├── interception.rb │ ├── interceptions_storage.rb │ ├── logger.rb │ ├── logging.rb │ ├── method_template.rb │ ├── refinements │ ├── class.rb │ └── string.rb │ └── version.rb └── spec ├── benchmarks_spec.rb ├── examples_spec.rb ├── functionals ├── aspect_applied_multiple_times_on_same_spec.rb ├── aspect_for_multiple_targets_spec.rb ├── aspect_interception_options_accessing_spec.rb ├── aspect_on_a_class_spec.rb ├── aspect_on_an_instance_spec.rb ├── aspector_spec.rb ├── aspects_combined_spec.rb ├── aspects_execution_order_spec.rb └── aspects_on_private_methods_spec.rb ├── spec_helper.rb ├── support └── class_builder.rb └── units ├── advice ├── builder_spec.rb ├── metadata_spec.rb └── method_matcher_spec.rb ├── advice_spec.rb ├── advices ├── after_spec.rb ├── around_spec.rb ├── before_filter_spec.rb ├── before_spec.rb └── raw_spec.rb ├── base ├── class_methods_spec.rb ├── dsl_spec.rb ├── status_spec.rb └── storage_spec.rb ├── base_spec.rb ├── deferred ├── logic_spec.rb └── option_spec.rb ├── extensions ├── module_spec.rb └── object_spec.rb ├── logger_spec.rb ├── logging_spec.rb ├── object_extension_spec.rb ├── refinements ├── class_spec.rb └── string_spec.rb └── special_chars_spec.rb /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/.gitignore -------------------------------------------------------------------------------- /.irbrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/.irbrc -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --color 2 | -------------------------------------------------------------------------------- /.rubocop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/.rubocop.yml -------------------------------------------------------------------------------- /.ruby-gemset: -------------------------------------------------------------------------------- 1 | aspector 2 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.3.0 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/.travis.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/Gemfile -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/Gemfile.lock -------------------------------------------------------------------------------- /Guardfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/Guardfile -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/LICENSE.txt -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/README.md -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/Rakefile -------------------------------------------------------------------------------- /aspector.gemspec: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/aspector.gemspec -------------------------------------------------------------------------------- /benchmarks/after_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/after_benchmark.rb -------------------------------------------------------------------------------- /benchmarks/applying_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/applying_benchmark.rb -------------------------------------------------------------------------------- /benchmarks/around_advice_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/around_advice_benchmark.rb -------------------------------------------------------------------------------- /benchmarks/around_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/around_benchmark.rb -------------------------------------------------------------------------------- /benchmarks/before_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/before_benchmark.rb -------------------------------------------------------------------------------- /benchmarks/benchmark_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/benchmark_helper.rb -------------------------------------------------------------------------------- /benchmarks/combined_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/combined_benchmark.rb -------------------------------------------------------------------------------- /benchmarks/method_invocation_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/method_invocation_benchmark.rb -------------------------------------------------------------------------------- /benchmarks/raw_benchmark.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/benchmarks/raw_benchmark.rb -------------------------------------------------------------------------------- /examples/activerecord_hooks.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/activerecord_hooks.rb -------------------------------------------------------------------------------- /examples/around_example.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/around_example.rb -------------------------------------------------------------------------------- /examples/aspector_apply_example.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/aspector_apply_example.rb -------------------------------------------------------------------------------- /examples/aspector_example.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/aspector_example.rb -------------------------------------------------------------------------------- /examples/cache_aspect.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/cache_aspect.rb -------------------------------------------------------------------------------- /examples/design_by_contract.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/design_by_contract.rb -------------------------------------------------------------------------------- /examples/exception_handler.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/exception_handler.rb -------------------------------------------------------------------------------- /examples/exception_handler2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/exception_handler2.rb -------------------------------------------------------------------------------- /examples/implicit_method_option_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/implicit_method_option_test.rb -------------------------------------------------------------------------------- /examples/instance_aspect.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/instance_aspect.rb -------------------------------------------------------------------------------- /examples/interception_options_example.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/interception_options_example.rb -------------------------------------------------------------------------------- /examples/logging_aspect.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/logging_aspect.rb -------------------------------------------------------------------------------- /examples/multiple_aspects_on_same.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/multiple_aspects_on_same.rb -------------------------------------------------------------------------------- /examples/process_aspector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/process_aspector.rb -------------------------------------------------------------------------------- /examples/retry_aspect.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/examples/retry_aspect.rb -------------------------------------------------------------------------------- /lib/aspector.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector.rb -------------------------------------------------------------------------------- /lib/aspector/advice.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/advice.rb -------------------------------------------------------------------------------- /lib/aspector/advice/builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/advice/builder.rb -------------------------------------------------------------------------------- /lib/aspector/advice/metadata.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/advice/metadata.rb -------------------------------------------------------------------------------- /lib/aspector/advice/method_matcher.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/advice/method_matcher.rb -------------------------------------------------------------------------------- /lib/aspector/advice/params.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/advice/params.rb -------------------------------------------------------------------------------- /lib/aspector/base.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/base.rb -------------------------------------------------------------------------------- /lib/aspector/base/class_methods.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/base/class_methods.rb -------------------------------------------------------------------------------- /lib/aspector/base/dsl.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/base/dsl.rb -------------------------------------------------------------------------------- /lib/aspector/base/status.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/base/status.rb -------------------------------------------------------------------------------- /lib/aspector/base/storage.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/base/storage.rb -------------------------------------------------------------------------------- /lib/aspector/deferred/logic.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/deferred/logic.rb -------------------------------------------------------------------------------- /lib/aspector/deferred/option.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/deferred/option.rb -------------------------------------------------------------------------------- /lib/aspector/errors.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/errors.rb -------------------------------------------------------------------------------- /lib/aspector/extensions/module.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/extensions/module.rb -------------------------------------------------------------------------------- /lib/aspector/extensions/object.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/extensions/object.rb -------------------------------------------------------------------------------- /lib/aspector/interception.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/interception.rb -------------------------------------------------------------------------------- /lib/aspector/interceptions_storage.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/interceptions_storage.rb -------------------------------------------------------------------------------- /lib/aspector/logger.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/logger.rb -------------------------------------------------------------------------------- /lib/aspector/logging.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/logging.rb -------------------------------------------------------------------------------- /lib/aspector/method_template.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/method_template.rb -------------------------------------------------------------------------------- /lib/aspector/refinements/class.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/refinements/class.rb -------------------------------------------------------------------------------- /lib/aspector/refinements/string.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/refinements/string.rb -------------------------------------------------------------------------------- /lib/aspector/version.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/lib/aspector/version.rb -------------------------------------------------------------------------------- /spec/benchmarks_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/benchmarks_spec.rb -------------------------------------------------------------------------------- /spec/examples_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/examples_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspect_applied_multiple_times_on_same_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspect_applied_multiple_times_on_same_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspect_for_multiple_targets_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspect_for_multiple_targets_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspect_interception_options_accessing_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspect_interception_options_accessing_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspect_on_a_class_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspect_on_a_class_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspect_on_an_instance_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspect_on_an_instance_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspector_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspector_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspects_combined_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspects_combined_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspects_execution_order_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspects_execution_order_spec.rb -------------------------------------------------------------------------------- /spec/functionals/aspects_on_private_methods_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/functionals/aspects_on_private_methods_spec.rb -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/spec_helper.rb -------------------------------------------------------------------------------- /spec/support/class_builder.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/support/class_builder.rb -------------------------------------------------------------------------------- /spec/units/advice/builder_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advice/builder_spec.rb -------------------------------------------------------------------------------- /spec/units/advice/metadata_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advice/metadata_spec.rb -------------------------------------------------------------------------------- /spec/units/advice/method_matcher_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advice/method_matcher_spec.rb -------------------------------------------------------------------------------- /spec/units/advice_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advice_spec.rb -------------------------------------------------------------------------------- /spec/units/advices/after_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advices/after_spec.rb -------------------------------------------------------------------------------- /spec/units/advices/around_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advices/around_spec.rb -------------------------------------------------------------------------------- /spec/units/advices/before_filter_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advices/before_filter_spec.rb -------------------------------------------------------------------------------- /spec/units/advices/before_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advices/before_spec.rb -------------------------------------------------------------------------------- /spec/units/advices/raw_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/advices/raw_spec.rb -------------------------------------------------------------------------------- /spec/units/base/class_methods_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/base/class_methods_spec.rb -------------------------------------------------------------------------------- /spec/units/base/dsl_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/base/dsl_spec.rb -------------------------------------------------------------------------------- /spec/units/base/status_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/base/status_spec.rb -------------------------------------------------------------------------------- /spec/units/base/storage_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/base/storage_spec.rb -------------------------------------------------------------------------------- /spec/units/base_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/base_spec.rb -------------------------------------------------------------------------------- /spec/units/deferred/logic_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/deferred/logic_spec.rb -------------------------------------------------------------------------------- /spec/units/deferred/option_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/deferred/option_spec.rb -------------------------------------------------------------------------------- /spec/units/extensions/module_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/extensions/module_spec.rb -------------------------------------------------------------------------------- /spec/units/extensions/object_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/extensions/object_spec.rb -------------------------------------------------------------------------------- /spec/units/logger_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/logger_spec.rb -------------------------------------------------------------------------------- /spec/units/logging_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/logging_spec.rb -------------------------------------------------------------------------------- /spec/units/object_extension_spec.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /spec/units/refinements/class_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/refinements/class_spec.rb -------------------------------------------------------------------------------- /spec/units/refinements/string_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/refinements/string_spec.rb -------------------------------------------------------------------------------- /spec/units/special_chars_spec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gcao/aspector/HEAD/spec/units/special_chars_spec.rb --------------------------------------------------------------------------------