演劇とかの感想文ブログ

演劇感想文リンク(engeki.kansolink.com/)の中の人(清角克由(@kseikaku)のブログ。更新情報やサイト情報だけでなく、管理人の日々の思いも書いていきます。

開発言語

[ruby]warning: previous definition of METHODS was here が発生する時の対処法

投稿日:

warningであるため、問題なく処理は終わるのですが気持ち悪いメッセージが出続ける為、調べました。解決方法は驚くほど簡単だったので、備忘を兼ねて記載しておきます。

スポンサーリンク

広告

検索したソースコードをそのまま実行するとwarningは出る

演劇感想文リンクのサイトへ載せる画像をダウンロードするためのスクリプトを書こうとして、ネットを調べて以下のサイトを見つけました。


ちょっと古いruby1.9.3対応ということだったのですが、上記のページのソースコードを元に以下のようなソースを書きました。

単に「image」という名前にすることに抵抗があったので、WORDPRESS用に作成するImageの操作用Classという意味で、「WPImage」という名前にしていますが、やっていることはWeb上のImageのURLをわたしてローカルフォルダにダウンロードするだけです。
このクラスのテストをするspecを実行すると以下のようなこの記事の表題のwarningがどっと出力されます。

rubyのバージョンに関わりなく出力される

元々は、以下のようにrubyのバージョンは2.2.4だったのですが、これを最新(2.4.2)にバージョンアップしても、変わりませんでした。

これを2.4.2にアップデートしました。
以下の手順を参考(この記事は2.4.1へのバージョンアップですが)


が、結局結果は変わりませんでした。

Utilityの名前を大文字から小文字に変えたら解消

解消方法に手詰まりを感じていたのですが、検索して意外な程簡単に解消する方法がわかりました。


Stackoverflowの質問ですが、似た症状でした。回答には以下のような記載がありました。

This warning shows up when I write require ‘FileUtils’. If I write require ‘fileutils’ (all lower case) warning disappears.

This link may be helpful explaining the behavior. I think in essence ruby thinks FileUtils and fileutils are different modules, therefore imports it twice. Then the redeclaration of constants give warning messages.

上記の「This」のリンク先は、以下。


ざっくりした理解としては、大文字で始まるユーティリティと全部小文字のユーティリティは別のモジュールであるため、既に定義された定数が再定義されているという警告が出ていたようです。
そこで、上記のソースコードのrequireを以下のように書き換えて実行したところ、warningが解消されました。

以上 rubyの実行時に「warning: previous definition of METHODS was here」というメッセージが出た時の対処法でした。

広告

広告

-開発言語
-,


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

[swift]配列の配列から、realmに保存(swift2.0,realm1.0)

先日の「[swift]csvファイルから読込んだデータを配列にセット(Swift2.0)」の続きです。 CSVファイルの内容を配列の配列([[String]]型)に保管したので、そのデータをrealm …

rspec実行時に、「cannot load such file –spec_helper」が出た時の対処法

久しぶりにrubyのテスト環境(rspec)を利用しようとして、嵌ったのでメモ。 前に使っていたのが、rspecのヴァージョン2だったが、今回はヴァージョン3を使った。そのため、幾つかのルールや手順が …

[swift]検索窓(UISearchbar)をコードで実装

目次1 ■画面内での検索機能の実装1.1 ■UISearchBarの実装2 ■配列の絞り込み3 関連 ■画面内での検索機能の実装 iPhoneの小さな画面で演劇感想文リンクの膨大な公演情報を効率よく見 …

[swift]複数の部品を配列でまとめて設定して楽をする。

画面の設計上、同じようなラベル(UILabel)をまとめて設定する場面に出くわすことがよくあります。 storyboardを利用した場合、各々一つ一つ画面に配置して、名前をつけてという感じになってしま …

no image

[swift]UITableViewを画面の一部にする。

相変わらず演劇感想文リンクのアプリを開発しています。 まずは、完成イメージ。 前回までに作成した公演情報の下に劇評の一覧を表示します。UITableViewを使いたいのですが、色々なサンプルの殆どが、 …

2017年12月
« 11月    
 12
3456789
10111213141516
17181920212223
24252627282930
31