@rubylang

Страница 208 из 1684
ojab
15.07.2016
14:49:14
rubocop -a

и указать какой cop юзать

Aldar
15.07.2016
14:50:03
кстати да, или rubocop.yml отредактировать

Nikolay
15.07.2016
14:50:47
посоны, кстати, насчет экранирования все таки. (" ? ", some) vs "#{some}"

Google
Nikolay
15.07.2016
14:50:59
что лучше и почему?

Stanislav
15.07.2016
14:51:43
через ? очевидно же

Nikolay
15.07.2016
14:51:57
чем? проще писать?

yopp
15.07.2016
14:52:17
#{} это не экранирование, это интерполяция

Stanislav
15.07.2016
14:52:49
а рельса при наличии плейсхолдеров ? санитайзит параметры

Nikolay
15.07.2016
14:53:03
окак. т.е это таки РАЗНЫЕ вещи?

Stanislav
15.07.2016
14:53:17
да

Aldar
15.07.2016
14:53:43
? придуман от sql injection

Nikolay
15.07.2016
14:53:58
тоесть одно впиливается в строку как есть, второе чистится от говна и тоже влетает в строку?

и интерполяцией я sql не защищу, получается

yopp
15.07.2016
14:55:23
” a + #{foo}” это просто синтаксический сахар к “a + ” << foo.to_s

Nikolay
15.07.2016
14:56:15
ххм @article = policy_scope(Article).find_by(id: "?", params[:id])

получается так

Google
yopp
15.07.2016
14:56:30
нет

тут ничего делать не надо

это касается только мест где ты собираешь сырой sql

потом оно так и не сработает

Danila
15.07.2016
14:56:56
интерполяция строк это синтаксический сахар к конкатенации?

ооок

Aldar
15.07.2016
14:57:09
не, конкатенация дольше

yopp
15.07.2016
14:57:11
ооок
вообще, да, посмотри байткод

Danila
15.07.2016
14:57:17
кек

Nikolay
15.07.2016
14:57:33
не, так это у меня в set_article в его поиске по /article/"drop table"

Danila
15.07.2016
14:58:27
в рантайме виртуальной машины смотреть байткод то?

Nikolay
15.07.2016
14:58:37
в before_action set_article, only [:edit, :new]

ojab
15.07.2016
14:58:39
не, так это у меня в set_article в его поиске по /article/"drop table"
нет, `where`/`find`/и прочее при указании параметров хешем всё само экранирует

Aldar
15.07.2016
14:58:41
str1 + str2 + str3 это ж дольше, чем "#{str1}#{str2}#{str3}"

Aldar
15.07.2016
14:59:34
потому в первом случае руби возвращает str1+ str2, потом добавляет к этому str3 и возвращает

Danila
15.07.2016
14:59:42
спасибо, бать

Nikolay
15.07.2016
14:59:46
нет, `where`/`find`/и прочее при указании параметров хешем всё само экранирует
тоесть я могу не морочиться и оставить как есть, и мой типа патчик на введение экранирования в дефолтный генератор и set_model ... before ... получается не нужен?

Danila
15.07.2016
14:59:48
пиши ещё

yopp
15.07.2016
14:59:59
RubyVM::InstructionSequence.dissam

Google
Nikolay
15.07.2016
15:00:43
отетот вот - policy_scope(Article).find_by("id: ?", params[:id])

ojab
15.07.2016
15:01:11
policy_scope(Article).find_by(id: params[:id])

и всё будет ок

yopp
15.07.2016
15:01:59
https://v1.std3.ru/4a/60/1462382038-4a603f3dda3d1038951332d7f1c84131.png https://v1.std3.ru/c7/5b/1462382038-c75bd3ab629436bd4999b077857ca211.png

Nikolay
15.07.2016
15:02:09
да откуда эта херь влетает то

ojab
15.07.2016
15:03:49
https://gist.github.com/ojab/b2cadf2b30ad18f74f959c2ff252e581

yopp
15.07.2016
15:04:39
ой, блядь

этот срач

нет, не хочу

твой бенчмарк говно, бтв

ojab
15.07.2016
15:05:00
чойто?

yopp
15.07.2016
15:05:04
https://www.refheap.com/118673

потому что ты там не учитываешь три миллиона вещей

ojab
15.07.2016
15:05:41
например?

yopp
15.07.2016
15:06:00
размер строки, например

вон смотри выше

ojab
15.07.2016
15:06:26
https://www.refheap.com/118673
тут даже строки не заморожены

yopp
15.07.2016
15:06:27
там рассово верный бенчмарк

ojab
15.07.2016
15:06:37
о чём дальше можно говорить?

Google
yopp
15.07.2016
15:06:43
лол

ojab
15.07.2016
15:06:47
COUNT.times

yopp
15.07.2016
15:06:49
о реальной производительности

да-да

можешь на ips переписать

там форк есть

будет ещё более рассово верно

Aldar
15.07.2016
15:07:35
замораживать строки это нечестно

Admin
ERROR: S client not available

ojab
15.07.2016
15:09:38
а, строки заморожены, да

чото я проглядел

Nikolay
15.07.2016
15:09:45
блин. хочу layout в зависимости от логина запилить, а мне "undefined method `user_signed_in?' for ApplicationController:Class"

Nikolay
15.07.2016
15:11:11
угу

yopp
15.07.2016
15:11:32
кстати охуительная задача, динамически _объявить_ в биндиге lvar

без eval

(можно и eval)

Алиф
15.07.2016
15:11:38
did u restart ur server ?

Aldar
15.07.2016
15:11:39
для этого в джабе придумали стрингбилдер

yopp
15.07.2016
15:11:54
так чтоб оно ниже по скопу было доступно

Google
yopp
15.07.2016
15:11:58
у меня сходу не получилось

ojab
15.07.2016
15:12:30
угу
сделай layout devise.html.что-либо и devise его заюзает для незалогиненных

Aldar
15.07.2016
15:13:05
lvar это что

local variable?

ojab
15.07.2016
15:13:14
там рассово верный бенчмарк
так это, что в нём расово верного окромя размера строк?

yopp
15.07.2016
15:14:00
количество операндов например

ojab
15.07.2016
15:14:37
эт как
app/views/layouts/devise.html.erb

yopp
15.07.2016
15:14:44
размер строки, операнды, работа с lvar

потому что константу ещё резолвить надо

Nikolay
15.07.2016
15:15:06
layout 'guest' unless user_signed_in?

yopp
15.07.2016
15:15:14
а lvar резолвить не надо, вот он в биндинге прямо лежит

ojab
15.07.2016
15:15:46
layout 'guest' unless user_signed_in?
оно само подхватит

Aldar
15.07.2016
15:16:44
зачем вы в бенчмарке строки фризите7

Nikolay
15.07.2016
15:16:50
оно само подхватит
оно метод найти не может

какой подхватит

undefined method `user_signed_in?' for ApplicationController:Class

yopp
15.07.2016
15:17:23
зачем вы в бенчмарке строки фризите7
чтоб время аллокации не мерять

ojab
15.07.2016
15:17:56
оно метод найти не может
убери нафиг это из ApplicationController'a и сделай app/views/layouts/devise.html.erb, devise будет показывать страницы в этом layout'e для незалогиненных пользователей

Страница 208 из 1684