Sha256: 90b18f080b9173155401299154e799608dad5a6df82982d3e2fc25de86c349d7

Contents?: true

Size: 619 Bytes

Versions: 7

Compression:

Stored size: 619 Bytes

Contents

module Uncruft
  module Deprecatable
    extend ActiveSupport::Concern

    module ClassMethods
      def deprecate_attribute(attribute, message:)
        deprecate_method attribute, message: message
        deprecate_method :"#{attribute}=", message: message
      end

      def deprecate_method(method, message:)
        prepended_method = Module.new

        prepended_method.module_eval do
          define_method method do |*args, &block|
            ActiveSupport::Deprecation.warn(message)
            super(*args, &block)
          end
        end

        prepend prepended_method
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
uncruft-0.3.4 lib/uncruft/deprecatable.rb
uncruft-0.3.3 lib/uncruft/deprecatable.rb
uncruft-0.3.2 lib/uncruft/deprecatable.rb
uncruft-0.3.1 lib/uncruft/deprecatable.rb
uncruft-0.3.0 lib/uncruft/deprecatable.rb
uncruft-0.2.1 lib/uncruft/deprecatable.rb
uncruft-0.2.0 lib/uncruft/deprecatable.rb