Sha256: de496ca2689ffbf0abf0dadded23a6b97612be54f499fc015aeaf0079d854885

Contents?: true

Size: 630 Bytes

Versions: 1

Compression:

Stored size: 630 Bytes

Contents

module ArJsonSerialize
  module Serializer
    extend self

    def load(source)
      return '' unless source.present?
      result = parse_source(source)
      case result
      when ::Hash
        ::Hashie::Mash.new(result)
      when ::Array
        parse_array(result)
      else
        result
      end
    end

    def dump(source)
      ::MultiJson.dump(source)
    end

    private

    def parse_source(source)
      ::MultiJson.load(source)
    rescue
      source
    end

    def parse_array(result)
      result.map do |item|
        item.is_a?(::Hash) ? ::Hashie::Mash.new(item) : item
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ar_json_serialize-0.0.3 lib/ar_json_serialize/serializer.rb