Sha256: 0a0382bc487bc0cc5dc8f15399522834936dca6cc4c1a7d0bdb5f3ee7f9b2c4f

Contents?: true

Size: 685 Bytes

Versions: 2

Compression:

Stored size: 685 Bytes

Contents

require_relative 'base'

module Estratto
  module Data
    class Float < Base

      def coerce
        if expected_comma
          from_comma_data
        elsif custom_precision
          from_precision_data
        else
          data.to_f
        end
      end

      private

      def expected_comma
        formats.dig('comma_format') || false
      end

      def custom_precision
        formats.has_key?('precision')
      end

      def from_comma_data
        data.gsub('.', '').gsub(',', '.').to_f
      end

      def from_precision_data
        data.to_f / (10**precision)
      end

      def precision
        formats['precision'].to_i || 2
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
estratto-1.0.5 lib/estratto/data/float.rb
estratto-1.0.4 lib/estratto/data/float.rb