class Faker::Measurement

Constants

ALL
NONE

Public Class Methods

height(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 7
def height(amount = rand(10))
  define_measurement_locale(amount, 'height')
end
length(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 11
def length(amount = rand(10))
  define_measurement_locale(amount, 'length')
end
metric_height(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 23
def metric_height(amount = rand(10))
  define_measurement_locale(amount, 'metric_height')
end
metric_length(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 27
def metric_length(amount = rand(10))
  define_measurement_locale(amount, 'metric_length')
end
metric_volume(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 31
def metric_volume(amount = rand(10))
  define_measurement_locale(amount, 'metric_volume')
end
metric_weight(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 35
def metric_weight(amount = rand(10))
  define_measurement_locale(amount, 'metric_weight')
end
volume(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 15
def volume(amount = rand(10))
  define_measurement_locale(amount, 'volume')
end
weight(amount = rand(10)) click to toggle source
# File lib/faker/measurement.rb, line 19
def weight(amount = rand(10))
  define_measurement_locale(amount, 'weight')
end

Private Class Methods

check_for_plural(text, number) click to toggle source
# File lib/faker/measurement.rb, line 41
def check_for_plural(text, number)
  if number && number != 1
    make_plural(text)
  else
    text
  end
end
define_measurement_locale(amount, locale) click to toggle source
# File lib/faker/measurement.rb, line 49
def define_measurement_locale(amount, locale)
  ensure_valid_amount(amount)
  if amount == ALL
    make_plural(fetch("measurement.#{locale}"))
  elsif amount == NONE
    fetch("measurement.#{locale}")
  else
    locale = check_for_plural(fetch("measurement.#{locale}"), amount)

    "#{amount} #{locale}"
  end
end
ensure_valid_amount(amount) click to toggle source
# File lib/faker/measurement.rb, line 62
def ensure_valid_amount(amount)
  raise ArgumentError, 'invalid amount' unless amount == NONE || amount == ALL || amount.is_a?(Integer) || amount.is_a?(Float)
end
make_plural(text) click to toggle source
# File lib/faker/measurement.rb, line 66
def make_plural(text)
  case text
  when 'foot'
    'feet'
  when 'inch'
    'inches'
  when 'fluid ounce'
    'fluid ounces'
  when 'metric ton'
    'metric tons'
  else
    "#{text}s"
  end
end