Sha256: 23d360ab2dca482f5a45cc829d3d79338c0feb87bc5655177935ebb25a86798e

Contents?: true

Size: 875 Bytes

Versions: 84

Compression:

Stored size: 875 Bytes

Contents

# frozen_string_literal: true

module PlutoniumGenerators
  module Concerns
    module Serializer
      private

      def serialize_value(value)
        case value
        when Symbol
          ":#{value}"
        when String
          serialize_string value
        when Integer, Float, BigDecimal
          serialize_number value
        when Enumerable
          serialize_enumerable value
        when nil
          "nil"
        else
          # debug "Unable to serialize a value '#{value}:#{value.class}'"
          value
        end
      end

      def serialize_string(value)
        "'#{value.gsub("'", "\\\\'")}'"
      end

      def serialize_number(num)
        num.to_s.gsub(/(\d)(?=(\d\d\d)+(?!\d))/, '\\1_')
      end

      def serialize_enumerable(enum)
        "[#{enum.entries.map { |val| serialize_value val }.join ", "}]"
      end
    end
  end
end

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
plutonium-0.20.4 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.20.3 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.20.1 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.20.0 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.13 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.12 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.11 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.10 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.9 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.8 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.7 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.6 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.5 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.4 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.3 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.2 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.1 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.19.0 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.18.8 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb
plutonium-0.18.7 lib/generators/pu/lib/plutonium_generators/concerns/serializer.rb