Sha256: 53e1d1ff9a29068610deff200b4e70d6cdad12b93785c087d2d883d3353df3a0
Contents?: true
Size: 1.16 KB
Versions: 12
Compression:
Stored size: 1.16 KB
Contents
module Ticket::SaleTransitions extend ActiveSupport::Concern def take_off_sale begin off_sale! rescue Transitions::InvalidTransition return false end end def put_on_sale begin on_sale! rescue Transitions::InvalidTransition return false end end module ClassMethods def take_off_sale(tickets) return false if tickets.blank? attempt_transition(tickets, :off_sale) do Ticket.update_all({ :state => :off_sale }, { :id => tickets.collect(&:id)}) end Rails.logger.info ("Completed off saling!") tickets.first.show.refresh_stats Rails.logger.info ("Completed off sailing!") end def put_on_sale(tickets) return false if tickets.blank? attempt_transition(tickets, :on_sale) do Ticket.update_all({ :state => :on_sale }, { :id => tickets.collect(&:id)}) end tickets.first.show.refresh_stats end def attempt_transition(tickets, state) begin tickets.map(&state) yield rescue Transitions::InvalidTransition logger.info "Trying to transition ticket [#{}] on_sale, transition failed" end end end end
Version data entries
12 entries across 12 versions & 1 rubygems