AWS S3 gemを使用するクラスがあり、 gemを使用するいくつかのメソッドがクラスにあります。私の問題は、複数の場所で構成するのではなく、オブジェクトのプロパティにしたいということです。
PHPでは、これを行います。
<?php
class myClass {
private $obj;
public function __construct() {
$this->obj = new Object();
}
}
?>
そして、myClassのどこでも$ this-> obj-> method()を使用できます。
私はルビーでの仕事に似るようになるのに苦労しています。
私のシナリオはこれに似ています。
require 'aws/s3'
class ProfileVideo < ActiveRecord::Base
def self.cleanup
# <snip> YAML load my config etc etc
AWS::S3::Base.establish_connection!(
:access_key_id => @aws_config['aws_key'],
:secret_access_key => @aws_config['aws_secret']
)
end
def self.another_method
# I want to use AWS::S3 here without needing to establish connection again
end
end
また、私のクラスでは、初期化が実行に失敗することに気づきました。単純な「ここに」を置くだけでは何も起こりません。これを考えると、レーキタスクであり、他の方法で「ここに」置くことができます。おそらくrakeがProfileVideo.newを実行するように初期化しないかどうかはわかりませんか?
とにかく、よろしくお願いします。