Sha256: 5f07f260331397bc2194b44eef1c850d61659ce493312d3f9b4edaa5aeb596c8

Contents?: true

Size: 991 Bytes

Versions: 1

Compression:

Stored size: 991 Bytes

Contents

module Fakeit
  module Openapi
    module Example
      MIN_NUM = -2**31
      MAX_NUM = 2**31 - 1

      def number_example(example_options)
        example_options[:static] ? static_number_example : random_number_example
      end

      private

      def static_number_example
        (num_rand_end * num_multiple)
          .then { |result| multipleOf ? result : result.round(2) }
      end

      def random_number_example
        (Faker::Number.between(num_rand_begin, num_rand_end) * num_multiple)
          .then { |result| multipleOf ? result : result.round(2) }
      end

      def num_rand_begin
        multipleOf ? (min_num / multipleOf).ceil : min_num
      end

      def num_rand_end
        multipleOf ? (max_num / multipleOf).floor : max_num
      end

      def num_multiple
        multipleOf || 1
      end

      def min_num
        (minimum || MIN_NUM).to_f.ceil(2)
      end

      def max_num
        (maximum || MAX_NUM).to_f.floor(2)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fakeit-0.2.1 lib/fakeit/openapi/example/number_example.rb