Class: Faker::Types
Constant Summary collapse
- CHARACTERS =
('0'..'9').to_a + ('a'..'z').to_a
- SIMPLE_TYPES =
%i[string fixnum].freeze
- COMPLEX_TYPES =
%i[hash array].freeze
Constants inherited from Base
Base::LLetters, Base::Letters, Base::NOT_GIVEN, Base::Numbers, Base::ULetters
Class Method Summary collapse
-
.character ⇒ String
Produces a random character from the a-z, 0-9 ranges.
-
.complex_rb_hash(legacy_number = NOT_GIVEN, number: 1) ⇒ Hash
Produces a random complex hash with random keys and values where the values may include other hashes and arrays.
-
.random_complex_type ⇒ String, Integer
Produces a random complex type that’s either a String, an Integer, an array or a hash.
-
.random_type ⇒ String, Integer
Produces a random type that’s either a String or an Integer.
-
.rb_array(legacy_len = NOT_GIVEN, len: 1) ⇒ Array
Produces a random array.
-
.rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type) ⇒ Hash
Produces a random hash with random keys and values.
-
.rb_integer(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 100) ⇒ Integer
Produces a random integer.
-
.rb_string(legacy_words = NOT_GIVEN, words: 1) ⇒ String
Produces a random String created from word (Faker::Lorem.word).
Methods inherited from Base
bothify, disable_enforce_available_locales, fetch, fetch_all, flexible, letterify, method_missing, numerify, parse, rand, rand_in_range, regexify, resolve, respond_to_missing?, sample, shuffle, translate, unique, with_locale
Class Method Details
.character ⇒ String
Produces a random character from the a-z, 0-9 ranges.
41 42 43 |
# File 'lib/faker/default/types.rb', line 41 def character sample(CHARACTERS) end |
.complex_rb_hash(legacy_number = NOT_GIVEN, number: 1) ⇒ Hash
Produces a random complex hash with random keys and values where the values may include other hashes and arrays.
100 101 102 103 104 105 106 |
# File 'lib/faker/default/types.rb', line 100 def complex_rb_hash(legacy_number = NOT_GIVEN, number: 1) warn_for_deprecated_arguments do |keywords| keywords << :number if legacy_number != NOT_GIVEN end rb_hash(number: number, type: random_complex_type) end |
.random_complex_type ⇒ String, Integer
Produces a random complex type that’s either a String, an Integer, an array or a hash.
159 160 161 162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/faker/default/types.rb', line 159 def random_complex_type types = SIMPLE_TYPES + COMPLEX_TYPES type_to_use = types[rand(0..types.length - 1)] case type_to_use when :string rb_string when :fixnum rb_integer when :hash rb_hash when :array rb_array end end |
.random_type ⇒ String, Integer
Produces a random type that’s either a String or an Integer.
140 141 142 143 144 145 146 147 148 |
# File 'lib/faker/default/types.rb', line 140 def random_type type_to_use = SIMPLE_TYPES[rand(0..SIMPLE_TYPES.length - 1)] case type_to_use when :string rb_string when :fixnum rb_integer end end |
.rb_array(legacy_len = NOT_GIVEN, len: 1) ⇒ Array
Produces a random array.
119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/faker/default/types.rb', line 119 def rb_array(legacy_len = NOT_GIVEN, len: 1) warn_for_deprecated_arguments do |keywords| keywords << :len if legacy_len != NOT_GIVEN end [].tap do |ar| len.times do ar.push random_type end end end |
.rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type) ⇒ Hash
Produces a random hash with random keys and values.
75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/faker/default/types.rb', line 75 def rb_hash(legacy_number = NOT_GIVEN, legacy_type = NOT_GIVEN, number: 1, type: random_type) warn_for_deprecated_arguments do |keywords| keywords << :number if legacy_number != NOT_GIVEN keywords << :type if legacy_type != NOT_GIVEN end {}.tap do |hsh| Lorem.words(number: number * 2).uniq.first(number).each do |s| hsh.merge!(s.to_sym => type) end end end |
.rb_integer(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 100) ⇒ Integer
Produces a random integer.
54 55 56 57 58 59 60 61 |
# File 'lib/faker/default/types.rb', line 54 def rb_integer(legacy_from = NOT_GIVEN, legacy_to = NOT_GIVEN, from: 0, to: 100) warn_for_deprecated_arguments do |keywords| keywords << :from if legacy_from != NOT_GIVEN keywords << :to if legacy_to != NOT_GIVEN end rand(from..to).to_i end |
.rb_string(legacy_words = NOT_GIVEN, words: 1) ⇒ String
Produces a random String created from word (Faker::Lorem.word)
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/faker/default/types.rb', line 19 def rb_string(legacy_words = NOT_GIVEN, words: 1) warn_for_deprecated_arguments do |keywords| keywords << :words if legacy_words != NOT_GIVEN end resolved_num = resolve(words) word_list = translate('faker.lorem.words') word_list *= ((resolved_num / word_list.length) + 1) shuffle(word_list)[0, resolved_num].join(' ') end |