
yopp
15.11.2016
12:42:51
https://repl.it/EY2Y/2
да, я был не прав, у классов синглтон аллоцируется сразу
у объектов on demand

Google

yopp
15.11.2016
12:43:38
тьфу
потому что это не настоящий класс :)
вон, T_CLASS увеличилось

Иван
15.11.2016
12:44:16
вижу, но попробуй вот так -
require 'objspace'
puts "Before", ObjectSpace.each_object(Class).count
a = Class.new
puts "Before", ObjectSpace.each_object(Class).count
а потом вот так
require 'objspace'
puts "Before", ObjectSpace.each_object(Class).count
a = Class.new
class « a; end
puts "Before", ObjectSpace.each_object(Class).count
что это за херня?

yopp
15.11.2016
12:46:01
это детали реализации уже
точнее это оптимизации
дело в том, что синглтон класс, когда он пустой, нафиг не нужен
он занимает место и всё
для того чтоб на каждый объект не делать по два объекта, есть ряд ухищрений, первое заключается в том, что синглтон класс как-бы есть, но он реально выделяется только когда к нему пользователь пытается обратится
что не всегда инстинно, как видно с анонимными классами

Иван
15.11.2016
12:48:32
так он и в в случае создания руками пустой, но тем не менее появляется

Google

Иван
15.11.2016
12:48:49
ладно бы если я метод для обхекта определил и только тогда он появлился
тогда бы я тоже подумал, что реализация такая у ObjectSpace
короче странная херня

yopp
15.11.2016
12:49:48
ObjectSpace это вообще хак, не надо на него надеятся
each_object не надёжный
можно более менее верить count_objects

Иван
15.11.2016
12:50:28
ок, буду знать

yopp
15.11.2016
12:50:55
смотри, если бы на каждый объект выделялось по синглтону, то мы бы увидели это вот в таком случае
https://repl.it/EY2Y/3
T_CLASS не изменился
а вот теперь сделаем ещё и вот так
https://repl.it/EY2Y/4
выделилось 3 класса, хотя мы просто обратились

Иван
15.11.2016
12:53:40
ну в первом случае логично, так как у обычных объектов при инциализации не создается синглтон класса, я проверял в исходниках
а метод singleton_class создает синглтон класс объекта, если его не существет

yopp
15.11.2016
12:54:24
ну я уже устал говорить что класс это не такой объект, как все остальные
не только метод создаёт
https://repl.it/EY2Y/5
любое к нему обращение
с классами да, ты прав, выделяется по-умолчанию

Google

yopp
15.11.2016
12:56:18
но это опять-же, детали реализации, для разработчика нужно считать что он есть всегда
у любого объекта (ха-ха, но на самом деле далеко не у любого)

Иван
15.11.2016
12:56:43
конечно не только, просто метод так реализован
всё, предлагаю эту тему закрыть, я в чем хотел уже разобрался, а других я думаю эта тема уже напрягает

yopp
15.11.2016
12:57:22
ты для того чтоб окончательно закрыть тему, нарисуй для себя диаграму поиска методов
потому что ты сделал, как мне кажется, не полностью корректные выводы

Иван
15.11.2016
12:57:54
я её и так понимаю
и понимал до этого

yopp
15.11.2016
13:00:16
тогда я не понимаю почему у тебя возникает вопрос почему A::foo доступен в B::foo, когда B <A

Иван
15.11.2016
13:01:19
потому что я не понимал как мы попадаем в синглтон класс B
а точнее не понимал в какой момент он создается

yopp
15.11.2016
13:02:18
когда он создаётся — не важно

yopp
15.11.2016
13:02:21
важно что он есть всегда :)

Иван
15.11.2016
13:05:17
когда он создаётся — не важно
ну как не важно? я считал что его у меня нет и если посмотреть на какой класс сылается объект B и пойти по цепочке суперклассов, то в синглтон A мы никак не попадали, поэтому и возникал вопрос - а когда у нас этот синглтон создается

yopp
15.11.2016
13:05:57
ты когда про синглтоны читал пропустил важную вещь про синглтон классы: они есть всегда у любого объекта
и полез в детали реализации

Aldar
15.11.2016
13:22:51
а еще говорят что руби простой язык

Pavel
15.11.2016
13:22:55
Может быть кто нибудь знает, готовое решение для доски объявлений. Или что смотреть хотя-бы?

I
15.11.2016
13:24:21
rails g... ?)

Andrey
15.11.2016
13:30:04

Google

Pavel
15.11.2016
13:32:29

I
15.11.2016
13:32:47
кек

Andrey
15.11.2016
13:34:54
Кинь ссылку пожалуйста
это шутка юмора была. На столько деталезированные решения ни кто не делает, темоблее для тиражирования.
Есть гем авторизации/аунтификации, есть гем для работы с картинками, есть гем для админки и тд.

Pavel
15.11.2016
13:36:07
А понятно спасибо большое!

Alexander
15.11.2016
13:40:05
А есть у кого примеры интересных тестовых заданий на ~1 час для рельс? Что-нибудь про работу с базой (из разряда древовидных структур), стронг парамсы (типа приёма массивов и вложенных структур). Рассчитанное на уровень джуниор с ~ годом лайтового опыта работы

I
15.11.2016
13:41:35
ну вот тебе идея такая - сделай мне блог, где можно постить комменты к самим записям и к другим комментам и сделай это отображаемым нормально
пойдет тебе?)

Антон
15.11.2016
13:43:55
лайтовые nested_sets

Admin
ERROR: S client not available

I
15.11.2016
13:44:34
ну да, а там еще надо придумать, как лучше формочку вызывать/хранить)
ну да, тогда можешь сделать порносайт для фоточек через карриервейв с категориями

Andrey
15.11.2016
13:45:22

I
15.11.2016
13:45:24
вроде на час)

Антон
15.11.2016
13:46:16
ну вообще да, как же это я так?
старею

I
15.11.2016
13:46:48
можно дать написать формочку для отправки email'ов!

Andrey
15.11.2016
13:46:48
Тесты на усмотрение выполняющего)

I
15.11.2016
13:46:53
и чтобы были тесты
without ar

Google

I
15.11.2016
13:47:16
хотя это сомнительно для джунов

yopp
15.11.2016
14:11:20
слушайте, а вы знаете как в padrino починить autoreload?
для классов
оно ломается на наследовании

I
15.11.2016
14:11:39
а он там есть вообще?

yopp
15.11.2016
14:11:47
да, к сожалению есть, но не работает
приходится постоянно сервак прибивать

I
15.11.2016
14:11:56
а чем аргументирует?

yopp
15.11.2016
14:11:58
19 век какой-то

I
15.11.2016
14:12:07
ну да, это мне напоминает работу на синатре)

yopp
15.11.2016
14:12:12
аргументирует тем, что не находит нужные классы

I
15.11.2016
14:12:22
может, реально не находит

yopp
15.11.2016
14:12:39
нет, это бага в автолоадере
я вношу изменение в родительский класс и он перестаёт находить рандомный дочерний класс

I
15.11.2016
14:13:34
ммм
круто

yopp
15.11.2016
14:14:07
ну и обновление в классе оно ловит тоже через раз

I
15.11.2016
14:14:23
а как у него вообще ловится?

yopp
15.11.2016
14:14:31
не знаю, не смотрел
мне вот интересно, рельсу пятную можно как-то получить без nokogiri?