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

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

ただいまの
回答率

90.47%

  • Ruby

    7968questions

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

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

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,100

probaseball

score 106

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

compute.rb :(計算)

計算ソース

csv_relevance.rb(CSV関係)

CSV.read

CSV.foreach

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

追記
csv_relevance.rbでCSVメソッドを作って、compute.rbに読み込ませたいと思っています。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

+3

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

csv_relevance.rb
class CSV
  def read
    puts 'CSV.read'
  end
end
compute.rb
require './csv_relevance'

def compute
  csv = CSV.new
  csv.read
  puts 'compute'
end

compute
実行例:
$ ruby compute.rb
CSV.read
compute

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

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


ファイルmain.rb:
require_relative "sub"
x = Foo.new  # これはOK
bar          # これもOK
puts baz     # これはbazの未定義エラー

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+2

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

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

require 'cvs_relevance'

で使えると思います。

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

csv_relevance.rbの一番上で
require "compute.rbのパス"
でいいんじゃないでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

関連した質問

  • 受付中

    大量データ処理について

    ショッピングサイトのエンジニアをやってます。 以下質問がございます。 ①月の受注データ(10万件ほど)をselectして、 ②別に読み込んだcsvファイルのデータと1件ずつ突合チ

  • 解決済

    ローカルファイル アップロード 最適な構成は?

    Webアプリケーションで、ファイルアップロード機能の構成について悩んでます。 悩んでる内容は、以下構成を比べた場合の処理性能面や、リスク面等についてのメリット・デメリットです。

  • 受付中

    mysql;複数ファイルのインポート

    mysqlに複数のファイルを読み込ませたいです. testテーブルに001,002,003,...nnnというファイルをインポートしたいのですが,ひとつずつやっていくのは手間なので

  • 解決済

    UNIXでcsvファイルでマスターデータと比較する方法

    こんばんわ。 マスターデータをcsvファイルで出力されています。 新たに検索したいデータもcsvファイルで出力されます。 下記のような結果を望んでいます。 検索する

  • 解決済

    【Spring】csv出力の流れが知りたい

    現在上記タグの技術を使ってcsv出力を実装しようとしています。 仕様としては、 1.csv出力ボタン押下する 2.検索条件でDBからデータを取得 3.そのデータをcsv

  • 受付中

    CSVファイルの保存について

    スクレイピングをしていて、ファイルを保存したいのですが、エラーが出てしまい保存できません。以下のコードを書いているのですが、これだと保存はできないのでしょうか? CSV.op

  • 解決済

    WordPress:Custom Field TemplateからAdvanced Custom F...

    現在Custom Field Templateを利用しているのですが、いろいろと融通が利かなくて「Advanced custom template」にこの度移行したいと考えておりま

  • 解決済

    CSVをJavaで読み込んでMySQLにINSERTした時に問題が起きる。

     前提・実現したいこと csvファイルをJavaで読み込んでMySQLにINSERTしようとしています。 何も入っていない空のテーブルにCSVファイルの内容をINSERTしたところ

同じタグがついた質問を見る

  • Ruby

    7968questions

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