Class: Spree::PromotionHandler::PromotionDuplicator

Inherits:
Object
  • Object
show all
Defined in:
app/models/spree/promotion_handler/promotion_duplicator.rb

Instance Method Summary collapse

Constructor Details

#initialize(promotion) ⇒ PromotionDuplicator

Returns a new instance of PromotionDuplicator.



4
5
6
# File 'app/models/spree/promotion_handler/promotion_duplicator.rb', line 4

def initialize(promotion)
  @promotion = promotion
end

Instance Method Details

#duplicateObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/models/spree/promotion_handler/promotion_duplicator.rb', line 8

def duplicate
  @new_promotion = @promotion.dup
  @new_promotion.path = "#{@promotion.path}_new"
  @new_promotion.name = "New #{@promotion.name}"
  @new_promotion.code = "#{@promotion.code}_new"

  ActiveRecord::Base.transaction do
    @new_promotion.save
    copy_rules
    copy_actions
  end

  @new_promotion
end