- 1
- 2
- 3
- 4
attr_name.to_s.gsub!('""', '"')
if (attr_name[0,1] == '"' && attr_name[-1,1] == '"')
attr_name[0..-1] = attr_name[1..-2]
end
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
attr_name.to_s.gsub!('""', '"')
if (attr_name[0,1] == '"' && attr_name[-1,1] == '"')
attr_name[0..-1] = attr_name[1..-2]
end
рабочий проект...
0
Я заставляю студоту здороваться с моим членом перед сексом
Как всегда, Ваш анальный учитель.
0
module SmsRu
# Setup configuration
mattr_accessor :api_id
mattr_reader :queries
@@queries = SmsRu::Config
def self.setup
yield self
end
# Sms.ru api settings
# all possible queries is exactly 2 level deep
@@stack_method ||= nil
# we need to undefine method send because of we use it in the api
class <<self
undef_method :send
end
def self.method_missing(m, options = {})
if @@stack_method
query_options = queries.configuration.to_h[@@stack_method].to_h[m].to_h
query_options.deep_merge!(api_id: api_id)
query_options.deep_merge! options
uri = URI.parse("http://sms.ru/#{@@stack_method.to_s}/#{m.to_s}")
@@stack_method = nil
response = Net::HTTP.post_form(uri, query_options)
raise SmsRu::ConnectionError, 'you have troubles with internet connection or API query is missing' unless response.kind_of? Net::HTTPSuccess
raise SmsRu::APIError, "something going wrong: query_options => #{query_options}, uri => #{uri}, response => #{response.body}" unless response.body.match(/^100/)
response.body.split("\n")
else
@@stack_method = m
return self
end
end
end
Опять руби притесняют :(
сабж: https://github.com/asiniy/sms_ru/blob/master/lib/sms_ru.rb
0
ja 1 > 0
izdrukāt_virkni "Sveika pasaule!"
citādi
izdrukāt_virkni "Kaut kas ir sabojājies"
beigas
Dzintars (Янтарь) — перевод Ruby на латвиску валуоду. Сделан расовыми латышскими программистами Максимом Берёзой и Удисом Озуолсом.
Расовый латышский Ideone: http://dzintars.herokuapp.com/
0
class Review < ActiveRecord::Base
...
def calc_total_rating
#rating received from client via form
rating_from_client = self.total_rating
#rating calculated on server
rating_from_server = ((prices_value + quality_value + delivery_value).to_f / 3).round(1)
# check if client's rating is different from automatic
if rating_from_server.to_i == rating_from_client.to_i
self.total_rating = rating_from_server
else
self.total_rating = rating_from_client
end
end
...
end
Самый бессмысленный и беспощадный if в моей жизни :)
0
def self.check_environment_variables
env_variables_missing = ENV['BATTLE_NET_KEY'].nil? || ENV['BATTLE_NET_KEY'].empty? || ENV['BATTLE_NET_REGION'].nil? || ENV['BATTLE_NET_REGION'].empty? || ENV['BATTLE_NET_LOCALE'].nil? || ENV['BATTLE_NET_LOCALE'].empty?
message = 'Env variables missing:' if env_variables_missing
message += " ENV['BATTLE_NET_KEY']" if ENV['BATTLE_NET_KEY'].nil? || ENV['BATTLE_NET_KEY'].empty?
message += " ENV['BATTLE_NET_REGION']" if ENV['BATTLE_NET_REGION'].nil? || ENV['BATTLE_NET_REGION'].empty?
message += " ENV['BATTLE_NET_LOCALE']" if ENV['BATTLE_NET_LOCALE'].nil? || ENV['BATTLE_NET_LOCALE'].empty?
message if env_variables_missing
end
Кто-нибудь знает метод, которым можно проверять на nil и на empty одновременно?
0
def self.check
check = ENV['BATTLE_NET_KEY'].nil? || ENV['BATTLE_NET_REGION'].nil? || ENV['BATTLE_NET_LOCALE'].nil?
message = 'Env variables missing:' if check
message += " ENV['BATTLE_NET_KEY']" if ENV['BATTLE_NET_KEY'].nil?
message += " ENV['BATTLE_NET_REGION']" if ENV['BATTLE_NET_REGION'].nil?
message += " ENV['BATTLE_NET_LOCALE']" if ENV['BATTLE_NET_LOCALE'].nil?
check ? message : true
end
def self.call_api(remote_url)
if check == true
encoded_url = URI.encode(remote_url)
response = HTTParty.get(encoded_url)
JSON.parse(response.body)
else
check
end
end
0
[:mail_subject, :mail_from, :mail_to, :mail_text_template].each do |m|
define_method(m) do
return self.class.send(m) if self.class.send(m).is_a?(String)
return self.send self.class.send(m) if self.class.send(m).is_a?(Symbol) && self.respond_to?(self.class.send(m))
end
end
Здесь даже сложно придраться к чему-то одному. Плохо все: начиная от динамически объявленных методов (то же самое можно сделать через alias) и заканчивая крайне мудреными условиями возврата.
В общем, автора ждет отдельный котел в аду.
0
module CoreExt; module Array
# Check if all array members are instances of given class(es).
#
# @return [Boolean]
# @param [Array, Class] klasses_allowed Array of classes, or a single class
# @note Returns <tt>true</tt> if the array is empty.
def is_array_of?(klasses_allowed)
if klasses_allowed.kind_of? Array
fail ArgumentError, "Array of Classes expected. Some members are not instances of Class." \
unless klasses_allowed.is_array_of?(Class)
elsif klasses_allowed.kind_of? Class
klasses_allowed = [klasses_allowed]
else
fail ArgumentError, "Class or array of classes expected, #{klasses_allowed.class.name} given"
end
return true if self.empty?
self.map(&:class).uniq.reject{ |klass| klasses_allowed.include?(klass) }.empty?
end
# @note Sums array members.
#
# @return [nil] If source array contains non-numeric values.
# @return [Fixnum, Integer, Float]
def sum
return nil unless self.is_array_of? [Integer, Float, Fixnum]
self.inject(0) { |sum, value| sum + value }
end
# Boil down values proportionally, to make their sum equal to <tt>target_sum</tt>.
#
# @param [Fixnum] target_sum
# @return [Array] Array of pairs [old value, new_value].
def reduce_to_sum(target_sum)
current_sum = self.sum
gap = current_sum - target_sum
if gap < 0
return nil
elsif gap == 0
return self.collect { |value| [value, value] }
else
reduced = 0
result = self.collect do |value|
x = (gap * value) / current_sum # Floats round here
reduced += x
[value, value - x]
end
# Second pass, as target sum is not reached yet due to rounding of floats
(gap - reduced).times { |i| result[i][1] -= 1 }
result
end
end
end; end
if defined? Array
Array.class_eval do
include CoreExt::Array
end
end
https://github.com/gorodulin/assemblr/blob/master/lib/core_ext/array.rb
0
p string = string.split('').map{ |i| i.ord }.inject(0){ |result, elem| result + elem }
Вместо
p string.sum