Sha256: 43ea121b5a39b8ae7113c14c92d3fcce9742aed37e11dcba8cc62cb3dcc240e9

Contents?: true

Size: 600 Bytes

Versions: 1

Compression:

Stored size: 600 Bytes

Contents

module OrderReporting
  class Report
    attr_reader :name

    def initialize(name)
      @name = name
    end

    def send_report
      orders.tap do |orders|
        deliver(mailer.send(@name, orders))
      end
    end

    private

    def deliver(mail)
      if mail.respond_to?(:deliver)
        mail.deliver
      elsif mail.respond_to?(:deliver_now)
        mail.deliver_now
      end
    end

    def mailer
      report[:mailer_class] || OrderReporting.mailer_class
    end

    def orders
      report[:query].orders
    end

    def report
      OrderReporting[@name]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
spree_order_reporting-0.0.3 lib/order_reporting/report.rb