class Baza::Driver::Mysql::Users

Public Class Methods

new(args) click to toggle source
# File lib/baza/driver/mysql/users.rb, line 4
def initialize(args)
  @args = args
  @db = @args.fetch(:db)
end

Public Instance Methods

create(data) click to toggle source
# File lib/baza/driver/mysql/users.rb, line 35
def create(data)
  @db.query("CREATE USER '#{@db.esc(data.fetch(:name))}'@'#{@db.esc(data.fetch(:host))}' IDENTIFIED BY '#{data.fetch(:password)}'")
  find_by_name(data.fetch(:name))
end
find_by_name(name) click to toggle source
# File lib/baza/driver/mysql/users.rb, line 27
def find_by_name(name)
  list do |user|
    return user if user.name == name.to_s
  end

  raise Baza::Errors::UserNotFound, "Could not find a user by that name: #{name}"
end
list() { |user| ... } click to toggle source
# File lib/baza/driver/mysql/users.rb, line 9
def list
  result = []
  @db.query("SELECT * FROM mysql.user") do |user_data|
    user = Baza::Driver::Mysql::User.new(
      db: @db,
      data: user_data
    )

    if block_given?
      yield user
    else
      result << user
    end
  end

  result unless block_given?
end