summaryrefslogtreecommitdiff
path: root/lib/hashie/extensions/mash/safe_assignment.rb
blob: b1b2046e4b65f1625cce769201472277aeb1156b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
module Hashie
  module Extensions
    module Mash
      module SafeAssignment
        def custom_writer(key, *args) #:nodoc:
          raise ArgumentError, "The property #{key} clashes with an existing method." if !key?(key) && respond_to?(key, true)
          super
        end

        def []=(*args)
          custom_writer(*args)
        end
      end
    end
  end
end