Size: a a a

2019 September 19

IM

Igor Morozov in pro.ruby
а, не 🤔
источник

MY

Mikhail Yudin in pro.ruby
Mikhail Yudin
Привет =)
Хочу сделать инициализацию классов автоматически подключенных модулей.

Dir.glob("./handlers/**/*.rb").each { |file| load file }
   module_classes = Handlers::Commands.constants.map(&Handlers.method(:const_get)).grep(Module)
   @handlers = module_classes.map do |cmd_class|
     puts cmd_class
     cmd_class.new bot
   end

Ругается на uninitialized constant Handlers::RepliedCommand , хотя:

handlers/commands/replied_command.rb:
module Handlers
 module Commands
   class RepliedCommand < Handlers::Base
     def process

     end
   end
 end
end

handlers/base.rb:
module Handlers
 class Base
 end
end


Что я делаю не так?
Хочется сделать аналог https://github.com/Baelor/omertagram/tree/80fd056f1bd87d10401c4b2796a9705292c98b38/lib, только с подмодулями и чтобы сами команды матчились на то, что им нужно. Не наодборот. В результате будут почти что обработчики событий
источник

L

Lupsik Pupsik in pro.ruby
делал такое
источник

MY

Mikhail Yudin in pro.ruby
Lupsik Pupsik
делал такое
Есть пример? =)
источник

MY

Mikhail Yudin in pro.ruby
Mikhail Yudin
Привет =)
Хочу сделать инициализацию классов автоматически подключенных модулей.

Dir.glob("./handlers/**/*.rb").each { |file| load file }
   module_classes = Handlers::Commands.constants.map(&Handlers.method(:const_get)).grep(Module)
   @handlers = module_classes.map do |cmd_class|
     puts cmd_class
     cmd_class.new bot
   end

Ругается на uninitialized constant Handlers::RepliedCommand , хотя:

handlers/commands/replied_command.rb:
module Handlers
 module Commands
   class RepliedCommand < Handlers::Base
     def process

     end
   end
 end
end

handlers/base.rb:
module Handlers
 class Base
 end
end


Что я делаю не так?
Ошибку понял, проглядел что не берётся название подмодуля, потому что натравливаю не туда=)
.map(&Handlers.method(:const_get)), а надо .map(&Handlers::Commands.method(:const_get))
источник

L

Lupsik Pupsik in pro.ruby
Mikhail Yudin
Есть пример? =)
ну делаешь один handler и раскидываешь дальше по типам сообщения
источник

MY

Mikhail Yudin in pro.ruby
Lupsik Pupsik
ну делаешь один handler и раскидываешь дальше по типам сообщения
Подход интересный и скорее всего более производительное решение, чем кормить все классы сообщением
источник

MY

Mikhail Yudin in pro.ruby
Спасибо=)
источник

AS

Alexandr Shapalov in pro.ruby
Lupsik Pupsik
ну делаешь один handler и раскидываешь дальше по типам сообщения
А что бот делает, если не секрет что за проект.
источник

AS

Alexandr Shapalov in pro.ruby
Да, с ними быстрее.
источник

L

Lupsik Pupsik in pro.ruby
Alexandr Shapalov
А что бот делает, если не секрет что за проект.
да я делал бота который показывает вечеринки в округе если ему локацию прислать
источник

L

Lupsik Pupsik in pro.ruby
так и не хватает времени запустить
источник

AS

Alexandr Shapalov in pro.ruby
а это опен сорс или закрытый?
Тоже есть задача бота написать
источник

AS

Alexandr Shapalov in pro.ruby
И может ли бот - постить новости в телеграм канал сразу?
источник

MY

Mikhail Yudin in pro.ruby
Alexandr Shapalov
а это опен сорс или закрытый?
Тоже есть задача бота написать
В открытых источниках не нашёл=)
источник

AS

Alexandr Shapalov in pro.ruby
источник
2019 September 20

IM

Igor Morozov in pro.ruby
↑ если участники pro.rb думают так же, то это объясняет низкую активность
источник

IM

Igor Morozov in pro.ruby
в этом-то и суть
источник

NK

Nick Kugaevsky in pro.ruby
Интересно, я не вижу его постов, потому что в личке забанил или потому что он вернулся к медикаментозному лечению?
источник

AD

Anton Davydov in pro.ruby
Nick Kugaevsky
Интересно, я не вижу его постов, потому что в личке забанил или потому что он вернулся к медикаментозному лечению?
он вроде ничего не писал за это время
источник