Sha256: 7f6d88a230fc2ac2e37d9ea74092b5bf66cdcafbfcff50149112d825a08262fc

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

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

      def number_example(example_options)
        if example_options[:use_static][type: 'number', property: example_options[:property]]
          static_number_example
        else
          random_number_example
        end
      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(from: num_rand_begin, to: 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

4 entries across 4 versions & 1 rubygems

Version Path
fakeit-0.4.2 lib/fakeit/openapi/example/number_example.rb
fakeit-0.4.1 lib/fakeit/openapi/example/number_example.rb
fakeit-0.4.0 lib/fakeit/openapi/example/number_example.rb
fakeit-0.3.1 lib/fakeit/openapi/example/number_example.rb