質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

3929閲覧

EmbulkでRubyのプラグインを作っているけどgemがLoadErrorになる

退会済みユーザー

退会済みユーザー

総合スコア0

Embulk

Embulkは、CSVデータやアクセスログなどの構造化データを高い信頼性で転送することができる、プラグインベースのバルクデータローダーです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

1クリップ

投稿2019/03/09 09:46

はじめてEmbulkのプラグインを開発しています。embulk newコマンドで新しくプロジェクトを作成しました。

Faradayを使いたいので.gemspec

spec.add_dependency 'faraday'

を追加してlib/embulk/plugin/hoge.rbに以下のように

ruby

1require `faraday`

とやり、実行すると

Error: InputPlugin 'hoge' is not found. (ENOENT) No such file or directory - faraday

になります。vendor/bundle/にもfaraday/があります。

どのようにしたらrequireをするようにできるでしょうか。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

embulk new ruby-input hoge cd embulk-input-hoge

config.ymlを作成して

yaml

1in: 2 type: hoge 3 4out: 5 type: stdout
embulk run -I lib config.yml

と実行してください。

2019/3/11 13:53 追加

こちらだとこれで動きます。(embulk bundle installは面倒なのでbashでやりました)

  • OS: 10.14.3
  • Java: 1.8.0_192
  • Embulk: 0.9.15
  • Fish: 2.6.0
bash -c '~/.embulk/bin/embulk new ruby-input hoge' cd embulk-input-hoge

lib/embulk/input/hoge.rb

ruby

1require 'faraday'

Gemfileに追加

spec.add_dependency 'faraday'
embulk bundle install

config.yml

in: type: hoge out: type: stdout
java -jar ~/.embulk/bin/embulk run -I lib config.yml ... Error: org.jruby.proxy.org.embulk.config.ConfigException$Proxy1: Required field "option1" is not set

投稿2019/03/11 00:09

編集2019/03/11 04:54
hiroysato

総合スコア415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/03/11 04:36

私はFish shellを使っているので ``` java -jar (which embulk) run -I lib config.yml ``` としていますが、やはり`require faraday`をするとLoadErrorになります。
退会済みユーザー

退会済みユーザー

2019/03/11 04:37

もちろん bundle install をしていますが、できません。
hiroysato

2019/03/11 04:55

bundle installではなくembulk bundle installです。 設定・エラーメッセージ・使っているソフトウェアのバージョンを詳しく書いていただけますか? メッセージは極力消さないでください。
hiroysato

2019/03/11 04:58

embulk new xx と出てくる以下のメッセージに従ったのであれば上記の回答のところに書いてある通りに試してみてください。 $ cd embulk-input-hoge $ bundle install # install one using rbenv & rbenv-build $ bundle exec rake # build gem to be released $ bundle exec embulk run config.yml # you can run plugin using this command
退会済みユーザー

退会済みユーザー

2019/03/11 05:06

使用しているバージョンはv0.9.15です。 $ cd embulk-input-hoge $ bundle install # install one using rbenv & rbenv-build $ bundle exec rake # build gem to be released $ bundle exec embulk run config.yml # you can run plugin using this command このメッセージに従ったあとに`java -jar (which embulk) run -I lib config.yml`をしていました。 上記の手順に従ってやると $ java -jar (which embulk) bundle install 2019-03-11 14:05:41.681 +0900: Embulk v0.9.15 You must use Bundler 2 or greater with this lockfile. そしてBundlerはv2.0.2を使用しています。 どのようにすれば解決するのでしょうか。よろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/03/11 05:08

Errorメッセージは 2019-03-11 14:07:11.713 +0900: Embulk v0.9.15 2019-03-11 14:07:12.102 +0900 [WARN] (main): DEPRECATION: JRuby org.jruby.embed.ScriptingContainer is directly injected. 2019-03-11 14:07:13.681 +0900 [INFO] (main): Gem's home and path are set by default: "/Users/keisukeyamashita/.embulk/lib/gems" 2019-03-11 14:07:14.189 +0900 [INFO] (main): Started Embulk v0.9.15 LoadError: no such file to load -- faraday require at org/jruby/RubyKernel.java:955 require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:55 <main> at /Users/keisukeyamashita/src/github.com/KeisukeYamashita/embulk-input-dialogflow/lib/embulk/input/dialogflow.rb:1 require at org/jruby/RubyKernel.java:955 require at uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/rubygems/core_ext/kernel_require.rb:55 (root) at uri:classloader:/gems/embulk-0.9.15-java/lib/embulk/plugin_registry.rb:1 ... Error: InputPlugin 'hoge' is not found. (LoadError) no such file to load -- faraday です。
退会済みユーザー

退会済みユーザー

2019/03/11 05:10 編集

バージョンは - OS: 10.14.2 - Java: 1.8.0_202 - Fish: 3.0.0 です。
hiroysato

2019/03/11 05:13

上の回答の「2019/3/11 13:53 追加」に書いた通りにやってみていただけますか? 作ったプラグインは一旦消すか別の場所で試してみてください。 そのとおりにやればbundlerは1.16を使うと思うんですが、、
退会済みユーザー

退会済みユーザー

2019/03/11 08:33

無事できました!ありがとうございます! embulk bundle installとは、どのようなコマンドなのでしょうか。そしてなぜbundle installと差異があるのでしょうか。よろしくお願いいたします。
hiroysato

2019/03/11 08:39

よかったです。 embulk bundleはembulk 専用のbundlerで、embulk.jarの中に組み込まれています。 このコマンドでは、bundle installした場合と違ってembulk専用ディレクトリ (デフォルトでは、/Users/user/.embulk/lib/gems)にgemを導入します。 実態は普通のbundlerです。 一般的にbundle installはMRI(CRuby)が使われますが、こちらはJRuby経由でbundlerを利用します。 余談ですが、テストについてはこちらをご一読ください。 https://qiita.com/sonots/items/13bae6db72a71a5f45b5
退会済みユーザー

退会済みユーザー

2019/03/12 06:07

丁寧にありがとうございます。理解しました。 Qiita記事も読まさせていただきます。 改めて、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問