class ArticleFixtureGen::Data::ArticleContent

Details of generated Article and internal details thereof.

Attributes

config[R]
paras_builder[R]

Public Class Methods

new(config:, &paras_builder) click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 9
def initialize(config:, &paras_builder)
  @config = config
  @paras_builder = paras_builder
  @str = nil
  self
end

Public Instance Methods

to_s() click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 16
def to_s
  return @str if @str
  @str = Internals.wrap_content(content)
end

Private Instance Methods

content() click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 25
def content
  paragraphs.join("\n")
end
para_count() click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 37
def para_count
  rand(para_count_range)
end
para_count_range() click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 41
def para_count_range
  config.para_count_min..config.para_count_max
end
paragraph(sentence_count) click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 29
def paragraph(sentence_count)
  paras_builder.call sentence_count
end
paragraphs() click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 33
def paragraphs
  Array.new(para_count) { paragraph(sentence_count) }
end
sentence_count() click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 45
def sentence_count
  rand(sentence_count_range)
end
sentence_count_range() click to toggle source
# File lib/article_fixture_gen/data/article_content.rb, line 49
def sentence_count_range
  config.sent_count_min..config.sent_count_max
end