Class: Prdigest::ProseRunner

Inherits:
Object
  • Object
show all
Defined in:
lib/prdigest/prose_runner.rb

Defined Under Namespace

Classes: GeneratedPayload, Outcome

Instance Method Summary collapse

Constructor Details

#initialize(config:, date: nil, deliver: false, repositories: nil, env: ENV, clock: nil, github: nil, generator: nil, renderer: nil, telegram_factory: nil, checkpoint_store_factory: nil) ⇒ ProseRunner

Returns a new instance of ProseRunner.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/prdigest/prose_runner.rb', line 15

def initialize(config:, date: nil, deliver: false, repositories: nil, env: ENV,
               clock: nil, github: nil, generator: nil, renderer: nil,
               telegram_factory: nil, checkpoint_store_factory: nil)
  @config = config
  @date = date && Date.iso8601(date.to_s)
  @deliver = deliver == true
  @repositories = repositories || config.repos
  @env = env
  @clock = clock || Clock.new(timezone: config.timezone)
  @github = github
  @generator = generator
  @renderer = renderer || ProseRenderer.new
  @telegram_factory = telegram_factory || method(:build_telegram)
  @checkpoint_store_factory = checkpoint_store_factory || method(:build_checkpoint_store)
end

Instance Method Details

#callObject



31
32
33
34
35
36
37
# File 'lib/prdigest/prose_runner.rb', line 31

def call
  date = @date || @clock.yesterday
  return deliver(date) if @deliver

  generated = generate(date)
  Outcome.new(date: date, prose: generated.prose)
end

#inspectObject Also known as: to_s



39
40
41
# File 'lib/prdigest/prose_runner.rb', line 39

def inspect
  "#<#{self.class} date=#{@date || "yesterday"} deliver=#{@deliver} credentials=[REDACTED]>"
end