Rubyファイルを使用する必要があります。1つには統計計算用のメソッドを含むモジュールが含まれ、もう1つのファイルにはモジュール内のメソッドの1つを呼び出します。Rubyでそれを行うにはどうすればよいですか?
それは正しい方法ですか?
require 'name of the file with the module'
a=[1,2,3,4]
a.method1
ファイルが Ruby のロード パスのいずれかに配置されていない限り、Require はファイルへの絶対パスを必要とします。でデフォルトのロード パスを表示できますputs $:
。ファイルをロードするには、次のいずれかを実行するのが一般的です。
メイン ファイルのディレクトリをロード パスに追加し、require で相対パスを使用します。
$: << File.dirname(__FILE__)
require "my_module"
単一のファイルのみをロードする Ruby 1.8 コードには、多くの場合、次のようなワンライナーが含まれます。
require File.expand_path("../my_module", __FILE__)
Ruby 1.9 では、require_relative: が追加されました。
require_relative "my_module"
モジュールでは、メソッドをクラス メソッドとして定義するか、Module#module_function を使用する必要があります。
module MyModule
def self.method1 ary
...
end
def method2
...
end
module_function :method2
end
a = [1,2,3,4]
MyModule.method1(a)
モジュールファイルが必要な検索パスにある場合、あなたのやり方は正しいです。
モジュールがオブジェクト自体によって使用されるメソッドを提供する場合は、次のことを行う必要があります。
require 'name of the file with the module'
a=[1,2,3,4]
a.extend MyModule # here "a" can use the methods of MyModule
a.method1
Object#extendを参照してください。
それ以外の場合、モジュールでメソッドを直接使用する場合は、次を使用します。
MyModule.method1(a)