@codenamecrud

Страница 562 из 1009
Combot
06.04.2017
19:13:22
combot.org/chat/-1001033680683

Denis
06.04.2017
19:17:32
Ооп в примерах?!

Vlad
06.04.2017
21:56:06
Время охуительных историй: [3] pry(#<Hash>)> v.class => Hash [4] pry(#<Hash>)> v.is_a?(Hash) => false [5] pry(#<Hash>)> v.kind_of?(Hash) => false [6] pry(#<Hash>)>

Все потому, что module lookup

Google
Vlad
06.04.2017
22:01:43
::Hash - вот так вот надо не забывать

Vlad
06.04.2017
22:14:22
Рельсы?
module Refinements module Hash module Path refine ::Hash do def path(value) self.inject(nil) do |path, (k, v)| if v.is_a?(::Hash) _k = v.path(value) (path ||= []) << [k, _k] if _k else break k if v == value end path&.flatten end end end end end end

Vlad
06.04.2017
22:15:31
Не очень совет. Неймспейс-то другой

Alexander
06.04.2017
22:16:02
Из своего опыта: сначала называл HashExt, а потом перешёл на смысловые названия: Blank, Symbolize и подобное

Никто не запрещает в одном модуле делать несколько рефайнов

А using становится понятнее и нагляднее

Vlad
06.04.2017
22:18:14
Я нихрена не понял, извините

Что не так в моём коде? Мне удобно рассовать все по папочкам и использовать using Refinements::Hash::Path

Danila
06.04.2017
23:03:20
> парни, смотрите, я жру землю, а она чёт скрипит на зубах > зачем ты это делаешь, просто не жри землю > просто люблю вкус земли

Nomaniba
07.04.2017
01:21:09
Но там же не земля была

Google
Roman
07.04.2017
07:35:35
непонятно чего ты взбудоражился

рельсы ни при чем, это типичный кейс констант лукапа в руби

когда ты Hash внутри вызываешь

константы ищутся по порядку вхождения в Module.nesting в месте вызова константы

а там будет

[Refinements::Hash::Path, Refinements::Hash, Refinements]

к каждому он добавляет искомую константу

то есть поиск будет выглядеть так

Vasiliy
07.04.2017
07:37:46
кстати переопределять поведение стандартных классов вроде как плохая практика

Roman
07.04.2017
07:37:48
Refinements::Hash::Path::Hash (нету такого), Refinements::Hash::Hash (тоже пусто), Refinements::Hash (нашли, вернули)

Vasiliy
07.04.2017
07:37:58
ну и называть свои классы как стандартные

Roman
07.04.2017
07:38:04
так что никакой магии тут нет

ну в данном случае модуль так назвать ниче страшного

Alexander
07.04.2017
07:38:18
непонятно чего ты взбудоражился
ты к кому обращался-то?)

Roman
07.04.2017
07:38:23
прост надо понимать как работает поиск констант

Alexander
07.04.2017
07:38:25
юзайте реплаи, а то нифига непонятно

Roman
07.04.2017
07:38:48
ну там сверху удивляются что надо ::Hash писать

окей

Alexander
07.04.2017
07:39:10
ну там сверху удивляются что надо ::Hash писать
ну просто рельсы-то кто упоминал? и кто взбудоражился?

Roman
07.04.2017
07:39:34
охуительные истории кто то упомянул даже

Google
Alexander
07.04.2017
07:39:37
прост надо понимать как работает поиск констант
он иногда, кстати, очень так себе работает

Roman
07.04.2017
07:39:40
собственно ОП и упомянул

нормально он работает

давай кейс тогда

Alexander
07.04.2017
07:39:57
нормально он работает
ща примерчик тебе будет, да

Roman
07.04.2017
07:40:18
там алгоритм же максимально простой

Nikolay
07.04.2017
07:40:56
давай кейс тогда
http://stem.ps/rails/2015/01/25/ruby-gotcha-toplevel-constant-referenced-by.html

Alexander
07.04.2017
07:41:41
class UsersController; end module Admin; end Admin.const_get('Admin::UsersController')

=> UsersController

Вот где mess начинается

Я как-то раз проебался так

Часа четыре дебажил

Alexander
07.04.2017
07:41:41
Пока опечатку не нашел

и у меня было что-то типа module Admin class UsresController; end end

И я 4 часа не мог понять какого хера мне обычную страницу показывает

Vasiliy
07.04.2017
07:44:12
вот за этим нужен рубимайн

Alexander
07.04.2017
07:45:29
вот за этим нужен рубимайн
чего сразу не "глаза", "внимательность"?

Vasiliy
07.04.2017
07:46:01
пушто глаза не подсвечивают грамматические ошибки

глаза вообще не подсвечивают ничего

Alexander
07.04.2017
07:46:52
зато замечают, не?

Google
Alexander
07.04.2017
07:47:10
зачем подсветка, если глаза будут замечать?

Roman
07.04.2017
07:47:26
интересно кстати зачем так было сделано

было бы конечно более однообразно если б такой вызов бросал ту же ошибку что и обычный референс несуществующей константы

Vasiliy
07.04.2017
07:48:40
затем что если есть инструмент который помогает при ошибках то почему бы не пользоваться им?

Nikolay
07.04.2017
07:49:37
интересно кстати зачем так было сделано
Прочитай пост, который я скинул, там объясняется почему так работает

Admin
ERROR: S client not available

Alexander
07.04.2017
07:49:52
затем что если есть инструмент который помогает при ошибках то почему бы не пользоваться им?
ты же в курсе, что рубимайн — не инструмент для подсветки? выражайся более корректно, хотя бы. это помимо того, что обсуждался констант лукап, а ты тянешь сюда обходные пути решения проблемы.

Nikolay
07.04.2017
07:50:01
When you write Foo::Bar in Ruby, it does not mean Bar within namespace Foo, but rather Bar as “seen” from Foo

Roman
07.04.2017
07:50:30
там написано почему а не зачем

но кстати и это объяснение похоже на булшит

Alexander
07.04.2017
07:52:13
When you write Foo::Bar in Ruby, it does not mean Bar within namespace Foo, but rather Bar as “seen” from Foo
нужно отличать, условно, Object.const_get('Foo::Bar') и Foo.const_get('Bar') второе пусть ищет, как описано но первое…

Vasiliy
07.04.2017
07:53:40
ты же в курсе, что рубимайн — не инструмент для подсветки? выражайся более корректно, хотя бы. это помимо того, что обсуждался констант лукап, а ты тянешь сюда обходные пути решения проблемы.
у тя был кейс с опечаткой, я написал что рубимайн помогает в этом случае, ты чет начал затирать про глаза и внимательность(которые в этом случае дали осечку) при чем тут инструмент для чего? Я лишь поделился тем что рубимайн даёт ещё один плюс в своём использовании

Roman
07.04.2017
07:56:35
странно это потому, что в руби в остальных случаях работает в общем очень стройная модель поиска констант

и вопрос в том зачем им понадобилось в этом случае от нее отходить

https://cirw.in/blog/constant-lookup.html здесь эта модель подробно описана

но вот этого квирка там нет

Alexander
07.04.2017
08:03:29
но вот этого квирка там нет
может и баг ¯\_(ツ)_/¯

Aleserche
07.04.2017
10:11:23
какие системы управления проектами используете?

I
07.04.2017
10:12:17
штрафную :D

Google
Rustam
07.04.2017
10:16:10
кто нибудь использует хук post-receive? чет он у меня не запускается по пушу

Шамиль
07.04.2017
13:57:20
/stat@combot

Combot
07.04.2017
13:57:21
combot.org/chat/-1001033680683

Шамиль
07.04.2017
13:57:22
/stat@combot

Combot
07.04.2017
13:57:23
combot.org/chat/-1001033680683

Ivan
07.04.2017
14:07:12


Alex
07.04.2017
14:07:55
это где и о чем?

Ivan
07.04.2017
14:08:09
https://twitter.com/search?q=Стокгольме&src=tren

Alex
07.04.2017
14:08:30
ухты, фигасе.

Dimon
07.04.2017
14:09:05
давно говорю, что рад муслимы не должны жить на этой планете

иншалла

Roman
07.04.2017
16:25:22
слышьте ваххабиты

такая ситуация

нужно в тестах застабить реквест к стороннему сервису, который возвращает файлик бинарный

в коде это выглядит как open(URL) #=> File:/path/to/downloaded/file

если делать вебмоком stub_request(:any, URL).to_return(body: File.new('some/fixture/file'), status: 200)

он возвращает StringIO вместо файла

чет ниче в голову не приходит как это обойти

Страница 562 из 1009