
Nikolay
11.08.2016
20:57:00
не мешает
но хочется красиво :)

ojab
11.08.2016
20:57:27
на самом деле в первый раз красиво точно не получится

Nikolay
11.08.2016
20:57:38
я ебаный перфекционист

Google

ojab
11.08.2016
20:57:47
и с оверинжинирингом вероятность того что получится некрасиво больше

Nikolay
11.08.2016
20:58:03
та какой в пень оверинжинирингш

ojab
11.08.2016
20:58:27
ничто не мешает после получения рабчего класса EppClient это всё отрефакторить, потому что будет понятно где что неудобно

Nikolay
11.08.2016
20:58:58
у меня уже раскидано по методам конект, логин/логофф, работа с доменами/контактами и т.п
но оно блин без классов
в которых я хуево разбираюст
в процессе написания этого гема с этим разобраться,
а нахерачить все говно в кучу я мог еще час назад

ojab
11.08.2016
21:00:14
и, опять же, нужен ли тебе сразу гем?

Nikolay
11.08.2016
21:00:22
да
как кусок другого проекта

ojab
11.08.2016
21:00:59
что мешает для начала закинуть класс в файл и его require'рить?

Nikolay
11.08.2016
21:01:42
еще раз. гнету классов у меня. методы одни

Google

Nikolay
11.08.2016
21:01:59
я хочу это все собрать красиво в классы
но я ооп плаваю

ojab
11.08.2016
21:02:54
ещё раз: кинь все методы в новый класс, чтобы оно работало, а потом правь места где неудобно
красиво — это когда приятная api'шка которой можно беспроблемно пользоваться

Nikolay
11.08.2016
21:03:37
блядь. еще раз говорю - у меня три разные сущности
с одинаковыми методами
и я хочу сделать нормальную апишку, чтобы блин красиво
а ты мне рекомендуешь нахерачить какой-то индусокод

ojab
11.08.2016
21:04:36
ох

Nikolay
11.08.2016
21:04:57
я блин пришел учиться и за советом
а говнокодить это кудато на битрикс с php

v
11.08.2016
21:05:50
не наговнокодишь - не научишься

Nikolay
11.08.2016
21:06:13
блядь. НЕ ХОЧУ Я ЕБУЧИЙ ГОВНОКОД

v
11.08.2016
21:06:14
Есть даже книжка про это
ПИШИ КОД, БЛЯ

ojab
11.08.2016
21:06:24
ок, делай сразу красиво

Nikolay
11.08.2016
21:06:32
блядь.
я и спрашиваю КУАК
последние 15 минут
потому что плаваю в ООП

Google

Nikolay
11.08.2016
21:07:29
и не очень понимаю что такое модуль, класс, и как это все правильно вложить

ojab
11.08.2016
21:07:39
API к ООП отношения не имеет абсолютно. Если ты распишешь какие методы и как ты хочешь вызывать — тогда будет понятно что тебе сказать.

Иван
11.08.2016
21:07:42

ojab
11.08.2016
21:10:34
самое простое — создать класс с одинаковыми методами и от него отнаследовать твои сущности

Nikolay
11.08.2016
21:10:37
client = EPP::Client.new(host/port)
client.domain_check(domainname) {
self.login(login/pass) -> {open socket, read, send, read}
self.check(domainname) ->{open socket, read, send, read}
self.logount -> {open socket, read, send, read}
}
вот уже ближе к помощи )

ojab
11.08.2016
21:11:35
модули тебе здесь нафиг не нужны

Nikolay
11.08.2016
21:11:53
а про модули я не говорил
я говорил что это гемный модуль
точне даже не говорил

ojab
11.08.2016
21:12:20
EPP::Client — класс Client модуля EPP
(ну и не стоит upcase'ом что-либо называть, если это не константа)

Nikolay
11.08.2016
21:13:59
тоесть client = Epp::Client.new...
а тогда Epp::Domain это будет совсем другая херня
и значит мне таки надо делать Client.check_comain

ojab
11.08.2016
21:14:42
login/logout в API'шке тебе точно нужны? Почему не login/logout при каждом запросе?

Nikolay
11.08.2016
21:15:06
логин/логофф при каждом запросе методами
невидимо для апи
внутри метода check_domain

ojab
11.08.2016
21:15:29
ок

Nikolay
11.08.2016
21:15:40
как и поднять/положить сокет

Google

ojab
11.08.2016
21:16:04
ну то есть как-то так? https://gist.github.com/ojab/1b7a178fb8e5b28e87ae9ea7699d6841
для начала
или всё же .check_domain у EppClient'a?
(опять же, рекомендую .check_domain, если будет неудобно — потом можно отрефакторить)

Nikolay
11.08.2016
21:17:13
а как будет вызываться domain.check если взять за основу гист?

ojab
11.08.2016
21:17:34
Domain.new(login, password, whatever).check

Nikolay
11.08.2016
21:17:50
ойбля )

ojab
11.08.2016
21:18:21
соответственно можно сделать Domain.new и потом его юзать для всяких манипуляций

Nikolay
11.08.2016
21:18:42
не, лучше client.check_domain, тоесть все будет в пространстве клиента ерр
а если Epp::Client::Domain.check?

Admin
ERROR: S client not available

ojab
11.08.2016
21:19:26
а где ты логинопароль собрался указывать?
и, опять же, :: — модуль

Nikolay
11.08.2016
21:21:29
короче, как я понял мне надо сделать в классе Client require 'lib/connect.rb' где в нутри классе Client прописать мои методы коннекта , lib/login где логин/логофф и дальше мои файлы для домена/хоста/контакта
так?
тоесть текущие методы просто обернуть в class Client чтобы они собрались в один класс при компиляции, так?

ojab
11.08.2016
21:22:38
зачем их вообще на файлы разбивать?

Nikolay
11.08.2016
21:22:53
потому что блеать их ДОХУЯ
lib с текущими скриптами 18 килобайт текста
скрипт который их дергает еще несколько десятков

Google

ojab
11.08.2016
21:24:38
o_o

Nikolay
11.08.2016
21:25:17
поэтому я и спрашиваю за то, можно ли собрать методы одного класса из нескольких файлов
тоесть я в check_domain() смогу заюзать методы login из EPP::Connection ?

Иван
11.08.2016
21:28:20

ojab
11.08.2016
21:28:33

Arthur ?
11.08.2016
21:28:59
вечер добрый, такой вопрос:
подглядел на стэковерфлоу, что если создать темплейт (internet_access.html.erb) в папке лэйаутс , то это станет лейаутом для всех вьюх в папке internet access
но на самом деле, он стал лейаутом на всех страницах
как сделать так, чтобы этот темплейт был лейаутом только для вьюх из папки internet_access?
скрин прилагаю

Иван
11.08.2016
21:29:46

ojab
11.08.2016
21:30:11
не, лучше client.check_domain, тоесть все будет в пространстве клиента ерр

Иван
11.08.2016
21:31:01
понял, но в принципе так ведь делается?

Nikolay
11.08.2016
21:31:18

ojab
11.08.2016
21:31:29

Nikolay
11.08.2016
21:32:25
но вот так заинклюдить весь набор методов по модулям это хорошее решение

ojab
11.08.2016
21:33:18
откуда у тебя столько кода получилось, непонятно

Nikolay
11.08.2016
21:33:45
распарсить ответ через нокогири и сформировать хеш
я гем допишу - выложу :)
спасибо, снов

Иван
11.08.2016
21:45:39
а по поводу переменных класса - их советуют не использовать только из-за возможности подклассов менять эту переменную?

ojab
11.08.2016
21:46:32
А у них есть какие-то реальные юзкейсы?

Иван
11.08.2016
21:46:49
просто хранить в каждом экземпляре класса одинаковую переменную это как то странно