カスタムクラスの初期化子の構成

瞬間

作成しているカスタムgemの構成設定を設定するにはどうすればよいですか?

他のgemから、構成ファイルは次のようになることがわかりました。

# config/intializers/magento_client.rb
MagentoClient.configure do |config|
  config.consumer_key = "1234"
  config.consumer_secret = "5678"
  ...
end

この方法でこれらの構成を使用したいと思いますprepare_access_token

class MagentoClient
  require "oauth"
  require "omniauth"
  require "multi_json"
  require "ostruct"

  def initialize
    @access_token = prepare_access_token
  end

  def find_by(opts) 
    attributes = MultiJson.decode(@access_token.get("/api/rest/products?filter[1][attribute]=isbn&filter[1][eq]=#{opts[:isbn]}&filter[2][attribute]=purchase_type&filter[2][eq]=#{purchase_type_id}").body)
  end

private

  def prepare_access_token
    consumer = OAuth::Consumer.new(@@consumer_key, @@consumer_secret, {:site => @@url})
    token_hash = {oauth_token: @@access_key, oauth_token_secret: @@access_secret}
    access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
  end
end

次に、次のようなクラスを使用したいと思います。

magento_client = MagentoClient.new
magento_client.find_by(isbn: 1234, purchase_type: "Buy New")

また、初期化ファイルにクラス(magento_client)と同じ名前を付けることはできますか?

瞬間

最終的にこのソリューションを使用しました。

# in Gem: lib/magento_rest_api
require "magento_rest_api/version"

module MagentoRestApi
  class << self
    attr_accessor :consumer_key, :consumer_secret, :site, :access_key, :access_secret, :url_params
  end

  def self.configure(&block)
    yield self
  end  

  class Client
    require "oauth"

    def find_by(opts)
      @access_token ||= prepare_access_token       
      [...]   
    end
  private
    def prepare_access_token
      consumer = OAuth::Consumer.new(MagentoRestApi.consumer_key, MagentoRestApi.consumer_secret, :site => MagentoRestApi.site)
      token_hash = {oauth_token: MagentoRestApi.access_key, oauth_token_secret: MagentoRestApi.access_secret}
      access_token = OAuth::AccessToken.from_hash(consumer, token_hash)
    end
    [...]
  end
end

# in Rails: config/initializers/magento_rest_api.rb
MagentoRestApi.configure do |config|
  config.consumer_key = "123a"
  [...]
end

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

カスタムエラータイプの初期化子

分類Dev

Swiftのクラス初期化子?

分類Dev

カスタム構成クラスのモック

分類Dev

Swift 3.1 のカスタム初期化子のアクセス レベル

分類Dev

構造体のスカラー初期化子の過剰な要素

分類Dev

ブレース付き初期化子リストを使用した削除済みコンストラクターのデフォルトの構成

分類Dev

Swiftは、カスタム名のパラメーターなしでカスタム初期化子を作成します

分類Dev

初期化子リストの外部にあるカスタム削除プログラムを持つクラスメンバーの一意のポインター

分類Dev

ストームクラスター内のワーカーの構成

分類Dev

派生クラスの初期化子リスト

分類Dev

c ++:初期化子リスト順のコンストラクター

分類Dev

Javaでの初期化子とコンストラクタの使用

分類Dev

Symfony2のカスタム構成

分類Dev

Azure関数のカスタム構成

分類Dev

riemannのカスタム構成

分類Dev

カスタムブレース初期化子

分類Dev

ベクトルコンストラクターのペア:初期化子リストと明示的な構築

分類Dev

カスタムArduinoライブラリの構成

分類Dev

FlinkQueryableState:ローカルクラスターの構成の問題

分類Dev

Swift:カスタムViewController初期化子

分類Dev

コンストラクタ初期化子内でマップの初期化子リストを使用する

分類Dev

カスタムセクションのWeb構成変換

分類Dev

カスタム構成セクションの問題

分類Dev

初期化子リストによる抽象クラスのインスタンス化

分類Dev

カスタムTomcat構成フォルダーの構成

分類Dev

SwiftでUIViewControllerサブクラスのカスタム初期化子を作成するにはどうすればよいですか?

分類Dev

カスタムクラスの配列を初期化します

分類Dev

依存性注入のパブリックプロパティまたはカスタム初期化子?

分類Dev

SwiftのカスタムNSViewに指定された初期化子を提供する

Related 関連記事

  1. 1

    カスタムエラータイプの初期化子

  2. 2

    Swiftのクラス初期化子?

  3. 3

    カスタム構成クラスのモック

  4. 4

    Swift 3.1 のカスタム初期化子のアクセス レベル

  5. 5

    構造体のスカラー初期化子の過剰な要素

  6. 6

    ブレース付き初期化子リストを使用した削除済みコンストラクターのデフォルトの構成

  7. 7

    Swiftは、カスタム名のパラメーターなしでカスタム初期化子を作成します

  8. 8

    初期化子リストの外部にあるカスタム削除プログラムを持つクラスメンバーの一意のポインター

  9. 9

    ストームクラスター内のワーカーの構成

  10. 10

    派生クラスの初期化子リスト

  11. 11

    c ++:初期化子リスト順のコンストラクター

  12. 12

    Javaでの初期化子とコンストラクタの使用

  13. 13

    Symfony2のカスタム構成

  14. 14

    Azure関数のカスタム構成

  15. 15

    riemannのカスタム構成

  16. 16

    カスタムブレース初期化子

  17. 17

    ベクトルコンストラクターのペア:初期化子リストと明示的な構築

  18. 18

    カスタムArduinoライブラリの構成

  19. 19

    FlinkQueryableState:ローカルクラスターの構成の問題

  20. 20

    Swift:カスタムViewController初期化子

  21. 21

    コンストラクタ初期化子内でマップの初期化子リストを使用する

  22. 22

    カスタムセクションのWeb構成変換

  23. 23

    カスタム構成セクションの問題

  24. 24

    初期化子リストによる抽象クラスのインスタンス化

  25. 25

    カスタムTomcat構成フォルダーの構成

  26. 26

    SwiftでUIViewControllerサブクラスのカスタム初期化子を作成するにはどうすればよいですか?

  27. 27

    カスタムクラスの配列を初期化します

  28. 28

    依存性注入のパブリックプロパティまたはカスタム初期化子?

  29. 29

    SwiftのカスタムNSViewに指定された初期化子を提供する

ホットタグ

アーカイブ