- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
def has_currency_rate?
val = false
if self.currency.id == self.client.company.currency.id or self.currency_rate.blank?
else
val = true
end
val
end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−121
def has_currency_rate?
val = false
if self.currency.id == self.client.company.currency.id or self.currency_rate.blank?
else
val = true
end
val
end
тяжело же жилось людям...
−130.2
class FinancialEventObserver < ActiveRecord::Observer
observe Payment, Invoice
def before_save(model)
event = nil
if model.class == Payment
if model.new_record?
event = FinancialEvent.new(:event => FinancialEvent::Event::PAYMENT_INVOICE,
:arguments => {:client_name => model.invoice.client.short_name, :invoice_number => model.invoice.invoice_number},
:company_id=>model.invoice.client.company.id)
end
elsif model.class == Invoice
i = Invoice.find_by_id model.id
if model.new_record? or i.status != model.status
if model.status == Invoice::Status::ESTIMATE
event = FinancialEvent.new(:event => FinancialEvent::Event::ESTIMATE_SEND,
:arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
:company_id=>model.client.company.id)
elsif model.status == Invoice::Status::APPROVED
event = FinancialEvent.new(:event => FinancialEvent::Event::ESTIMATE_APPROVED,
:arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
:company_id=>model.client.company.id)
elsif model.status == Invoice::Status::REJECTED
event = FinancialEvent.new(:event => FinancialEvent::Event::ESTIMATE_REJECTED,
:arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
:company_id=>model.client.company.id)
elsif model.status == Invoice::Status::SEND
event = FinancialEvent.new(:event => FinancialEvent::Event::INVOICE_SEND,
:arguments => {:client_name => model.client.short_name, :invoice_number => model.invoice_number},
:company_id=>model.client.company.id)
end
elsif !model.new_record? and i.state != model.state
if model.state == Invoice::State::DELETED
event = FinancialEvent.new(:event => FinancialEvent::Event::INVOICE_DELETED,
:arguments => {:invoice_number => model.invoice_number},
:company_id=>model.client.company.id)
end
end
end
event.eventable = model.requester unless event.blank?
event.save unless event.blank?
end
def before_destroy(model)
if model.class == Payment
event = FinancialEvent.new(:event => FinancialEvent::Event::PAYMENT_DELETED,
:arguments => {:invoice_number => model.invoice.invoice_number},
:company_id=>model.invoice.client.company.id)
event.eventable = model.requester
event.save
end
end
end
о боже, зачем я открыл этот файл?
−131.4
some_variable = (some_condition && some_other_condition) ? true : false
Иногда встречаю ГК подобный этому но реализованный в виде case..when. Еще более впечатляет :)
−126.7
<li class="list_item primary_card_<%= index+1 %> <%= primary_card.patient.sex == 'male' ? 'boy' : 'girl' %> critical">
А можно было изменить имя класса в CSS
−129.2
def true_or_nil bool
!!bool || nil
end
−119.8
case @demand.status #зависит также от временных групп
when 1,4
@status_list[2]=@@statuses[2]
when 2,7,8
@status_list[2]=@@statuses[2]
@status_list[3]=@@statuses[3]
@status_list[7]=@@statuses[7]
@status_list[8]=@@statuses[8]
when 3
@status_list[3]=@@statuses[3]
if @is_admin || @demand.watchers.include?(session[:user]) || @demand.heads.include?(session[:user]) ||@see_later_demands_watchers || @see_later_demands_heads
@status_list[4]=@@statuses[4]
end
if @is_admin || @demand.heads.include?(session[:user]) || @see_later_demands_heads
@status_list[6]=@@statuses[6]
end
when 6
if @is_admin || @demand.watchers.include?(session[:user]) || @demand.heads.include?(session[:user]) ||@see_later_demands_watchers || @see_later_demands_heads
@status_list[4]=@@statuses[4]
end
else
end
магия
−95.4
@ids.each_index do |di|
if @ids[di] then
@ids[di].each_index do |li|
@employ[di][li] = Hash.new
@employ[di][li][:subject] = Subject.find(:first, :conditions => "id = #{
Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:subject_id]
}")[:title] if @ids[di][li]
@employ[di][li][:class] = SchoolClass.find(:first, :conditions => "id = #{
Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:school_class_id]
}")[:number].to_s +
SchoolClass.find(:first, :conditions => "id = #{
Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:school_class_id]
}")[:letter] if @ids[di][li]
@employ[di][li][:teacher] = Teacher.find(:first, :conditions => "id = #{
Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:teacher_id]
}")[:name] + ' ' +
@employ[di][li][:teacher] = Teacher.find(:first, :conditions => "id = #{
Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:teacher_id]
}")[:surname] + ' ' +
@employ[di][li][:teacher] = Teacher.find(:first, :conditions => "id = #{
Lesson.find(:first, :conditions => "id = #{@ids[di][li]}")[:teacher_id]
}")[:patronymic] if @ids[di][li]
end
end
end
Небольшая утренняя ревизия кода раскрыла заговор по свержению власти и захвату мозга остальных кодеров проекта.
Сидим, рефакторим.
−145.5
# I really hate Western week system (0 - sunday, 6 - saturday),
# maybe it is better, but this crap is incompatible with
# Russian week system (0 - monday, 6 - sunday)
wday = date.wday - 1
wday = 6 if wday == -1
Кусок кода из реализации расписания с календарём в текущем проекте.
Только что оказалось, что для этого как раз есть метод Date#cwday :)
−83
@archive = File.open(File.expand_path(__FILE__), "rb"){|f| f.read}.gsub(/\r/, "").split(/\n\n/)[-1].split("\n").collect{|s| s[2..-1]}.join("\n").unpack("m").shift
Жесть
−326.2
def properties_file2hash(_property_file, _link_hash=nil)
r_hash = Hash.new
if _property_file && FileTest::exist?(_property_file)
f = File::open(_property_file,'r')
begin
_lines = f.readlines
_lines.each{|_line|
_strip_line = _line.strip
if (_strip_line.length > 0)&&(_strip_line[0,1]!='#')
var_plat = _line.split('::')
if var_plat.length > 1
if (RUBY_PLATFORM.include?(var_plat[0]))
_line = var_plat[1]
var_plat[2..-1].collect{|x| _line=_line+'::'+x} if var_plat.length > 2
else
_line = ''
end
end
var = _line.split('=')
if var.length > 1
_value = var[1].strip
var[2..-1].collect{|x| _value=_value+'='+x} if var.length > 2
if _link_hash
_value = resolve_link(_value, _link_hash)
end
r_hash[var[0].strip]=_value
end
end
}
ensure
f.close unless f.nil?
end
return r_hash
end
Реальный кусок... Весь код проги(не моей)... ТАКОЙ.