diff options
| author | Xinhui | 2016-10-25 14:25:10 +0200 | 
|---|---|---|
| committer | Xinhui | 2016-10-25 14:30:14 +0200 | 
| commit | 6acac72115b2e575fb1698d74958356fe4d542f8 (patch) | |
| tree | 4a6a4718c0af1b25b2b3ff08eba1f1715c64e059 /app/models/referential_cloning.rb | |
| parent | 7fb087a735028cf783072886c968e4149dee7e7d (diff) | |
| download | chouette-core-6acac72115b2e575fb1698d74958356fe4d542f8.tar.bz2 | |
Worker referential_cloning
Refs #1863
Diffstat (limited to 'app/models/referential_cloning.rb')
| -rw-r--r-- | app/models/referential_cloning.rb | 20 | 
1 files changed, 17 insertions, 3 deletions
| diff --git a/app/models/referential_cloning.rb b/app/models/referential_cloning.rb index 8d765f985..9bf824ac5 100644 --- a/app/models/referential_cloning.rb +++ b/app/models/referential_cloning.rb @@ -2,6 +2,12 @@ class ReferentialCloning < ActiveRecord::Base    include AASM    belongs_to :source_referential, class_name: 'Referential'    belongs_to :target_referential, class_name: 'Referential' +  after_commit :perform_clone, :on => :create + +  private +  def perform_clone +    ReferentialCloningWorker.perform_async(self.id) +  end    aasm column: :status do      state :new, :initial => true @@ -9,16 +15,24 @@ class ReferentialCloning < ActiveRecord::Base      state :successful      state :failed -    event :run do +    event :run, after: :update_started_at do        transitions :from => [:new, :failed], :to => :pending      end -    event :successful do +    event :successful, after: :update_ended_at do        transitions :from => [:pending, :failed], :to => :successful      end -    event :failed do +    event :failed, after: :update_ended_at do        transitions :from => :pending, :to => :failed      end    end + +  def update_started_at +    update_attribute(:started_at, Time.now) +  end + +  def update_ended_at +    update_attribute(:ended_at, Time.now) +  end  end | 
