class Faker::Commerce

Public Class Methods

color() click to toggle source
# File lib/faker/default/commerce.rb, line 6
def color
  fetch('color.name')
end
department(legacy_max = NOT_GIVEN, legacy_fixed_amount = NOT_GIVEN, max: 3, fixed_amount: false) click to toggle source
# File lib/faker/default/commerce.rb, line 22
def department(legacy_max = NOT_GIVEN, legacy_fixed_amount = NOT_GIVEN, max: 3, fixed_amount: false)
  warn_for_deprecated_arguments do |keywords|
    keywords << :max if legacy_max != NOT_GIVEN
    keywords << :fixed_amount if legacy_fixed_amount != NOT_GIVEN
  end

  num = max if fixed_amount
  num ||= 1 + rand(max)

  categories = categories(num)

  return merge_categories(categories) if num > 1

  categories[0]
end
material() click to toggle source
# File lib/faker/default/commerce.rb, line 42
def material
  fetch('commerce.product_name.material')
end
price(legacy_range = NOT_GIVEN, legacy_as_string = NOT_GIVEN, range: 0..100.0, as_string: false) click to toggle source
# File lib/faker/default/commerce.rb, line 46
def price(legacy_range = NOT_GIVEN, legacy_as_string = NOT_GIVEN, range: 0..100.0, as_string: false)
  warn_for_deprecated_arguments do |keywords|
    keywords << :range if legacy_range != NOT_GIVEN
    keywords << :as_string if legacy_as_string != NOT_GIVEN
  end

  price = (rand(range) * 100).floor / 100.0
  if as_string
    price_parts = price.to_s.split('.')
    price = price_parts[0] + '.' + price_parts[-1].ljust(2, '0')
  end
  price
end
product_name() click to toggle source
# File lib/faker/default/commerce.rb, line 38
def product_name
  "#{fetch('commerce.product_name.adjective')} #{fetch('commerce.product_name.material')} #{fetch('commerce.product_name.product')}"
end
promotion_code(legacy_digits = NOT_GIVEN, digits: 6) click to toggle source
# File lib/faker/default/commerce.rb, line 10
def promotion_code(legacy_digits = NOT_GIVEN, digits: 6)
  warn_for_deprecated_arguments do |keywords|
    keywords << :digits if legacy_digits != NOT_GIVEN
  end

  [
    fetch('commerce.promotion_code.adjective'),
    fetch('commerce.promotion_code.noun'),
    Faker::Number.number(digits: digits)
  ].join
end

Private Class Methods

categories(num) click to toggle source
# File lib/faker/default/commerce.rb, line 62
def categories(num)
  categories = []
  while categories.length < num
    category = fetch('commerce.department')
    categories << category unless categories.include?(category)
  end

  categories
end
merge_categories(categories) click to toggle source
# File lib/faker/default/commerce.rb, line 72
def merge_categories(categories)
  separator = fetch('separator')
  comma_separated = categories.slice!(0...-1).join(', ')

  [comma_separated, categories[0]].join(separator)
end