Sha256: 2d6efd2b5ecc6fedd244f89e9fb09dcc9436bfe37f7ce8d90a30a130e9096ef4
Contents?: true
Size: 1.07 KB
Versions: 3
Compression:
Stored size: 1.07 KB
Contents
# frozen_string_literal: true # must require active_support's alias_method_chain first, to ensure that our module monkey patches it require 'active_support/core_ext/module/aliasing' require_relative '../../lib/invoca/utils/module.rb' require_relative '../test_helper' class ModuleTest < Minitest::Test class NumberFun def self.around_filter(around_method, method_names) method_names.each do |meth| define_method("#{meth}_with_around_filter") do |*args| send(around_method, *args) do |*ar_args| send("#{meth}_without_around_filter", *ar_args) end end alias_method_chain meth, :around_filter end end def increment_filter(num) yield(num + 1) end def number_printer(num) num end around_filter :increment_filter, [:number_printer] around_filter :increment_filter, [:number_printer] end context 'alias_method_chain' do should 'not cause infinite recursion when double aliasing the same method' do assert_equal(4, NumberFun.new.number_printer(3)) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
invoca-utils-0.4.1 | test/unit/module_test.rb |
invoca-utils-0.4.0 | test/unit/module_test.rb |
invoca-utils-0.3.0 | test/unit/module_test.rb |