Sha256: e32086d6711f438d1a1f8a8e5156e88df37706855751f9567511ddaefa554fad

Contents?: true

Size: 676 Bytes

Versions: 1

Compression:

Stored size: 676 Bytes

Contents

require 'singleton'
require_relative 'user'
# In-memory storage for users
class Rubotnik::UserStore
  include Singleton
  attr_reader :users

  def initialize
    @users = []
  end

  def find_or_create_user(id)
    find(id) || add(Rubotnik::User.new(id))
  end

  def add(user)
    @users << user
    user = @users.last
    if user
      p "user #{user.inspect} added to store"
      p "we got #{@users.count} users: #{@users}"
    else
      p 'user not found in store yet'
    end
    user
  end

  def find(id)
    user = @users.find { |u| u.id == id }
    p "user #{user} found in store" if user
    p "we got #{@users.count} users: #{@users}" if user
    user
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubotnik-0.2.1 lib/rubotnik/user_store.rb