Sha256: 8e2b69e5a704683fb9727deefb776583c8f3abd1c716dc5fa70c3977421d2370

Contents?: true

Size: 631 Bytes

Versions: 3

Compression:

Stored size: 631 Bytes

Contents

require 'order_reporting/engine'
require 'order_reporting/report'
require 'order_reporting/schedulers/delayed_job_scheduler'
require 'order_reporting/queries/latest_orders_query'

module OrderReporting
  extend self

  attr_accessor :scheduler
  attr_accessor :mailer_class

  def define_report(name)
    @reports ||= {}
    @reports[name] = OpenStruct.new(name: name)
    yield @reports[name]
    setup_recurring_report(name)
  end

  def setup_recurring_report(name)
    return unless @reports[name].respond_to?(:send_every)
    scheduler.schedule(Report.new(name), self[name])
  end

  def [](name)
    @reports[name]
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spree_order_reporting-0.0.3 lib/order_reporting.rb
spree_order_reporting-0.0.2 lib/order_reporting.rb
spree_order_reporting-0.0.1 lib/order_reporting.rb