diff options
| author | Xinhui | 2016-10-19 12:19:52 +0200 | 
|---|---|---|
| committer | Xinhui | 2016-10-19 15:24:34 +0200 | 
| commit | 3416c562e3b139594b7cd267cf32f03b3982fcc0 (patch) | |
| tree | 0d61b24637ec5d55507083c6cf3eea191f4938aa | |
| parent | df75d5a41d71b06a12285153b7fb6616e575341b (diff) | |
| download | chouette-core-3416c562e3b139594b7cd267cf32f03b3982fcc0.tar.bz2 | |
Model ReferentialMetadata
Refs #1782
| -rw-r--r-- | Gemfile | 2 | ||||
| -rw-r--r-- | Gemfile.lock | 10 | ||||
| -rw-r--r-- | app/models/chouette/line.rb | 2 | ||||
| -rw-r--r-- | app/models/referential.rb | 2 | ||||
| -rw-r--r-- | app/models/referential_metadata.rb | 6 | ||||
| -rw-r--r-- | db/migrate/20161019090255_create_referential_metadata.rb | 13 | ||||
| -rw-r--r-- | db/schema.rb | 15 | ||||
| -rw-r--r-- | spec/factories/referential_metadata.rb | 9 | ||||
| -rw-r--r-- | spec/models/referential_metadata_spec.rb | 6 | ||||
| -rw-r--r-- | spec/models/referential_spec.rb | 3 | 
10 files changed, 66 insertions, 2 deletions
| @@ -21,6 +21,8 @@ gem 'sdoc', '~> 0.4.0', group: :doc  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring  gem 'spring', group: :development +# ActiveRecord associations on top of PostgreSQL arrays +gem 'has_array_of', git: 'git@github.com:AF83/has_array_of.git'  # Use ActiveModel has_secure_password  # gem 'bcrypt', '~> 3.1.7' diff --git a/Gemfile.lock b/Gemfile.lock index cda2bdf70..631c0bfbe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -6,6 +6,15 @@ GIT        chronic (>= 0.6.3)  GIT +  remote: git@github.com:AF83/has_array_of.git +  revision: 37a0b19e71e8ed8a10876a994649d83756d953d4 +  specs: +    has_array_of (0.0.1) +      activerecord (>= 4.0) +      pg +      railties (>= 4.0) + +GIT    remote: git@github.com:AF83/stif-codifline-api.git    revision: 72d53d7666736523b5cbef41a2de7e466d58ea1a    specs: @@ -599,6 +608,7 @@ DEPENDENCIES    google-analytics-rails    guard    guard-rspec +  has_array_of!    i18n-tasks    inherited_resources    jbuilder (~> 2.0) diff --git a/app/models/chouette/line.rb b/app/models/chouette/line.rb index c3a867caa..f2e3a2b08 100644 --- a/app/models/chouette/line.rb +++ b/app/models/chouette/line.rb @@ -18,6 +18,8 @@ class Chouette::Line < Chouette::ActiveRecord    has_many :footnotes, :inverse_of => :line, :validate => :true, :dependent => :destroy    accepts_nested_attributes_for :footnotes, :reject_if => :all_blank, :allow_destroy => true +  belongs_to_array_in_many :referential_metadatas +    attr_reader :group_of_line_tokens    attr_accessor :transport_mode diff --git a/app/models/referential.rb b/app/models/referential.rb index 98c60f549..f8f8961ff 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -8,7 +8,6 @@ class Referential < ActiveRecord::Base    validates_presence_of :time_zone    validates_presence_of :upper_corner    validates_presence_of :lower_corner -  validates_presence_of :workbench    validates_uniqueness_of :slug    validates_uniqueness_of :name @@ -33,6 +32,7 @@ class Referential < ActiveRecord::Base    has_many :companies, through: :line_referential    has_many :group_of_lines, through: :line_referential    has_many :networks, through: :line_referential +  has_many :referential_metadatas    belongs_to :stop_area_referential    validates_presence_of :stop_area_referential diff --git a/app/models/referential_metadata.rb b/app/models/referential_metadata.rb new file mode 100644 index 000000000..7b1cea301 --- /dev/null +++ b/app/models/referential_metadata.rb @@ -0,0 +1,6 @@ +class ReferentialMetadata < ActiveRecord::Base +  belongs_to :referential +  belongs_to :referential_source, class_name: 'Referential' + +  has_array_of :lines, class_name: 'Chouette::Line' +end diff --git a/db/migrate/20161019090255_create_referential_metadata.rb b/db/migrate/20161019090255_create_referential_metadata.rb new file mode 100644 index 000000000..d862e2df0 --- /dev/null +++ b/db/migrate/20161019090255_create_referential_metadata.rb @@ -0,0 +1,13 @@ +class CreateReferentialMetadata < ActiveRecord::Migration +  def change +    create_table :referential_metadata do |t| +      t.references :referential, index: true +      t.daterange :periode +      t.integer :line_ids, array: true +      t.index :line_ids, using: :gin +      t.references :referential_source, index: true + +      t.timestamps +    end +  end +end diff --git a/db/schema.rb b/db/schema.rb index 63614f440..8bb6cf986 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: 20161018121647) do +ActiveRecord::Schema.define(version: 20161019090255) 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: 20161018121647) do    add_index "pt_links", ["objectid"], :name => "pt_links_objectid_key", :unique => true +  create_table "referential_metadata", force: true do |t| +    t.integer   "referential_id" +    t.daterange "periode" +    t.integer   "line_ids",              array: true +    t.integer   "referential_source_id" +    t.datetime  "created_at" +    t.datetime  "updated_at" +  end + +  add_index "referential_metadata", ["line_ids"], :name => "index_referential_metadata_on_line_ids" +  add_index "referential_metadata", ["referential_id"], :name => "index_referential_metadata_on_referential_id" +  add_index "referential_metadata", ["referential_source_id"], :name => "index_referential_metadata_on_referential_source_id" +    create_table "referentials", force: true do |t|      t.string   "name"      t.string   "slug" diff --git a/spec/factories/referential_metadata.rb b/spec/factories/referential_metadata.rb new file mode 100644 index 000000000..1ce965f02 --- /dev/null +++ b/spec/factories/referential_metadata.rb @@ -0,0 +1,9 @@ +FactoryGirl.define do +  factory :referential_metadatum, :class => 'ReferentialMetadata' do +    referential nil +periode "" +line_ids 1 +referential_source nil +  end + +end diff --git a/spec/models/referential_metadata_spec.rb b/spec/models/referential_metadata_spec.rb new file mode 100644 index 000000000..6d1489ef8 --- /dev/null +++ b/spec/models/referential_metadata_spec.rb @@ -0,0 +1,6 @@ +require 'rails_helper' + +RSpec.describe ReferentialMetadata, :type => :model do +  it { should belong_to(:referential) } +  it { should belong_to(:referential_source) } +end diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb index cde219ee1..25dd97bdd 100644 --- a/spec/models/referential_spec.rb +++ b/spec/models/referential_spec.rb @@ -6,4 +6,7 @@ describe Referential, :type => :model do      referential = create(:referential)      #expect(referential.rule_parameter_sets.size).to eq(1)    end + +  it { should have_many(:referential_metadatas) } +  it { should belong_to(:workbench) }  end | 
