Sha256: bfd2f1e4586432ba61f319cec8c01bb2a315d1b1621e14394af9d6b23faef5e1
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
module BootstrapForm # This module implements the old ActiveSupport alias_method_chain feature # with a new name, and without the deprecation warnings. In ActiveSupport 5+, # this style of patching was deprecated in favor of Module.prepend. But # Module.prepend is not present in Ruby 1.9, which we would still like to # support. So we continue to use of alias_method_chain, albeit with a # different name to avoid collisions. module Aliasing # This code is copied and pasted from ActiveSupport, but with :bootstrap # hardcoded as the feature name, and with the deprecation warning removed. def bootstrap_method_alias(target) feature = :bootstrap # Strip out punctuation on predicates, bang or writer methods since # e.g. target?_without_feature is not a valid method name. aliased_target = target.to_s.sub(/([?!=])$/, "") punctuation = Regexp.last_match(1) yield(aliased_target, punctuation) if block_given? with_method = "#{aliased_target}_with_#{feature}#{punctuation}" without_method = "#{aliased_target}_without_#{feature}#{punctuation}" alias_method without_method, target alias_method target, with_method if public_method_defined?(without_method) public target elsif protected_method_defined?(without_method) protected target elsif private_method_defined?(without_method) private target end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bootstrap_form-4.1.0 | lib/bootstrap_form/aliasing.rb |