Sha256: 6b80638480cb2f8404c72adf5ee9309b47935157fcc8e9ac6e887d904655ea11

Contents?: true

Size: 1.01 KB

Versions: 2

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require 'discourse_dev/record'
require 'rails'
require 'faker'

module DiscourseDev
  class User < Record

    def initialize(count = DEFAULT_COUNT)
      super(::User, count)
      @groups = ::Group.where(automatic: false)
      @group_count = @groups.count
    end

    def data
      name = Faker::Name.name
      email = Faker::Internet.email(name: name)
      username = Faker::Internet.username(specifier: name)[0, SiteSetting.max_username_length]
      username_lower = username.downcase

      {
        name: name,
        email: email,
        username: username,
        username_lower: username_lower,
        moderator: Faker::Boolean.boolean(true_ratio: 0.1),
        trust_level: Faker::Number.between(from: 1, to: 4)
      }
    end

    def create!
      super do |user|
        Faker::Number.between(from: 0, to: 2).times do
          offset = rand(@group_count)
          group = @groups.offset(offset).first
    
          group.add(user)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
discourse_dev-0.0.3 lib/discourse_dev/user.rb
discourse_dev-0.0.2 lib/discourse_dev/user.rb