- 1
monthes = ['Нулября', 'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−109
monthes = ['Нулября', 'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']
Вот, оказывается, как лечится, что индексы в массиве начинаются с нуля, а номера месяца с 1
−106
def simpleEncrDecr( alphabet, alphabetKey, encrDecrWord, triger) #простой метод одну букву из алфавита заменяет другой
alphabet = alphabet.chars.to_a
alphabetKey = alphabetKey.chars.to_a
encrDecrWord = encrDecrWord.chars.to_a
if triger == 'encryption' then
for i in 0..encrDecrWord.length-1
encrDecrWord[i] = alphabetKey[alphabet.rindex(encrDecrWord[i])]
end
elsif triger == 'decryption'
for i in 0..encrDecrWord.length-1
encrDecrWord[i] = alphabet[alphabetKey.rindex(encrDecrWord[i])]
end
else
p "You is looser! :-)"
end
encrDecrWord.join
end
def manyAlphEncrDecr( alphabet, alpKey, encrDecrWord, triger) #для закодування нужное слово которое будет ключом
alphabet = alphabet.chars.to_a
encrDecrWord = encrDecrWord.chars.to_a
if triger == 'encryption' then
for i in 0..encrDecrWord.length-1
sum = alphabet.rindex(encrDecrWord[i])+alphabet.rindex(alpKey[i])
encrDecrWord[i] = alphabet[sum%alphabet.length]
end
elsif triger == 'decryption'
for i in 0..encrDecrWord.length-1
div = alphabet.rindex(encrDecrWord[i])-alphabet.rindex(alpKey[i])
encrDecrWord[i] = alphabet[div]
end
else
p "You is looser! :-)"
end
encrDecrWord.join
end
def permutationEncrDecr( permKeyNew, encrDecrWord, triger) #меняет местами буквы в соответствии с ключом, 1234 <=> 3241
encrDecrWord = encrDecrWord.chars.to_a
encrDecrWordNew = Array.new
if triger == 'encryption' then
for i in 0..encrDecrWord.length-1
encrDecrWordNew[i] = encrDecrWord[permKeyNew[i]]
end
elsif triger == 'decryption'
for i in 0..encrDecrWord.length-1
encrDecrWordNew[permKeyNew[i]] = encrDecrWord[i]
end
else
p "You is looser! :-)"
end
encrDecrWordNew.join
end
def frequencyAnalysis(textForAnalis) #частотный анализ текста (подсчет букв)
analisHash = Hash.new
for i in 0..textForAnalis.length-1
analisHash[textForAnalis[i]] = 0
end
for i in 0..textForAnalis.length-1
analisHash[textForAnalis[i]] += 1
end
puts "Frequency Analysis - #{analisHash}"
end
p "Alphabet - #{alphabet = ('0'..'z').to_a.join}"
print "Enter words for encryption/decryption:"
wordForEncryped = gets.chomp
print "Type method:\n1-simple\n2-many alphabetic\n3-permutation\n"
method = gets.chomp
case
when method == '1' then
puts "Key for alphabet - #{alphabetKey = alphabet.chars.to_a.shuffle.join}"
puts "Simple Encryped - #{encrypedWord = simpleEncrDecr( alphabet, alphabetKey, wordForEncryped, 'encryption')}"
frequencyAnalysis(encrypedWord)
puts "Simple Decryped - #{simpleEncrDecr( alphabet, alphabetKey, encrypedWord, 'decryption')}"
when method == '2' then
print "Enter word for many alphabetical encryption/decryption:"
wordForManyAlphKey = gets.chomp.chars.to_a
manyAlphKey = Array.new
for i in 0..wordForEncryped.length-1
manyAlphKey[i] = wordForManyAlphKey[i%wordForManyAlphKey.length]
end
puts "Many Alphabetic Encryped - #{encrWordForManyAlph = manyAlphEncrDecr( alphabet, manyAlphKey, wordForEncryped, 'encryption')}"
frequencyAnalysis(encrWordForManyAlph)
puts "Many Alphabetic Decryped - #{manyAlphEncrDecr( alphabet, manyAlphKey, encrWordForManyAlph, 'decryption')}"
when method == '3' then
print 'Please typed key(f.e. 23451):'
permKey = gets.chomp.chars.to_a
lengthForSum = permKey.length
newPermKey = Array.new
for i in 0..wordForEncryped.length-1
lengthForSum += permKey.length if i==lengthForSum
newPermKey[i] = permKey[i%permKey.length].to_i + lengthForSum - permKey.length-1
end
puts "Permutation Encryped - #{encrypedWordForPrem = permutationEncrDecr( newPermKey, wordForEncryped, 'encryption')}"
frequencyAnalysis(encrypedWordForPrem)
puts "Permutation Decryped - #{permutationEncrDecr( newPermKey, encrypedWordForPrem, 'decryption')}"
else p 'Incorect typed'
end
Методьі кодирования
1. простой метод одну букву из алфавита заменяет другой
2. для закодування нужное слово которое будет ключом
3. меняет местами буквы в соответствии с ключом, 1234 <=> 3241
4. частотный анализ текста (подсчет букв)
у каждого метода кроме 4 есть триггер - выбор в каком режиме метод будет работать (кодирование или декодирование)
−102
/ _jquery.haml
- unless Rails.env.development?
/ Require jQuery
= javascript_include_tag 'http://yandex.st/jquery/1.7.1/jquery.min.js'
/ Require Google's jQuery if Yandex is down
:javascript
window.jQuery || document.write('<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">\x3C/script>')
/ Require local jQuery if Google is down / is development env
:javascript
window.jQuery || document.write('<script src="#{asset_path('jquery.js')}">\x3C/script>')
Отсюда: https://gist.github.com/1543189
−121
1
−101
def type
return 'Anonymous' if self.builtin == BUILTIN_ANONYMOUS
return 'Non Member' if self.builtin == BUILTIN_NON_MEMBER
return 'Member' if self.builtin == BUILTIN_MEMBER
return 'User' if self.builtin == BUILTIN_USER
return 'Manager' if self.builtin == BUILTIN_MANAGER
return 'Architect' if self.builtin == BUILTIN_ARCHITECT
return 'Designer' if self.builtin == BUILTIN_DESIGNER
return 'Customer' if self.builtin == BUILTIN_CUSTOMER
return 'Vendor' if self.builtin == BUILTIN_VENDOR
return 'Dealer' if self.builtin == BUILTIN_DEALER
end
def require_name
return 'is_anonymous' if self.builtin == BUILTIN_ANONYMOUS
return 'is_non_member' if self.builtin == BUILTIN_NON_MEMBER
return 'is_member' if self.builtin == BUILTIN_MEMBER
return 'is_user' if self.builtin == BUILTIN_USER
return 'is_manager' if self.builtin == BUILTIN_MANAGER
return 'is_architect' if self.builtin == BUILTIN_ARCHITECT
return 'is_designer' if self.builtin == BUILTIN_DESIGNER
return 'is_customer' if self.builtin == BUILTIN_CUSTOMER
return 'is_vendor' if self.builtin == BUILTIN_VENDOR
return 'is_dealer' if self.builtin == BUILTIN_DEALER
end
еще ниже в модели
−99
# Return all the permissions that can be given to the role
def for_set_permissions
permissions = Abt::AccessControl.permissions
permissions = Abt::AccessControl.user_permissions if self.builtin == BUILTIN_USER
permissions = Abt::AccessControl.manager_permissions if self.builtin == BUILTIN_MANAGER
permissions = Abt::AccessControl.architect_permissions if self.builtin == BUILTIN_ARCHITECT
permissions = Abt::AccessControl.designer_permissions if self.builtin == BUILTIN_DESIGNER
permissions = Abt::AccessControl.customer_permissions if self.builtin == BUILTIN_CUSTOMER
permissions = Abt::AccessControl.vendor_permissions if self.builtin == BUILTIN_VENDOR
permissions = Abt::AccessControl.dealer_permissions if self.builtin == BUILTIN_DEALER
permissions - Abt::AccessControl.public_permissions
end
Сурово
−102
<div class="pane">
<% #Вывод материалов
if pms.size > 0 %>
<% for pm in pms do %>
<div class="mat">
<div><%= pm.name %></div>
<p>art. <%= pm.id %></p>
<%= image_tag pm.image.url(:small) %>
<%= link_to 'Выбрать +', '#' %>
</div>
<% end %>
<% end %>
</div>
ПМС =)
−103
class Person < ActiveRecord::Base
def self.current=(person)
@current_people = person
end
def self.current
@current_people
end
end
Определяют текущего пользователя в модели=)
−100
module ModelHelper
extend ActiveSupport::Concern
module InstanceMethods
def prepare_url
"http://#{Banjo::Application.config.short_url_host}"
end
def adjust_comment(text, url, max_len)
maximum_text_length = max_len - url.length - 1
if text.length > maximum_text_length
text = text[0, maximum_text_length - 3] + "..."
end
if url.present?
message = [text, url].join(' ')
else
message = text
end
message
end
def fullname_to_first_last_initial(fullname)
name_token = fullname.split(/ /)
last_initial = (name_token.length > 1) ? name_token.pop.first : nil
first = name_token.join(' ')
return (last_initial.nil?) ? first : "#{first} #{last_initial}"
end
end
module ClassMethods
def adjust_comment(text, url, max_len)
maximum_text_length = max_len - url.length - 1
if text.length > maximum_text_length
text = text[0, maximum_text_length - 3] + "..."
end
if url.present?
message = [text, url].join(' ')
else
message = text
end
message
end
def fullname_to_first_last_initial(fullname)
name_token = fullname.split(/ /)
last_initial = (name_token.length > 1) ? name_token.pop.first : nil
first = name_token.join(' ')
return (last_initial.nil?) ? first : "#{first} #{last_initial}"
end
end
end
DRY principle in action
−127
Папка, создаваемая USB Disk Antivirus в корне всех дисков предотвращает заражение компьютера через Autorun. Пожалуйста не изменяйте и не удаляйте ее.
Напомнило кое-что.