プロパティにアクセスし、そのプロパティにデータがない場合に、RESTAPIから動的にデータをロードするモデルがあります。
class Issue
attr_accessor :ticket_title, :priority, :description
@ticket_title
@priority
@description
def priority
if !@priority.empty?
updateProperties()
end
@priority
end
def description
if !@description.empty?
updateProperties()
end
@description
end
def ticket_title
if !@ticket_title.empty?
updateProperties()
end
@ticket_title
end
def updateProperties
# loads all data from REST API
end
def initialize (hsh = {})
hsh.each { |key, value|
self.instance_variable_set("@#{key}", value)
}
end
end
2つの問題があります:
- モデルをで初期化する場合
RedmineIssue.new :ticket_title => 'test'
、モデルを呼び出したくupdateProperties
ありませんが、どういうわけかそうします。 - 関数を魔法のように宣言する方法はありますか?つまり、実際の関数がない場合は、メタ関数を実行してみてください。