@rubyschool

Страница 654 из 921
Oleg
05.05.2018
17:40:11
У меня его нет) у меня есть планшет, который пока закрывает мои потребности. А дарвин мне просто приглянулся на Яндекс маркете. По совокупности +, главный из которых - это всеядность форматов книг.

Sergei
05.05.2018
18:42:23
привет рубисты! если при установке сертификатов словил такую ошибку-a cacert.pem bundle could not be downloaded- это не страшно и можно забить? или надо паниковать и искать причину?

Google
Sergei
05.05.2018
20:00:09
Если не напрягает, забей
Спс за оперативный ответ, Роман

Владимир
05.05.2018
20:11:16
Доброе утро! Подскажите, пожалуйста: есть класс Order require 'date' class Order attr_accessor :book, :reader, :date def initialize(book, reader, date = DateTime.now) @book = book @reader = reader @date = DateTime.now.strftime("%d/%m/%Y %H:/%M") end end в классе Library у меня есть массив @orders = [] в него я закидываю все экземпляры класса Order но в некоторых order могут совпадать @book и @reader, например: order4 = Order.new("The Caves of Steel", "Tony Stark") order5 = Order.new("The Caves of Steel", "Tony Stark") order6 = Order.new("I, Robot", "Tony Stark") order7 = Order.new("The Stars, Like Dust", "Chewbacca") order8 = Order.new("The Old Man and the Sea", "Tony Stark") order9 = Order.new("The Old Man and the Sea", "Jack Daniels") order10 = Order.new("The Old Man and the Sea", "Jack Daniels") а необходимо посчитать количество уникальных @reader для каждой книги перепробовал кучу вариантов, но что-то упускаю... так только количество каждого reader в массиве: d = Hash.new(0) @orders.each do |v| d[v.reader] += 1 end так только уникальных reader посчитает, а это 3 всего, а не для каждой книги d = Array.new d = @orders.map{|o| o.book == o.book ? o.reader : nil }.compact.uniq.count так выводит количество заказов трёх книг, которые чаще всего брали(но одну книгу может несколько раз взять один и тот же reader??‍♂️) @orders.map(&:book).frequency.sort_by(&:last).last(3) Но посчитать количество уникальных @reader для каждой книги не получается((
Нашёл решение, вдруг кому-то да пригодится) @orders.group_by(&:book).map{|i, o| [i, o.map(&:reader).uniq.count] }.to_h

Igor
05.05.2018
21:56:36
Кто нибуть может объяснить код на стр. вверху

http://bookre.org/reader?file=598200&pg=80

Alex
05.05.2018
21:57:29
метапрограммирование в определении метода button_pressed ?

Igor
05.05.2018
21:57:46
Особенно хотелось бы понять что означает @action.call(self)

Alex
05.05.2018
21:58:56
super в initialize это наследование кода этого же метода у предка

Alex
05.05.2018
22:00:02
в инициализации последним пунктом стоит &asction

это proc объект

когда ты вызваешь call к прок объекту, ты его исполняешь

Igor
05.05.2018
22:00:35
что значит self в @action.call(self)

Alex
05.05.2018
22:01:13
передать себя в качестве параметра в функцию в нашем случае proc объект

Google
Igor
05.05.2018
22:02:08
выполняется блок который там приставлен - он преобразуется в прок - объект и присваивается @action

Alex
05.05.2018
22:02:11
proc объекты ничерта не видят что определенно не в них, поэтому надо что-то передать внутрь, в данном случае имеется ввиду инстанс определяемого класса

Igor
05.05.2018
22:02:33
а что значит self у него в аргументе

Alex
05.05.2018
22:02:36
да, @action ссылка инстанца хранящая прок объект

тебе надо объяснить что такое self ?

Igor
05.05.2018
22:04:08
я вообще то понимаю self - когда в методе класса он всплывает

Alex
05.05.2018
22:04:18
это ссылка на текущий объект, т.е. на конкретный объект класса JukeboxButton для которого вызавут этот метод

ты же знаешь что такое ссылка?

вот у тебя переменная x = "abc" это ссылка на объект - строку из трех символов abc . Тогда self это ссылка на саму себя, ссылка на объект внутри которого эту ссылку вызывают

Alex
05.05.2018
22:05:56
так в чем вопрос?

Igor
05.05.2018
22:06:46
так в чем вопрос?
пока не в чем надо переварить что ты сказал. и придумать что нибуть простенькое с этим делом

надо время

какое то

Alex
05.05.2018
22:07:15
дословно в методе button_pressed написана self.@action.call(self) вызывать для объекта Jukebobutton метод в качестве аргумента которому передать его же

это трудно понять потому что ты не видишь proc объект, его код, что конкретно там внутри и тут не очевидно что из этого получится, нужно хорошее понимание ООП и его реализации в Ruby

Alex
05.05.2018
22:09:54
интересную книгу читаете, я бы не стал её читать при своих навыках, недорос до неё

Igor
05.05.2018
22:10:28
Другие как то скучно было читать

Google
Igor
05.05.2018
22:10:40
А тут просто временами в экстазе

Alex
05.05.2018
22:11:17
не, мне хватает Фултона и Матца, когда их осилю до конца, может быть

Igor
05.05.2018
22:11:33
Самое поразительное - пока - чтоесли у тебя есть задача. То для нее ты можешь доделать руби для себя для нее

Konstantin
05.05.2018
22:14:18
Мужики, флудовыхи всё ещё идут?

Alex
05.05.2018
22:14:30
Igor
05.05.2018
22:14:51
не, мне хватает Фултона и Матца, когда их осилю до конца, может быть
Это одно что улавил - но и эти логические петли - типа class TheOnlyOneObject - когда просек все это с вашей помощью полчаса балдел

Alex
05.05.2018
22:16:07
Некоторые, да что уж там - многие авторы не описывают правильно ООП когда пишут книги по программированию, Ruby не исключение, но это не их задача. Но проблема в том что люди занимающиеся программированием зачастую не понимают для чего существует эта парадигма и просто пишут код. Так вот эту книгу что читаете вы я не стану читать потому что там используется в плотную метопрограммирование, а я с идеями его не знаком и не смогу его применять грамотно, это для меня overhead

Konstantin
05.05.2018
22:16:15
Еду второй раз к девушке в другой город. В первый раз никто не встретил, сам добрался, сам упаковался, потом всё время вместе провели. Сейчас еду - то же самое. Рано утром, да, прилетаю, но заселение в полдень. Услышал: "ну ты посиди до 12, поделай домашку по data science в аэропорте, а потом заселяйся, я потом приеду, как выспишься". Чет прихуел. Может, другие нравы сейчас?

Konstantin
05.05.2018
22:16:30
Но я всегда гостей из другого города встречаю прям в аэропорте. Это как-то культурно, что ли...

Уезжать через 2 часа, а настроение на нуле.

Сорян, надо было высказаться)

Alex
05.05.2018
22:21:47
не, я эту книгу в принципе со своим навыком английского не стану читать)

что бы приступить к ООП парадигме и нормально программировать, достаточно просто пол месяца - месяц поигратьвся с императивным программирвоанием

Igor
05.05.2018
22:24:04
не, я эту книгу в принципе со своим навыком английского не стану читать)
а мне нравится. Впрочем может есть и русский перевод,

Google
Alex
05.05.2018
22:24:15
нету, я искал

Igor
05.05.2018
22:24:48
нету, я искал
Вот у них еще есть - беетристика

https://owlweb.ru/wp-content/uploads/2016/03/f3ebbb7a49bdc920bcbafe2509970a19.pdf

нету, я искал
songlist.start - это метод

Значит когда мы вызываем start_bottom.bottom_pressed товыполняется proc(songlist.start) и ей в качестве параметра передается объект start_bottom

вообще говоря этот сонг_лист ни скакими кнопками не связан

https://pastebin.com/6ikyxpet

Admin
ERROR: S client not available

Igor
05.05.2018
23:13:37
Но все равно роль self как то туманна пока

Alex
05.05.2018
23:15:21
Igor
05.05.2018
23:16:26
x = 2 @action.call(x) так понятно?
ну вроде да - при условии что все в описываемом русле

Вот где в моем коде list.start использует этот self который в данном случае является but

Alex
05.05.2018
23:21:54
ну вроде да - при условии что все в описываемом русле
у тебя есть клас, это шаблон для создания объектов, а объекты это структура данных состоящая из других атомарных (простых ) объектов , к примеру числа и строки. Ты просто передаешь объект как структуру данных, нечто что хранит числа, строки, другие объекты. Когда передаешь в качестве аргумента self то передаешь обычную ссылку на объек, просто этот объект к этой ссылке автоматически прекрепляется самим ruby.

Igor
05.05.2018
23:24:08
он ничего из but не использует

Еще надо по рожать. пример - так что бы он что то из основного объекта использовал. Но в том то и дело что этот лист - сам по себе к кнопкам не имеет отношения. Для этого он собственно и сделан

Google
Alex
05.05.2018
23:29:02
все зависит от кода внутри proc объекта

ты можешь создать если я не ошибаюсь лямбда тип прок объекта и передать туда сколько угодно любых аргументов даже тот же self и это не будет вызывать никаких ошибок

Igor
05.05.2018
23:30:20
все зависит от кода внутри proc объекта
я уловил - я и хочу сто то такое сварганить.

Alex
05.05.2018
23:30:24
В общем надо по переваривать это все.
просто почитай матца про proc объекты

у тебя проблема не в понимании self

Просто читать ту книгу без хорошего понимания ruby нет смысла

Igor
05.05.2018
23:31:32
Но в данном случае я вроде все правильно расписа

self это оъект`but`. Он передается методу`list.start` который ничего из него не использует. Я и хочу придумать нечто что что нибуть из but использует. И посмотреть как это получится. Вроде уже вырисовывается. Но это уже завтра.

Просто читать ту книгу без хорошего понимания ruby нет смысла
А хорошее понимание не придет - пока ее не прочитаешь

просто почитай матца про proc объекты
Спасибо за ценное обсуждение - до следующих встреч.

Alex
05.05.2018
23:38:47
Та книга что ты читаешь не объясняет ruby с основ, как там все устроено, э о книга про метапрагроммирование

И на работе никто не будет его применять, это полезно что бы знать как устроен ruby за кулисами, но ты ничего не поймёшь без хорошего знания ruby

Это как читать про квантовую физику не знаю ньютоновскую физику и всю высшую математику - занятие бесполезное

Alex
05.05.2018
23:44:33
Какие книги по ruby ты читал?

Igor
05.05.2018
23:44:56
Пару курсов прошел

Страница 654 из 921