
Кирилл
26.09.2018
11:10:41
так часто и пишут, вполне нормально выглядит

Максим
26.09.2018
11:10:46
вроде многим такая конструкция тоже не всем нравится

Кирилл
26.09.2018
11:12:11
https://github.com/airbnb/ruby#nested-conditionals

Максим
26.09.2018
11:13:48
ну здесь видишь ретёрн всё равно как бы после действия

Google

Максим
26.09.2018
11:14:09
я именно о тех случаях говорил что "вроде не всем нравистя" когда ретёрн перед действием

Anton
26.09.2018
11:14:11

Максим
26.09.2018
11:14:37
давот это тоже вроде ответ вполне
хотя
если кондишн фолс
а код тру
то мне то надо чтоб тру вернулось
а это вроде фолс вернёт тогде не?

Кирилл
26.09.2018
11:15:18
Так тебе нужно после выполнения кода вернуть true, а не результат выполнения кода?

Максим
26.09.2018
11:15:35
результат

Кирилл
26.09.2018
11:15:47

Максим
26.09.2018
11:15:54
ну если код тру
типа то что сделал код вернуло тру

Google

Anton
26.09.2018
11:16:11
что тебе вообще сделать надо?
не вернуть, а именно сделать

Максим
26.09.2018
11:17:03
ну у меня короче так
проверяется есть ли ключ в хеше, если есть то проверяется значение лемента по этому ключу, типа подходил ли оно под условие, если же ключа нет в хеше то сразу возвращаем фолс

Кирилл
26.09.2018
11:17:09

Максим
26.09.2018
11:17:20
у меня ща так
if STATUS_AND_FORM_KEY_TO_DISABLE.key?(status)
STATUS_AND_FORM_KEY_TO_DISABLE[status].include?(form_key)
else
false
end
но я думаю что можно лучше

Anton
26.09.2018
11:17:38
я часто делаю, только без !!
STATUS_AND_FORM_KEY_TO_DISABLE.key?(status) && TATUS_AND_FORM_KEY_TO_DISABLE[status].include?(form_key)

Кирилл
26.09.2018
11:18:19

Anton
26.09.2018
11:18:26
ну или совсем тупо
if STATUS_AND_FORM_KEY_TO_DISABLE.key?(status)
STATUS_AND_FORM_KEY_TO_DISABLE[status].include?(form_key)
end
а

Максим
26.09.2018
11:18:47

Anton
26.09.2018
11:18:48
не смотри на варинат выше

Максим
26.09.2018
11:19:02
да вот мне тоже тот вариант понравился
спасибо

Anton
26.09.2018
11:19:07
что в статусе возвращаться должно?
массив?

Максим
26.09.2018
11:19:31

Anton
26.09.2018
11:19:31
nil

Google

Максим
26.09.2018
11:19:42

Anton
26.09.2018
11:19:44
да
STATUS_AND_FORM_KEY_TO_DISABLE.fetch(status, []).include?(form_key)

Максим
26.09.2018
11:19:55
ооооо
охуенно
спасибо

Anton
26.09.2018
11:20:19
обращайся

Кирилл
26.09.2018
11:20:47
nil
в смысле? там же условный оператор, с чего там nil-то?

Anton
26.09.2018
11:21:58

Максим
26.09.2018
11:22:30
ой ребят ещё вопрос

Кирилл
26.09.2018
11:22:46
аа, тьфу, это ж условие, сорян) я про следующий код и забыл вовсе)

Anton
26.09.2018
11:22:53

Максим
26.09.2018
11:22:56
вот мы когда пишем о том что мол такой то метод экземпяра в таком то классе, то используем такую нотацию Class#method

Anton
26.09.2018
11:22:59
бывает такое, сам часто ебусь

Максим
26.09.2018
11:23:07
а есть какая нотация чтоб показать что типа метод приватный?

Tim
26.09.2018
11:23:15
и признак того что надо обмазаться дополнительным классом

Максим
26.09.2018
11:23:35

Tim
26.09.2018
11:23:43
в котором и будет твоя логика

Lupsick
26.09.2018
12:02:31

Google

Tim
26.09.2018
12:03:36
ааааааа

Anton
26.09.2018
12:04:31

Lupsick
26.09.2018
12:04:42
вполне норм
ну можно .dig(status)
не читаемо из-за названия константы

Anton
26.09.2018
12:05:05
ну смотри, вместо вызова 2ух методов, ты вызываешь 4

Lupsick
26.09.2018
12:05:17
2 метода
или ты имеешь в виду безопасный вызов?

Anton
26.09.2018
12:05:43
STATUSES&.[](status)&.include?(form_key)
STATUSES.fetch(status, []).include?(form_key)
ага

Lupsick
26.09.2018
12:05:55
ну твой вариант тоже ок

Anton
26.09.2018
12:06:16
ну типо вот это совсем боль
&.[](status)

Lupsick
26.09.2018
12:06:19
я пишу через безопасный вызов мне ок

Anton
26.09.2018
12:06:44
можно было сделать даже проще, вот так
STATUSES[status]&.include?(form_key)

Tim
26.09.2018
12:06:51
всё боль
если в названии переменной больше чем существительное(+прилагательное), то в ней слишком много логики
и что их связывает и какой смысл и как используется

Google

Nikita
26.09.2018
12:13:49

Lupsick
26.09.2018
12:18:55

Tim
26.09.2018
12:20:02
class Status
def initialize(form_keys)
@form_keys = form_keys
end
def form_key?(form_key)
@form_keys.include?(form_key)
end
end
class Statuses
def initialize(status_and_form_key_hash)
@statuses = status_and_form_key_hash.map { |k, v| [k, Status.new(v)] }.to_h
end
# naming of this method is debatable
def include?(status_name, form_key)
@statuses[status_name]&.include?(form_key)
end
end
to_delete = Statuses.new(STATUS_AND_FORM_KEY_TO_DELETE)
to_delete.include?(status, form_key)
разрешаю обоссать данный код
(если сможете)

Lupsick
26.09.2018
12:21:05

Dima
26.09.2018
12:21:17
@statuses[status_name]&.include?(form_key) а вот это вообще работает?

Anton
26.09.2018
12:21:31

Dima
26.09.2018
12:21:31
аперсант зачем?

Tim
26.09.2018
12:21:34
чому бы нет?

Alex
26.09.2018
12:21:41

Anton
26.09.2018
12:21:51
что бы не писать
@statuses[status_name] && @statuses[status_name].include?(form_key)

Dima
26.09.2018
12:22:01

Tim
26.09.2018
12:22:04
a&.b(c) тождественно a && a.b(c)

Dima
26.09.2018
12:22:14

Alex
26.09.2018
12:22:36