# frozen_string_literal: true module ArticleFixtureGen module Data # Wraps attributes for a single marker-tag pair instance. Initially, the # only attribute supported is `:id_string`. class SmtpAttributes include Enumerable def initialize(config:) text = config.smtp_text @items = Array.new(config.smtp_count) { build_item(text) } self end def each(&_block) @items.each { |item| yield item } end private attr_reader :items def build_item(text, rand_limit: 10_000) id_num = rand(rand_limit) + 1 Struct.new(:id_string).new "#{text}-#{id_num}" end end # class ArticleFixtureGen::Data::SmtpAttributes end end