70866


以下のslack-ruby-botを使用しようとしましたがエラーとなります。  
<https://github.com/slack-ruby/slack-ruby-bot>

Ruby自体もRails Girls（https://railsgirls.jp/install ）を参考に入れたばかりです。

実行した内容はslack-ruby-botのA Minimal Botで、

  * Gemfile

[code]

    source 'https://rubygems.org'
    
    gem 'slack-ruby-bot'
    gem 'async-websocket', '~>0.8.0'
    
[/code]

  * pongbot.rb

[code]

    require 'slack-ruby-bot'
    
    class PongBot < SlackRubyBot::Bot
      command 'ping' do |client, data, match|
        client.say(text: 'pong', channel: data.channel)
      end
    end
    
    PongBot.run
    
[/code]

[code]

    $ bundle install
    $ slack-bot$ SLACK_API_TOKEN=API文字列 bundle exec ruby pongbot.rb
    
[/code]

■詳細なエラー内容

[code]

    マシン名:~/ruby/slack-bot$ SLACK_API_TOKEN=APIを記載 bundle exec ruby pongbot.rb
    Traceback (most recent call last):
            9: from pongbot.rb:1:in `<main>'
            8: from pongbot.rb:1:in `require'
            7: from /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot.rb:3:in `<top (required)>'
            6: from /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/slack-ruby-bot.rb:3:in `require'
            5: from /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/config/environment.rb:5:in `<top (required)>'
            4: from /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/config/environment.rb:5:in `require'
            3: from /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/config/application.rb:6:in `<top (required)>'
            2: from /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/config/application.rb:6:in `require'
            1: from /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/config/boot.rb:5:in `<top (required)>'
    /home/ユーザー名/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/slack-ruby-bot-0.16.0/lib/config/boot.rb:5:in `require': cannot load such file -- active_support (LoadError)
    
[/code]

■解決のために試したこと  
エラー内容にactive_supportがロードできませんとあるためirbでそれ自体をrequireしてみるとOKとなりましたのでファイル自体はあるようです。

[code]

    irb(main):001:0> require "active_support"
    => true
    
[/code]

■環境  
WSL2  
rbenv 1.1.2-34-g0843745  
Ruby 2.7.0  
Gem 3.1.2  
Bundler version 2.1.2

何かご存知の方がいればご回答いただけますと幸いです。  
よろしくお願い致します。


CC BY-SA 4.0
2020-10-01T10:39:24.670
70861
2020-10-02T05:09:10.373
42136
question
ruby rubygems wsl
slack-ruby-botでactive_support (LoadError)になる


slack-ruby-botがactive_supportを使っているのにその設定を消してしまったのが原因のようです。  
↓すでにプルリクエストも出ているので少し待てば解決するとは思います。  
<https://github.com/slack-ruby/slack-ruby-bot/pull/271>

一時的には以下のようにactivesupportの記述をGemfileに追記すれば解決するかと。

[code]

    gem 'slack-ruby-bot'
    gem 'async-websocket', '~>0.8.0'
    gem 'activesupport'  # <= この行を追加
    
[/code]

なおirbではactivesupportが読み込めたのにslack-ruby-botの起動ではエラーになっていた件ですが、`bundle exec`
を付けて実行した場合は `Gemfile`と`Gemfile.lock` に書かれたライブラリしか読み込まないため、記述のない
`active_support` のロードに失敗してしまったのが原因です。


CC BY-SA 4.0
2020-10-01T12:27:11.000
70866
2020-10-02T05:09:10.373
2020-10-02T05:09:10.373
42137
42137
70861
answer