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

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

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

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

Q&A

解決済

4回答

2614閲覧

rubyの外部ファイル参照について

probaseball

総合スコア113

Ruby

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

0グッド

1クリップ

投稿2015/06/25 14:43

編集2015/06/25 15:34

CSVの内容を読み込んでスコア等を計算していたのですが、ソースが見づらくなったので、CSV(読み込み、書き込み、一覧表示など)と計算のファイルに分けたいと思っているのですが、どうすればできますか?

compute.rb :(計算)

計算ソース

csv_relevance.rb(CSV関係)

CSV.read

CSV.foreach

CSV.open などのCSV関係ソース

追記
csv_relevance.rbでCSVメソッドを作って、compute.rbに読み込ませたいと思っています。

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

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

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

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

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

guest

回答4

0

ファイルを分けて、メインのファイルと同じディレクトリに置き、require_relative "ファイル名" で読み込みます。
トップレベルのローカル変数は共有されないので、注意してください。
クラス定義やメソッド定義は大丈夫です。

lang

1ファイルsub.rb: 2class Foo 3end 4def bar 5end 6baz = 123 7 8 9ファイルmain.rb: 10require_relative "sub" 11x = Foo.new # これはOK 12bar # これもOK 13puts baz # これはbazの未定義エラー

投稿2015/06/25 21:30

otn

総合スコア84421

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

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

0

ファイルの中身自体はダミーですが、こんな風にすればよいと思います。
2 つのファイル csv_relevance.rb, compute.rb を示します。
(computer.rb からは require をつかって csv_relevance.rb を取り込みます)

csv_relevance.rb

lang

1class CSV 2 def read 3 puts 'CSV.read' 4 end 5end

compute.rb

lang

1require './csv_relevance' 2 3def compute 4 csv = CSV.new 5 csv.read 6 puts 'compute' 7end 8 9compute

実行例:

$ ruby compute.rb CSV.read compute

投稿2015/06/25 20:58

katoy

総合スコア22324

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

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

0

ベストアンサー

基本的に、同一ディレクトリであれば、ファイル名から.rbを除いた形でrequireすればよいかと。

おっしゃっているパターンであれば、
compute.rbで、

require 'cvs_relevance'

で使えると思います。

詳しくはここが参考になると思います。

投稿2015/06/25 17:33

rifuch

総合スコア1901

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

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

0

csv_relevance.rbの一番上で

lang

1require "compute.rbのパス"

でいいんじゃないでしょうか?

投稿2015/06/25 15:25

rossi46hiro

総合スコア992

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問