File: allow_symbols.rb

package info (click to toggle)
ruby-representable 3.0.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 896 kB
  • sloc: ruby: 6,432; makefile: 3
file content (27 lines) | stat: -rw-r--r-- 634 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module Representable
  module Hash
    module AllowSymbols
    private
      def filter_wrap_for(data, *args)
        super(Conversion.stringify_keys(data), *args)
      end

      def update_properties_from(data, *args)
        super(Conversion.stringify_keys(data), *args)
      end
    end

    class Conversion
      # DISCUSS: we could think about mixin in IndifferentAccess here (either hashie or ActiveSupport).
      # or decorating the hash.
      def self.stringify_keys(hash)
        hash = hash.dup

        hash.keys.each do |k|
          hash[k.to_s] = hash.delete(k)
        end
        hash
      end
    end
  end
end