
Alexander
07.11.2016
14:31:39

Alex
07.11.2016
14:31:53
Есть кстати, только это не то про что я говорил.
https://ruby-doc.org/stdlib-1.8.7/libdoc/generator/rdoc/Generator.html
Это правда старые руби, может уже и нет

Tim
07.11.2016
14:32:09
Всем привет. А вот если нужно отдавать 404 и 500 странички (которые лежат в public) с I18n, то нужно создавать контроллер ?

Google

Alex
07.11.2016
14:32:38
А ты не боишься что i18n выдаст ошибку?

Anon
07.11.2016
14:33:08
Допустим, но в примере a.each_with_index.reduce(0) { |prev, (cur, i)| }от each_with_index идет cur и i
от reduce должен идти cur и prev, prev идет, куда второй cur девается?
Просто каждый итератор оборачивает эти аргументы и добавляет свои.

Tim
07.11.2016
14:34:16

Alex
07.11.2016
14:34:35
Нет
а то что шаблонизатор ошибку вернет не боишься?

Иван
07.11.2016
14:34:55

Alexander
07.11.2016
14:34:56

Alex
07.11.2016
14:35:03

Alexander
07.11.2016
14:35:08

Alex
07.11.2016
14:35:19
а nginx это уже не уровень приложения, это не моя забота.

Alexander
07.11.2016
14:35:22
а ssl? а сервер (ОС)?

Alex
07.11.2016
14:35:28
Тоже уже не моя забота.
Приложение может упасть попытавшись сформировать страничку о произошедшей ошибке.

Google

Alexander
07.11.2016
14:36:05
ок, я по-другому спрошу: с чего бы вдруг R18n или Tilt выдать ошибку?

Alex
07.11.2016
14:36:18
Например к i18n можно подключить базу
и брать переводы оттуда
и кешировать их еще.
Но это будет добавлено уже потом. И тут раз и произойдет подобная ошибка.

Tim
07.11.2016
14:37:33
Мне нужно просто чтобы страницы были на разных языках. Никаких запросов к БД не будет. Вопрос то другой был.

Alex
07.11.2016
14:37:43
Вот с того бы вдруг может R18n упасть.

Alexander
07.11.2016
14:37:57

Alex
07.11.2016
14:37:58
Ну я просто предупредил что приложение может упасть при формировании кастомной странички об ошибке.
да ты увидишь стектрейс если ты нью релик подключил например, но это будет уже после того как пользователь увидит ошибку

Alexander
07.11.2016
14:38:41
def make_dir(&block)
puts "Creating '#{@app_name}' directory..."
FileUtils.mkdir @app_name
FileUtils.cd @app_name, &block
end
пример, где yield неуместен

Alex
07.11.2016
14:39:31
Потому и существуют блоки.
у меня например функция cron_lock была, там тоже только блок нужен.

Alexander
07.11.2016
14:39:50

Alex
07.11.2016
14:40:02
переводчик например.

Alexander
07.11.2016
14:40:26

Alex
07.11.2016
14:40:40
Ну у тебя такую ошибку допустит переводчик случайно

Alexander
07.11.2016
14:40:42
если там будут даже пустые строки — ничего не упадёт

Google

Alexander
07.11.2016
14:40:50

Alex
07.11.2016
14:40:55
и ты потом уже узнаешь что "вот тут" может упасть и обработаешь эту ситуацию
Но ты изначально ее можешь не предусмотреть.

Alexander
07.11.2016
14:41:53
если ты в базу загоняешь переводы — у тебя же не только страницы с ошибками могут упасть при таком неаккуратном переводчике, а вообще что угодно.

Alex
07.11.2016
14:42:18
Суть то не в этом.
Суть в том что сначала ты делаешь страничку об ошибке динамической

Alexander
07.11.2016
14:42:28
плюс r18n делает просто подсветку при отсутствии перевода, нет?
тип красным ключи выводит

Alex
07.11.2016
14:42:40
а потом добавляешь какую то фичу которая может сломать генерацию странички.
а, так это гем

Alexander
07.11.2016
14:43:00
да не ломается она, в r18n это предусмотрено

Alexander
07.11.2016
14:43:07
правда хз как с базой, но думаю то же самое

Alex
07.11.2016
14:43:15
Это был просто пример ....

Alexander
07.11.2016
14:43:19
в Yaml нет ключа — вывод с подсветкой

Alex
07.11.2016
14:44:11

Alexander
07.11.2016
14:44:37

Alex
07.11.2016
14:44:57
Совет не относился к твоему гему вообще никак.

Alexander
07.11.2016
14:45:44
это не мой гем — раз
вопрос относился к нему, а твои советы к вопросу — два

Google

Alex
07.11.2016
14:46:13
Совет относился к тому что страничка об ошибке может упасть

Alexander
07.11.2016
14:46:40

Alex
07.11.2016
14:47:15

Anon
07.11.2016
14:47:54
1.
[1,2,3].each_with_index.reduce(0) { |a,b| puts "#{a} - #{b}" }Первая итерация
0 - [1, 0]2.
[1,2,3].each_with_index.reduce(0) { |a,b,c| puts "#{a} - #{b} - #{c}" } Первая итерация
0 - [1, 0] -Т.е. в C ничего не передается
3.
[1,2,3].each_with_index.reduce(0) { |a,b,(c,d)| puts "#{a} - #{b} - #{c} - #{d}" }
Первая итерация
```0 - [1, 0] - -Значит тоже в аргументы в скобках ничего не передается
и только:
4.
[1,2,3].each_with_index.reduce(0) { |a,(b,c)| puts "#{a} - #{b} - #{c}" }Первая итерация
0 - 1 - 0Дает желаемый результат.

Alexander
07.11.2016
14:48:16

Alex
07.11.2016
14:48:55
ты правда сути не понял или притворяешься?

Admin
ERROR: S client not available

Anon
07.11.2016
14:49:30
Разметку потерял

Alexander
07.11.2016
14:49:50
ты правда сути не понял или притворяешься?
понял. ты боишься, что упадёт. не падает. человек видит страницу с ошибкой. некрасивую. но видит и ничего не падает. некрасивая — косяк переводчика. не твоего приложения.

Alex
07.11.2016
14:50:06
> не падает
Пока не внедришь фичу после которой начнет падать

Alexander
07.11.2016
14:50:19
nginx — не твоя забота? ну так и содержание БД — не твоя забота

Alex
07.11.2016
14:50:37
С чего бы это?

I
07.11.2016
14:50:50
согласен
для этого есть devops те же

Alexander
07.11.2016
14:51:11
а обработка отсутствующих данных на твоей совести, и она уже реализована в геме, без которого работать с переводами странно. работаешь без него — заботься сам

Иван
07.11.2016
14:51:44
1.
[1,2,3].each_with_index.reduce(0) { |a,b| puts "#{a} - #{b}" }Первая итерация
0 - [1, 0]2.
[1,2,3].each_with_index.reduce(0) { |a,b,c| puts "#{a} - #{b} - #{c}" } Первая итерация
0 - [1, 0] -Т.е. в C ничего не передается
3.
[1,2,3].each_with_index.reduce(0) { |a,b,(c,d)| puts "#{a} - #{b} - #{c} - #{d}" }
Первая итерация
```0 - [1, 0] - -Значит тоже в аргументы в скобках ничего не передается
и только:
4.
[1,2,3].each_with_index.reduce(0) { |a,(b,c)| puts "#{a} - #{b} - #{c}" }Первая итерация
0 - 1 - 0Дает желаемый результат.
мне кажется легче в соседний чат это вкинуть ибо тут своя атмосфера

Anon
07.11.2016
14:52:04
Дай ссылку

Alex
07.11.2016
14:53:16

Google

Alex
07.11.2016
14:53:26
Ты прицепился к этим переводам как будто бы это именно суть моей боязни.
Ты можешь наговнокодить контроллер который будет эти ошибки рисовать, унаследоваться от ApplicationController и допустить еще кучку ошибок при которых произойдет ошибка генерации страницы ошибки.
Суть вообще не в переводах, но ты к ним аппелируешь как будто бы это и есть проблема.

Alexander
07.11.2016
14:54:09

Alex
07.11.2016
14:54:40
Ну по сути вопрос был про кастомную страничку обработки этих ошибок
а переводы это частная задача.

Alexander
07.11.2016
14:56:41
ответ для переводимой статики: http://stackoverflow.com/a/13308853/2630849

Alex
07.11.2016
14:57:16
Крутое решение!

Alexander
07.11.2016
14:57:31

Alex
07.11.2016
14:58:00
Если нет, то это идея для гема.

Tim
07.11.2016
14:59:00
http://guides.rubyonrails.org/i18n.html пункт 3.6 еще не проверял

Alex
07.11.2016
16:05:49
@AlexWayfer r18n прикольный.

Alexander
07.11.2016
16:07:06

Alex
07.11.2016
16:07:31
я стандартный рельсовый к бд подключал, так себе вариант.

Alexander
07.11.2016
16:08:07

Alex
07.11.2016
16:08:20
чисто технически это гем.
но в целом просто подсистема рельсы.

Alexander
07.11.2016
16:09:20
чисто технически это гем.
ну вот r18n — другой гем, который юзает i18n, но при этом даёт более удобный и гибкий интерфейс. хотя есть у меня претензии (почему to_hash, блеадь, а не to_h?!), но в целом норм

Alex
07.11.2016
16:09:43
> почему to_hash, блеадь, а не to_h?!
Может их monkey patch бесит.

Alexander
07.11.2016
16:09:56

Lupsick
07.11.2016
16:10:08
https://github.com/jalkoby/squasher