Module: JohnnyHash::Hash

Defined in:
lib/johnny-hash.rb

Instance Method Summary collapse

Instance Method Details

#json!(raise_on_missing = true) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/johnny-hash.rb', line 7

def json!(raise_on_missing = true)
  @raise_on_missing = raise_on_missing

  unless respond_to?(:non_json_reader)
    class << self
      alias_method :non_json_reader, :[]

      def [](key)
        JohnnyHash.walk_the_line!(non_json_reader(key), @raise_on_missing)
      end

      def method_missing(sym, *args, &block)
        self[sym] || self[sym.to_s] || (super if @raise_on_missing)
      end
    end
  end

  self
end