Skip to content

Latest commit

 

History

History
52 lines (32 loc) · 2.58 KB

CHANGELOG.md

File metadata and controls

52 lines (32 loc) · 2.58 KB

Change Log

1.4.2

  • Relax method_source gem dependency to ">= 0.8.2", "< 2.0.0"

1.4.1

  • Pauses singleton method recording inside a super_module_included block to avoid replaying on submodules

1.4.0

  • Support aliased methods
  • Support safely calling self.included(base) in super module via super_module_included {|base| ... }

1.3.1

  • Fixed issue with super module containing class methods with default arguments

1.3.0

  • Dropped support for SuperModule 2 Beta syntax, reverting to V1 syntax as the default
  • Added included_super_module method to allow modules to call it if they need to redefine self.included for meta-programming.

v2 Beta (v1.2.2)

  • Relaxed dependency on method_source gem version

v2 Beta (v1.2.1)

  • Standalone super module usage (e.g. direct class method invocation)

v2 Beta (v1.2.0)

  • New super_module(name) syntax
  • Much simpler implementation with guaranteed correctness and no performance hit
  • Less memory footprint by not requiring method_source Ruby gem for v2 syntax
  • Backwards compatibility with v1 syntax

v1.1.1

  • Added support for private and protected methods
  • Added many more RSpec test cases, including testing of empty and comment containing singleton methods

v1.1.0

  • Brand new self-friendly algorithm that ensures true mixing of super module singleton methods into the including base class or module, thus always returning the actual base class or module self when invoking a super module inherited singleton method (thanks to Banister for reporting previous limitation on Reddit and providing suggestions)
  • New included_super_modules inherited singleton method that provides developer with a list of all included super modules similar to the Ruby included_modules method.
  • No more use for method_missing (Thanks to Marc-André Lafortune for bringing up as a previous limitation in AirPair article reviews)
  • New dependency on Banister's method_source library to have the self-friendly algorithm eval inherited class method sources into the including base class or module.
  • Refactorings, including break-up of the original SuperModule into 3 modules in separate files
  • More RSpec test coverage, including additional method definition scenarios, such as when adding dynamically via class_eval and define_method