Method: Ayadn::Databases.create_alias

Defined in:
lib/ayadn/databases.rb

.create_alias(channel_id, channel_alias) ⇒ Object



293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# File 'lib/ayadn/databases.rb', line 293

def self.create_alias(channel_id, channel_alias)
  crashes = 0
  begin
    delete_alias(channel_alias)
    @sql.transaction do |db_in_transaction|
      insert_data = {}
      insert_data[":k"] = channel_id.to_i
      insert_data[":v"] = channel_alias
      db_in_transaction.prepare("INSERT INTO Aliases(channel_id, alias) VALUES(:k, :v);") do |insert|
        insert.execute(insert_data)
      end
    end
  rescue Amalgalite::SQLite3::Error => e
    if crashes < 2
      crashes += 1
      sleep(0.01)
      retry
    else
      puts "ERROR in Databases"
      puts caller
      puts e
      puts ['create_alias', channel_id, channel_alias].inspect
      exit
    end
  end
end