Sha256: 2a51f0231f8777a9177c636805351422225d2aacae1f4c9cafaddf9b791a26e0

Contents?: true

Size: 650 Bytes

Versions: 2

Compression:

Stored size: 650 Bytes

Contents

# frozen_string_literal: true

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

2 entries across 2 versions & 1 rubygems

Version Path
uncruft-0.5.0 lib/uncruft/deprecatable.rb
uncruft-0.4.0 lib/uncruft/deprecatable.rb