Sha256: 7f23a5856ef3de33f2d8558606867d99487ce133a11a39f5f8185f374574691f

Contents?: true

Size: 691 Bytes

Versions: 1

Compression:

Stored size: 691 Bytes

Contents

require 'active_model'

module AdaptiveAlias
  module ActiveModelPatches
    module RemoveAliasAttribute
      def remove_proxy_call(mod, name)
        mod.module_eval "remove_method(:'#{name}')", __FILE__, __LINE__ + 1
      end

      def remove_alias_attribute(new_name)
        self.attribute_aliases = attribute_aliases.except(new_name.to_s)

        attribute_method_matchers.each do |matcher|
          matcher_new = matcher.method_name(new_name).to_s
          remove_proxy_call self, matcher_new
        end
      end
    end
  end
end

module ActiveModel::AttributeMethods::ClassMethods
  include AdaptiveAlias::ActiveModelPatches::RemoveAliasAttribute
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
adaptive_alias-0.2.0 lib/adaptive_alias/active_model_patches/remove_alias_attribute.rb