@proRuby

Страница 1275 из 1594
?
30.06.2018
16:48:27
The Art of Unix Programming www.faqs.org Back to FAQS.ORG. The Art of Unix Programming. Eric Steven Raymond. Thyrsus Enterprises.

http://www.faqs.org/docs/artu/textualitychapter.html глава про текст

Dima
30.06.2018
17:32:48
кто либо вызывал ruby -e c heredoc?

Pingvin
01.07.2018
00:39:11
Привет. Есть здесь живые люди в такое время?

Google
Ruslan
01.07.2018
00:43:56
есть

Alex
01.07.2018
00:45:50
есть

впрочем живые или нет - тема отдельной дискуссии

Pingvin
01.07.2018
00:56:54
впрочем живые или нет - тема отдельной дискуссии
Я в руби новичок (таки это важно, пока мало понимаю как тут всё устроено). Хочу реализовать систему плагинов в своём скрипте. Скрипт обрабатывает некоторый список входных данных, csv файл. Задача - по входным данным (при промощи регулярки заданной в самом плагине) понять что именно этот плагин нужно применить к этим данным (к этой строке). Потом полученные данные передать в логер который эти данные отформатирует и запишет в файл. Как систему плагинов для подобных вещей лучше всего реализовать в руби?

На просторах интернета нашёл вот такой кусок кода: $LOAD_PATH.unshift('plugins') Dir[File.join(dir, '*.rb')].each do |file| require File.basename(file) end

Понимаю что он делает, но как получить например список классов которые будут загружен не понимаю.

Alex
01.07.2018
01:01:35
у тебя есть класс который обрабатывает файл

а то что ты require'ишь может манкипатчить этот класс как вариант

require по сути исполняет код внутри если я ничего не путаю.

вот пускай эти "плагины" сами себя прописывают

Pingvin
01.07.2018
01:06:02
вот пускай эти "плагины" сами себя прописывают
А как из такого класса получить доступ к переменной в главном классе (или как он тут называется)?

Ну собствеено что бы туда себя записать

Google
Alex
01.07.2018
01:06:35
в свой класс ссылку на основной класс записать и все.

шта

зачем получать доступ к переменной

Pingvin
01.07.2018
01:07:10
Ну вот плагин запустился при помощи require

Я понятия не имею как он назывался

Мне кажется я тебя совсем непонимаю

Alex
01.07.2018
01:11:53
csv_parser.rb class CsvParser # главный класс def initialize() @plugins = [] end def self.instance @@instance ||= self.new end ... def register_plugin(plugin) @plugins << plugin end end Dir[File.join(dir, 'plugins/*.rb')].each do |file| require File.basename(file) end ———————————- plugins/parser_plugin.rb: class ParserPlugin ... end CsvParser.instance.register_plugin(ParserPlugin.new)

не тестил само собой

есть вопросы по коду?

как пробрасывать туды сюды и как они между собой общаться будут - зависит от хотелок

сделать можно по разному

ну и непонятно зачем тебе эта плагинная система

Pingvin
01.07.2018
01:15:51
ну и непонятно зачем тебе эта плагинная система
для работы с разными веб интерфейсами (там в файле нечто вроде списка ссылок и дополнительной инфы)

Pingvin
01.07.2018
01:16:57
тогда имхо проще ручками забить
ну так то да, но когда-то нужно будет понять как делать именно плагины)

Alex
01.07.2018
01:17:05
зачем тебе плагины?

ты распространяешь свою поделку?

Pingvin
01.07.2018
01:17:35
Эту нет. Но вдруг такая появится)

Alex
01.07.2018
01:18:27
Pingvin
01.07.2018
01:18:54
не появится
Ну с таким подходом можно вообще ничего не учить

Google
Alex
01.07.2018
01:20:14
Ну с таким подходом можно вообще ничего не учить
ты решаешь задачу которая не нужна )

к моменту когда у тебя реально такая задача встанет - будешь знать как сделать.

а сейчас ты ненужного коня в вакууме делаешь :)

Pingvin
01.07.2018
03:22:15
а сейчас ты ненужного коня в вакууме делаешь :)
Вполне может быть. Кстати таки запилил коня)

Dima
01.07.2018
08:07:03
Я в руби новичок (таки это важно, пока мало понимаю как тут всё устроено). Хочу реализовать систему плагинов в своём скрипте. Скрипт обрабатывает некоторый список входных данных, csv файл. Задача - по входным данным (при промощи регулярки заданной в самом плагине) понять что именно этот плагин нужно применить к этим данным (к этой строке). Потом полученные данные передать в логер который эти данные отформатирует и запишет в файл. Как систему плагинов для подобных вещей лучше всего реализовать в руби?
До селе мне невстерчалось слово plugin во вселенной Ruby. Есть gem есть class, module. Суть конечно понята, но вот сам лексикон он конечно не из спектра Ruby Community. Тому вопросу которым вы занимаетесь не мало времени посвятила Sandi Metz, как раз испольование модулей, расширение приложение через набор легко изменяемых и заменяемых "модулей", использоваие ducktype. Моя рекомендация вам, не поскупиться на 40 минут, и изучить видео со слоганом`Hide the mess` by Sandi Metz https://youtu.be/mpA2F1In41w

Dima
01.07.2018
08:08:54
в рельсах до 3 были плагины
не застал, я уже на 5 версию пришел.

Roman
01.07.2018
08:09:10
им на смену пришли engines

Dima
01.07.2018
08:15:42
Эту нет. Но вдруг такая появится)
Валентин, интуитивно вы делаете все абсолютно академически правильно реализуете в своей работе методологию SOLID. Просто используете другие определения для составных частей программы. https://youtu.be/v-2yFMzxqwU

Alex
01.07.2018
08:26:22
о, умные словечки подкатили

Alex
01.07.2018
08:26:37
причем тут solid интересно

Женя
01.07.2018
21:03:44
кстати о Sandi Metz, что она вообще написала такого в плане софта ?

Alexey
01.07.2018
22:44:52
имхо, те, кто пишет софт, и те, кто пишет книжки о том, как писать софт, - это чаще всего разные люди но и те, и другие все равно нужны

Yevhen Nakonechnyi
02.07.2018
03:47:17
Дядя Боб вообще красавчек

Anna
02.07.2018
06:16:30
имхо, те, кто пишет софт, и те, кто пишет книжки о том, как писать софт, - это чаще всего разные люди но и те, и другие все равно нужны
Ну софт она писала, и много (не как Стив МакКоннелл :). Но не особо известный в широких кругах, видимо. Как и большинство из нас )

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
02.07.2018
07:01:54
можно и там и там красиво сделать
Звучит как нечто противозаконное??

Dima
02.07.2018
08:35:42
имхо, те, кто пишет софт, и те, кто пишет книжки о том, как писать софт, - это чаще всего разные люди но и те, и другие все равно нужны
я бы так не сказал, 3 автора с которыми я работаю это программисты с богатейшим практическим опытом.: Sandi Metz, Mike Gancarz, Avdi Grimm. Большинство ИЗВЕСТНЫХ книг написано опытными практиками, взять хотябы Paolo Perrotto, Yukihiro Matsumoto.

я начал гуглить про Paolo Perrotto он оказывается еще и про Git пишет:

Google
Dima
02.07.2018
08:44:24
https://youtu.be/nHkLxts9Mu4

https://vimeo.com/146478456

это интересно. надо бы ознакомиться.

ShadoWalkeR
02.07.2018
09:51:14
Хотите интересный вопрос? Есть примерно такой код: options = {:app_name => "Test"} client = Ari::Client.new(loadConfig("#{options[:app_name]}")) #Подключение к клиенту - просто для понимания где я options использую Daemons.run_proc(options[:app_name], options) do # Черная магия end

Admin
ERROR: S client not available

ShadoWalkeR
02.07.2018
09:52:28
А задача в следующем - Как мне в options добавить :stop_proc который дернет функцию из client при выходе из скрипта? Пока что оно ругается что client не существует независимо от того использую я $/@ или нет

Это как бы понятно почему, но хотелось бы как нибудь почистить за собой там, куда коннекчусь

А - отбой

Все равно на той стороне никто не реализовал чистку - подписаться на все события можно, отписаться нельзя

Roman
02.07.2018
10:38:25
есть at_exit еще

Dima
02.07.2018
13:11:19
кто либо вызывал ruby -e c heredoc?
heredoc он для cat и ftp: https://goo.gl/9EVG6h Для многолинейныйх ruby -e просто переносить на новую линию строку таким образом: ruby -e "require 'colorize' (1..10).each do |x| x.even? ? puts(x.to_s.green) : puts(x.to_s.red) end"

Tim
02.07.2018
13:39:29
люди юзают в 2018 composed_of? в rails antipatterns увидел, вроде годнота. Но книжка старенькая, поэтому актуальность её советов ставлю под сомнение иногда

Tim
02.07.2018
13:44:27
то чуство когда в antipatterns нашел решение своей проблемы да? ))
не, от скуки книжку в очереди читал, и подумал что это интересная вещь

первое предложение

Alex
02.07.2018
15:46:27
то чуство когда нашел собственный коммент к issue к либе которой пользуешься и решил проблему над которой ты бился несколько месяцев, хотя ты ее уже решал пару лет назад.

Alex
02.07.2018
15:47:39
солнце в рекурсию ударило?
причем тут рекурсия? ))

Владимир
02.07.2018
15:48:33
причем тут рекурсия? ))
ну еще через пару лет будешь решать ту же проблему, задавать тот же вопрос в том же месте и тебя будут посылать "читай выше" с сылкой на твой собственный комент с решением...

Alex
02.07.2018
15:48:46
это будет эпично

Google
Владимир
02.07.2018
15:50:42
это будет эпично
настоятельно рекомендую набить где-то на руках свое полное ФИО, данные регистрации и контактные телефоны родни\знакомых склероз он такой, внезапный сначала забыл решение, потом вставные зубы в стакане а потом и кто ты и что здесь делаешь

Alex
02.07.2018
15:51:13
- как ты на него оформил кредит? - на руках все данные прочел

проблема в том что если у тебя проблемы с головой или памятью то это все.

Roman
02.07.2018
15:51:32
была на баше цитата

Alex
02.07.2018
15:51:32
Ты не сможешь решать задачи.

Владимир
02.07.2018
15:51:43
если параноя то можно на ногах, на той части которой ты можешь увидеть сам

Roman
02.07.2018
15:51:59
что нашел ответ и поблагодарил автора и тут пришло письмо с благодарностью на почту

Владимир
02.07.2018
15:52:14
только будет малость неудобно когда менты тормознут, документов нет но данные ты можешь показать..

Владимир
02.07.2018
15:53:21
нефиг по практологам незнакомым лазить

для самых отбитых можно на внутренней стороне века шпаргалку набить

Страница 1275 из 1594