diff options
| author | Xinhui | 2016-10-24 16:05:03 +0200 | 
|---|---|---|
| committer | Xinhui | 2016-10-24 16:05:03 +0200 | 
| commit | 7fb087a735028cf783072886c968e4149dee7e7d (patch) | |
| tree | cd89e06784afb3ddb2b7da1335075cc3be550366 | |
| parent | 45c6a1a9d775546e5543bf7bfb2dffd485bf1f0a (diff) | |
| download | chouette-core-7fb087a735028cf783072886c968e4149dee7e7d.tar.bz2 | |
Model ReferentialCloning
| -rw-r--r-- | app/models/referential_cloning.rb | 24 | ||||
| -rw-r--r-- | db/migrate/20161024135931_create_referential_clonings.rb | 13 | ||||
| -rw-r--r-- | db/schema.rb | 15 | ||||
| -rw-r--r-- | spec/factories/referential_clonings.rb | 6 | ||||
| -rw-r--r-- | spec/models/referential_cloning_spec.rb | 10 | 
5 files changed, 67 insertions, 1 deletions
| diff --git a/app/models/referential_cloning.rb b/app/models/referential_cloning.rb new file mode 100644 index 000000000..8d765f985 --- /dev/null +++ b/app/models/referential_cloning.rb @@ -0,0 +1,24 @@ +class ReferentialCloning < ActiveRecord::Base +  include AASM +  belongs_to :source_referential, class_name: 'Referential' +  belongs_to :target_referential, class_name: 'Referential' + +  aasm column: :status do +    state :new, :initial => true +    state :pending +    state :successful +    state :failed + +    event :run do +      transitions :from => [:new, :failed], :to => :pending +    end + +    event :successful do +      transitions :from => [:pending, :failed], :to => :successful +    end + +    event :failed do +      transitions :from => :pending, :to => :failed +    end +  end +end diff --git a/db/migrate/20161024135931_create_referential_clonings.rb b/db/migrate/20161024135931_create_referential_clonings.rb new file mode 100644 index 000000000..d82f30bb1 --- /dev/null +++ b/db/migrate/20161024135931_create_referential_clonings.rb @@ -0,0 +1,13 @@ +class CreateReferentialClonings < ActiveRecord::Migration +  def change +    create_table :referential_clonings do |t| +      t.string :status +      t.datetime :started_at +      t.datetime :ended_at +      t.references :source_referential, index: true +      t.references :target_referential, index: true + +      t.timestamps +    end +  end +end diff --git a/db/schema.rb b/db/schema.rb index 26736db87..3e877de49 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@  #  # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20161024123819) do +ActiveRecord::Schema.define(version: 20161024135931) do    # These are extensions that must be enabled in order to support this database    enable_extension "plpgsql" @@ -377,6 +377,19 @@ ActiveRecord::Schema.define(version: 20161024123819) do    add_index "pt_links", ["objectid"], :name => "pt_links_objectid_key", :unique => true +  create_table "referential_clonings", force: true do |t| +    t.string   "status" +    t.datetime "started_at" +    t.datetime "ended_at" +    t.integer  "source_referential_id" +    t.integer  "target_referential_id" +    t.datetime "created_at" +    t.datetime "updated_at" +  end + +  add_index "referential_clonings", ["source_referential_id"], :name => "index_referential_clonings_on_source_referential_id" +  add_index "referential_clonings", ["target_referential_id"], :name => "index_referential_clonings_on_target_referential_id" +    create_table "referential_metadata", force: true do |t|      t.integer   "referential_id"      t.integer   "line_ids",              array: true diff --git a/spec/factories/referential_clonings.rb b/spec/factories/referential_clonings.rb new file mode 100644 index 000000000..e968d44f1 --- /dev/null +++ b/spec/factories/referential_clonings.rb @@ -0,0 +1,6 @@ +FactoryGirl.define do +  factory :referential_cloning do +    association :source_referential, :factory => :referential +    association :target_referential, :factory => :referential +  end +end diff --git a/spec/models/referential_cloning_spec.rb b/spec/models/referential_cloning_spec.rb new file mode 100644 index 000000000..30391b53e --- /dev/null +++ b/spec/models/referential_cloning_spec.rb @@ -0,0 +1,10 @@ +require 'rails_helper' + +RSpec.describe ReferentialCloning, :type => :model do +  it 'should have a valid factory' do +    expect(FactoryGirl.build(:referential_cloning)).to be_valid +  end + +  it { should belong_to :source_referential } +  it { should belong_to :target_referential } +end | 
