Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
#!/usr/bin/ruby1.8
require 'mysql'
$KCODE = 'UTF8'
class Country
@@country = Array.new
@@insert_query = String.new
@@db = Mysql
def initialize(filename)
file = File.open(filename)
while !file.eof?
value, index = file.readline.split(/\s+/u)
@@country[index.to_i] = value.to_s
end
file.close
end
def database_connect
@@db = Mysql.new('localhost','username','userpass','userdatabase')
begin
@@db.query("SET NAMES utf8")
rescue
puts @@db.error
end
end
def create_query
begin
result = @@db.query("SELECT * FROM table")
rescue
puts @@db.error
end
result.each_hash do |field|
@@country.each_index do |index|
@@insert_query += "UPDATE table SET position = #{index} WHERE caption = '#{field['caption']}';" if @@country[index] == field['caption']
end
end
end
def execute_query
begin
@@insert_query.split(/;/u).each { |query| @@db.query(query) }
puts "result: #{@@db.errno}" if @@db.errno
rescue
puts @@db.error
end
end
def database_disconnect
@@db.close
end
end
cnt = Country.new('country.txt')
# connect to DB
cnt.database_connect
# construct query
cnt.create_query
# execute constructed query
cnt.execute_query
# close connect
cnt.database_disconnect
Ruby не изучал, но осуждаю. Не нравится первая строка (в которой комментарий для оболочки). Вдруг на машине не окажется ruby1.8, а окажется другая, но совместимая, версия?
Я думаю, это пустяк с #! можно выполнять как
$ ruby country.rb
и тогда будет учтен дефолтный интерпретатор, а если
$ ./country.rb
тогда уже тот что в #!
Я уже заметил, что в строчку 31 нужно было указать
result = @@db.query("SELECT `caption` FROM table")
так как мне нужен только заголовок
хм, а ведь действительно пора внедрять воскресные школы на просторах засиженного школьниками совка. там специально подготовленный поп, вооруженный священным паникадилом и prist's staff +3 будет отвлекать из интернетов малолетних долбоебов рассказами о непорочных залётах и resurrectах и flood control
$ ruby country.rb
и тогда будет учтен дефолтный интерпретатор, а если
$ ./country.rb
тогда уже тот что в #!
Я уже заметил, что в строчку 31 нужно было указать
result = @@db.query("SELECT `caption` FROM table")
так как мне нужен только заголовок
crossposted to: orthodox.ru
я в отличие от тебя моюсь раз в сутки, сраный ты гой</throllmode>
по делу - я про засилие сектоебов в энтой рашке, которые спонсируются из-за бугра.
Познакомимся поближе?
Зачем писать такое на Ruby?