- 1
- 2
- 3
- 4
if (analysis.document? && analysis.update(name: params[:analysis][:name], description: params[:analysis][:description], anonymous: params[:analysis][:anonymous], dependency: analysis.dependency)) ||
(analysis.cloud_file_link.present? && analysis.update(name: params[:analysis][:name], description: params[:analysis][:description], anonymous: params[:analysis][:anonymous], dependency: analysis.dependency)) ||
(analysis.videolink.present? && analysis.update(name: params[:analysis][:name], description: params[:analysis][:description], videolink: params[:analysis][:videolink], anonymous: params[:analysis][:anonymous], dependency: analysis.dependency)) ||
analysis.update(name: params[:analysis][:name], description: params[:analysis][:description], hyperlink: params[:analysis][:hyperlink], anonymous: params[:analysis][:anonymous], dependency: analysis.dependency)
а вообще есть же ** блядь
а ты вкурсе же почему тут `:foo` ? Про символы и мутабельные (не фризанутые) строчки в руби знаешь?
символы это принудительное интернирование за счёт труда макаки-сизифа
какой бугор ))
но конечно они тут не адиноки. Знаешь атомы же?
юникс
https://tronche.com/gui/x/xlib/window-information/XInternAtom.html
виндавоз
https://learn.microsoft.com/en-us/windows/win32/dataxchg/about-atom-tables
> Знаешь атомы же?
Они возввращают один и тот же char*, чтобы не аллоцировать лишний раз память? Чтобы можно было развлекаться, переписывая NULL-терминатор?
У тебя существует некая глобальная таблица символов, и вот есть символ "foo", и он всегда уникален. Ты его всегда по имени получаешь.
У иксов (`XInternAtom`) такая таблица привязана к серверу (ну там диспле передают, это ключ к серверу типа DISPLAY=foo:0 Знаешь же).
У винды просто всё глобальное (`AddAtom("Foo")`)) (подрзреваю что на уровне worksta тоже, но не суть).
Вот у руби это две точечки. Еще вроде у JS символы есть
Они объяснили, как это легко читается и поддерживается, а потом дали нам это говно.