0

私は現在、既存の API からデータを取得し、オンデマンドで表示する単純な ruby​​ gem を作成しています。

require 'net/http'

module SimpleGem

@@api= 'http://api.example.com'

def self.exec
  reponse = Net::HTTP.get(URI.parse(@@api))
  result = JSON.parse(reponse)
end


end

データにアクセスする基本的な方法は、

demo = SimpleGem.exec()
デモ[:タイトル]

次のようなデータにアクセスできるように、オブジェクトとして処理したいと思います。

demo = SimpleGem.exec()
demo.title 
demo.description

ありがとう

4

2 に答える 2

1

まず、属性/プロパティをサポートするオブジェクトを設計する必要があります。したがって、あなたの場合、タイトルと説明はオブジェクト SimpleGem のプロパティです。次のステップでは、コンストラクターまたはアクセサー (getter/setter) を使用してオブジェクトを設定します。

class SimpleGemObject

 #constructor
 def initialize(title,description)
  @title = title
  @description = description
 end

 #accessor methods
 def title=title
  @title = title
 end

 def description=description
  @description = description
 end
end

これは良い出発点となります。Ruby のオブジェクト指向の原則について詳しくは、こちらを参照してください。

更新 コンストラクト アプローチを採用するか、アクセサー アプローチを採用するかは、実際にはあなた次第です。コンストラクター アプローチの例を次に示します。

def self.exec
 reponse = Net::HTTP.get(URI.parse(@@api))
 result = JSON.parse(reponse)
 sampleObject = SampleObject.new(result[:title], result[:description])
end

self.exec は SampleObject 型のオブジェクトを返します。これで、demo = Sample.exec を呼び出すと、必要に応じて title および description 属性にアクセスできるようになります。

demo.title
demo.description
于 2013-10-12T20:04:57.650 に答える