gpt4 book ai didi

ruby - 在初始化期间调用实例方法的形式不佳吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:46 24 4
gpt4 key购买 nike

我正在考虑改进以下类的方法,然后突然想到:在初始化期间调用实例方法的形式不佳吗?

最初我将方法 set_last_updated_on 作为“run”方法的第一行,我很可能会把它留在那里,但问题仍然如上所述。

class FinancialUpdateService
def initialize(stock)
@stock = stock
set_last_updated_on
end

def run
fetch_latest_financial_data
remove_duplicate_data
store_latest_financial_data
end

private

def set_last_updated_on
@last_updated_on = @stock.financials.first.date.to_date
end

def fetch_latest_financial_data
@latest_financial_data = StockDataApi.new(@stock.symbol, {start_date: @last_updated_on, end_date: Date.today-1}).financial_history
end

def remove_duplicate_data
@latest_financial_data.delete_if { |data| data[:date].to_date <= @last_updated_on}
end

def store_latest_financial_data
@latest_financial_data.each do |d|
@stock.financials.create(adj_close: d.fetch(:adj_close), close: d.fetch(:close),
date: d.fetch(:date).to_time, high: d.fetch(:high), low: d.fetch(:low), open: d.fetch(:open),
volume: d.fetch(:volume))
end
end
end

最佳答案

那不是类方法,那是实例方法。

不,这不是糟糕的形式。在 initialize 中调用方法是完全正常且可取的。

关于ruby - 在初始化期间调用实例方法的形式不佳吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28819158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com