Sha256: f84a064da5c94fd31b751a07268f5f7525075af5703fd16b79eda7eff8e44e81

Contents?: true

Size: 707 Bytes

Versions: 268

Compression:

Stored size: 707 Bytes

Contents

module SafeYAML
  class Parse
    class Sexagesimal
      INTEGER_MATCHER = /\A[-+]?[0-9][0-9_]*(:[0-5]?[0-9])+\Z/.freeze
      FLOAT_MATCHER = /\A[-+]?[0-9][0-9_]*(:[0-5]?[0-9])+\.[0-9_]*\Z/.freeze

      def self.value(value)
        before_decimal, after_decimal = value.split(".")

        whole_part = 0
        multiplier = 1

        before_decimal = before_decimal.split(":")
        until before_decimal.empty?
          whole_part += (Float(before_decimal.pop) * multiplier)
          multiplier *= 60
        end

        result = whole_part
        result += Float("." + after_decimal) unless after_decimal.nil?
        result *= -1 if value[0] == "-"
        result
      end
    end
  end
end

Version data entries

268 entries across 246 versions & 17 rubygems

Version Path
brakeman-4.8.1 bundle/ruby/2.4.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
cloudsmith-api-0.49.118 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
cloudsmith-api-0.49.98 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
cloudsmith-api-0.49.94 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
brakeman-4.8.0 bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
cloudsmith-api-0.49.21 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
cloudsmith-api-0.49.15 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
cloudsmith-api-0.49.13 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
cloudsmith-api-0.49.9 vendor/bundle/ruby/2.3.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.7.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
vagrant-unbundled-2.2.7.0 vendor/bundle/ruby/2.4.0/gems/safe_yaml-1.0.4/lib/safe_yaml/parse/sexagesimal.rb
honeybadger-4.5.3 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/brakeman-4.6.1/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/brakeman-4.7.1/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/brakeman-4.7.0/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/brakeman-4.7.2/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/brakeman-4.5.1/bundle/ruby/2.5.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
brakeman-4.7.2 bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb
vagrant-unbundled-2.2.6.2 vendor/bundle/ruby/2.6.0/gems/safe_yaml-1.0.5/lib/safe_yaml/parse/sexagesimal.rb