我的服务对象已经增长了许多与URI对象,Net :: HTTP对象等有关的操作方法,这些方法需要大量的配置才能在现实生活中正常运行。
因此,它看起来很像一个凌乱的代码,其中包含许多与我调用的标题本身无关的内容。为了正常工作,此代码已经超出了我之前创建简单服务对象时的想象。虽然,它确实有效。但只是一团糟。
我在此文件上传递了250行标记,并且已经在其中调用了3种不同的服务。
也许有人可以如何使这项服务更清洁?
class InstagramServices
attr_reader :client, :job, :br, :device
def self.call(*args, &block)
new(*args, &block).execute_job
end
def initialize(params)
@job = Job.includes(:client).find(params[0][0]["id"])
@client = @job.client
end
def execute_job
return false unless job.is_waiting?
return "Testing OK" if Rails.env.development?
case job.name
when 'post'
post_job
when 'like'
like_job
when 'follow'
follow_job
when 'geo'
geotag_job
end
end
结束
InstagramService
可能看起来更像: