Module: OrderReporting

Extended by:
OrderReporting
Included in:
OrderReporting
Defined in:
lib/order_reporting.rb,
lib/order_reporting/engine.rb,
lib/order_reporting/report.rb,
lib/order_reporting/version.rb,
lib/order_reporting/queries/latest_orders_query.rb,
lib/order_reporting/schedulers/delayed_job_scheduler.rb,
app/jobs/order_reporting/recurring_report_delayed_job.rb,
lib/generators/order_reporting/install/install_generator.rb

Defined Under Namespace

Modules: Generators Classes: DelayedJobScheduler, Engine, LatestOrdersQuery, RecurringReportDelayedJob, RecurringReportJob, Report

Constant Summary collapse

VERSION =
'0.0.3'

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#mailer_classObject

Returns the value of attribute mailer_class.



10
11
12
# File 'lib/order_reporting.rb', line 10

def mailer_class
  @mailer_class
end

#schedulerObject

Returns the value of attribute scheduler.



9
10
11
# File 'lib/order_reporting.rb', line 9

def scheduler
  @scheduler
end

Instance Method Details

#[](name) ⇒ Object



24
25
26
# File 'lib/order_reporting.rb', line 24

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

#define_report(name) {|| ... } ⇒ Object

Yields:

  • ()


12
13
14
15
16
17
# File 'lib/order_reporting.rb', line 12

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

#setup_recurring_report(name) ⇒ Object



19
20
21
22
# File 'lib/order_reporting.rb', line 19

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