Sha256: e14b152561a1d000324525c1e3acfa18cfe834d24f67ca3d164f5be90441127b

Contents?: true

Size: 991 Bytes

Versions: 13

Compression:

Stored size: 991 Bytes

Contents

# frozen_string_literal: true

module FFaker
  # Based on Perl's Text::Lorem
  module Lorem
    extend ModuleUtils
    extend self

    def characters(character_count = 255)
      character_count = 0 if character_count.negative?
      Array.new(character_count).map { fetch_sample(CHARACTERS) }.join
    end

    def word
      fetch_sample(WORDS)
    end

    def words(num = 3)
      fetch_sample(WORDS, count: num)
    end

    def sentence(word_count = 4)
      first_word, *last_words = words(word_count + rand(1..5))
      return "#{first_word.capitalize} #{last_words.join(' ')}." if last_words

      first_word.capitalize
    end

    alias phrase sentence

    def sentences(sentence_count = 3)
      (1..sentence_count).map { sentence }
    end

    alias phrases sentences

    def paragraph(sentence_count = 3)
      sentences(sentence_count + rand(0..2)).join(' ')
    end

    def paragraphs(paragraph_count = 3)
      (1..paragraph_count).map { paragraph }
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
ffaker-2.24.0 lib/ffaker/lorem.rb
ffaker-2.23.0 lib/ffaker/lorem.rb
ffaker-2.22.0 lib/ffaker/lorem.rb
ffaker-2.21.0 lib/ffaker/lorem.rb
ffaker-2.20.0 lib/ffaker/lorem.rb
ffaker-2.19.0 lib/ffaker/lorem.rb
ffaker-2.18.0 lib/ffaker/lorem.rb
ffaker-2.17.0 lib/ffaker/lorem.rb
ffaker-2.16.0 lib/ffaker/lorem.rb
ffaker-2.15.0 lib/ffaker/lorem.rb
ffaker-2.14.0 lib/ffaker/lorem.rb
ffaker-2.13.0 lib/ffaker/lorem.rb
ffaker-2.12.0 lib/ffaker/lorem.rb