aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXinhui2017-07-10 15:04:51 +0200
committerXinhui2017-07-12 14:27:59 +0200
commitd46df6c67767eea788145278cbba2615c20869e9 (patch)
tree5161e98d288a59a0180fa97745cb5ed512c5a269
parentd1a055b6a2bbeae4f217fe85660a0612e22dabd1 (diff)
downloadchouette-core-d46df6c67767eea788145278cbba2615c20869e9.tar.bz2
Add checksum and checksum_source columns
Refs #3845
-rw-r--r--app/models/chouette/footnote.rb18
-rw-r--r--db/migrate/20170710125809_add_check_sum.rb13
-rw-r--r--db/migrate/20170710130230_add_check_sum_source.rb13
-rw-r--r--db/schema.rb506
-rw-r--r--spec/models/chouette/footnote_spec.rb27
5 files changed, 338 insertions, 239 deletions
diff --git a/app/models/chouette/footnote.rb b/app/models/chouette/footnote.rb
index de427b249..00a2b223a 100644
--- a/app/models/chouette/footnote.rb
+++ b/app/models/chouette/footnote.rb
@@ -3,4 +3,22 @@ class Chouette::Footnote < Chouette::ActiveRecord
has_and_belongs_to_many :vehicle_journeys, :class_name => 'Chouette::VehicleJourney'
validates_presence_of :line
+ before_save :update_checksum
+
+ def checksum_attributes
+ attrs = ['code', 'label']
+ self.slice(*attrs).values
+ end
+
+ def current_checksum_source
+ source = self.checksum_attributes.map!{ |x| x || '-' }
+ source.join('|')
+ end
+
+ def update_checksum
+ self.checksum_source = self.current_checksum_source
+ if self.checksum_source_changed?
+ self.checksum = Digest::SHA256.new.hexdigest(self.checksum_source)
+ end
+ end
end
diff --git a/db/migrate/20170710125809_add_check_sum.rb b/db/migrate/20170710125809_add_check_sum.rb
new file mode 100644
index 000000000..b91ddb74d
--- /dev/null
+++ b/db/migrate/20170710125809_add_check_sum.rb
@@ -0,0 +1,13 @@
+class AddCheckSum < ActiveRecord::Migration
+ def change
+ add_column :vehicle_journey_at_stops, :checksum, :string
+ add_column :footnotes, :checksum, :string
+ add_column :routing_constraint_zones, :checksum, :string
+ add_column :routes, :checksum, :string
+ add_column :journey_patterns, :checksum, :string
+ add_column :vehicle_journeys, :checksum, :string
+ add_column :time_table_dates, :checksum, :string
+ add_column :time_table_periods, :checksum, :string
+ add_column :time_tables, :checksum, :string
+ end
+end
diff --git a/db/migrate/20170710130230_add_check_sum_source.rb b/db/migrate/20170710130230_add_check_sum_source.rb
new file mode 100644
index 000000000..b8e36e954
--- /dev/null
+++ b/db/migrate/20170710130230_add_check_sum_source.rb
@@ -0,0 +1,13 @@
+class AddCheckSumSource < ActiveRecord::Migration
+ def change
+ add_column :vehicle_journey_at_stops, :checksum_source, :string
+ add_column :footnotes, :checksum_source, :string
+ add_column :routing_constraint_zones, :checksum_source, :string
+ add_column :routes, :checksum_source, :string
+ add_column :journey_patterns, :checksum_source, :string
+ add_column :vehicle_journeys, :checksum_source, :string
+ add_column :time_table_dates, :checksum_source, :string
+ add_column :time_table_periods, :checksum_source, :string
+ add_column :time_tables, :checksum_source, :string
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index e64e5c04a..d4c190a4b 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: 20170607141317) do
+ActiveRecord::Schema.define(version: 20170710130230) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -21,12 +21,12 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "access_links", id: :bigserial, force: :cascade do |t|
t.integer "access_point_id", limit: 8
t.integer "stop_area_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.decimal "link_distance", precision: 19, scale: 2
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.decimal "link_distance", precision: 19, scale: 2
t.boolean "lift_availability"
t.boolean "mobility_restricted_suitability"
t.boolean "stairs_availability"
@@ -34,9 +34,9 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.time "frequent_traveller_duration"
t.time "occasional_traveller_duration"
t.time "mobility_restricted_traveller_duration"
- t.string "link_type"
+ t.string "link_type", limit: 255
t.integer "int_user_needs"
- t.string "link_orientation"
+ t.string "link_orientation", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
end
@@ -44,26 +44,26 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "access_links", ["objectid"], name: "access_links_objectid_key", unique: true, using: :btree
create_table "access_points", id: :bigserial, force: :cascade do |t|
- t.string "objectid"
+ t.string "objectid", limit: 255
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.decimal "longitude", precision: 19, scale: 16
- t.decimal "latitude", precision: 19, scale: 16
- t.string "long_lat_type"
- t.string "country_code"
- t.string "street_name"
- t.string "contained_in"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.decimal "longitude", precision: 19, scale: 16
+ t.decimal "latitude", precision: 19, scale: 16
+ t.string "long_lat_type", limit: 255
+ t.string "country_code", limit: 255
+ t.string "street_name", limit: 255
+ t.string "contained_in", limit: 255
t.time "openning_time"
t.time "closing_time"
- t.string "access_type"
+ t.string "access_type", limit: 255
t.boolean "lift_availability"
t.boolean "mobility_restricted_suitability"
t.boolean "stairs_availability"
t.integer "stop_area_id", limit: 8
- t.string "zip_code"
- t.string "city_name"
+ t.string "zip_code", limit: 255
+ t.string "city_name", limit: 255
t.text "import_xml"
t.datetime "created_at"
t.datetime "updated_at"
@@ -73,18 +73,18 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "api_keys", id: :bigserial, force: :cascade do |t|
t.integer "referential_id", limit: 8
- t.string "token"
- t.string "name"
+ t.string "token", limit: 255
+ t.string "name", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "calendars", id: :bigserial, force: :cascade do |t|
- t.string "name"
- t.string "short_name"
- t.daterange "date_ranges", array: true
- t.date "dates", array: true
- t.boolean "shared", default: false
+ t.string "name", limit: 255
+ t.string "short_name", limit: 255
+ t.daterange "date_ranges", array: true
+ t.date "dates", array: true
+ t.boolean "shared", default: false
t.integer "organisation_id", limit: 8
t.datetime "created_at"
t.datetime "updated_at"
@@ -94,7 +94,7 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "calendars", ["short_name"], name: "index_calendars_on_short_name", unique: true, using: :btree
create_table "clean_up_results", id: :bigserial, force: :cascade do |t|
- t.string "message_key"
+ t.string "message_key", limit: 255
t.hstore "message_attributs"
t.integer "clean_up_id", limit: 8
t.datetime "created_at"
@@ -104,7 +104,7 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "clean_up_results", ["clean_up_id"], name: "index_clean_up_results_on_clean_up_id", using: :btree
create_table "clean_ups", id: :bigserial, force: :cascade do |t|
- t.string "status"
+ t.string "status", limit: 255
t.datetime "started_at"
t.datetime "ended_at"
t.integer "referential_id", limit: 8
@@ -118,20 +118,20 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "clean_ups", ["referential_id"], name: "index_clean_ups_on_referential_id", using: :btree
create_table "companies", id: :bigserial, force: :cascade do |t|
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "short_name"
- t.string "organizational_unit"
- t.string "operating_department_name"
- t.string "code"
- t.string "phone"
- t.string "fax"
- t.string "email"
- t.string "registration_number"
- t.string "url"
- t.string "time_zone"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "short_name", limit: 255
+ t.string "organizational_unit", limit: 255
+ t.string "operating_department_name", limit: 255
+ t.string "code", limit: 255
+ t.string "phone", limit: 255
+ t.string "fax", limit: 255
+ t.string "email", limit: 255
+ t.string "registration_number", limit: 255
+ t.string "url", limit: 255
+ t.string "time_zone", limit: 255
t.integer "line_referential_id", limit: 8
t.text "import_xml"
t.datetime "created_at"
@@ -145,13 +145,13 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "connection_links", id: :bigserial, force: :cascade do |t|
t.integer "departure_id", limit: 8
t.integer "arrival_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.decimal "link_distance", precision: 19, scale: 2
- t.string "link_type"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.decimal "link_distance", precision: 19, scale: 2
+ t.string "link_type", limit: 255
t.time "default_duration"
t.time "frequent_traveller_duration"
t.time "occasional_traveller_duration"
@@ -166,15 +166,31 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "connection_links", ["objectid"], name: "connection_links_objectid_key", unique: true, using: :btree
+ create_table "delayed_jobs", id: :bigserial, force: :cascade do |t|
+ t.integer "priority", default: 0
+ t.integer "attempts", default: 0
+ t.text "handler"
+ t.text "last_error"
+ t.datetime "run_at"
+ t.datetime "locked_at"
+ t.datetime "failed_at"
+ t.string "locked_by", limit: 255
+ t.string "queue", limit: 255
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
+
create_table "exports", id: :bigserial, force: :cascade do |t|
t.integer "referential_id", limit: 8
- t.string "status"
- t.string "type"
- t.string "options"
+ t.string "status", limit: 255
+ t.string "type", limit: 255
+ t.string "options", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
- t.string "references_type"
- t.string "reference_ids"
+ t.string "references_type", limit: 255
+ t.string "reference_ids", limit: 255
end
add_index "exports", ["referential_id"], name: "index_exports_on_referential_id", using: :btree
@@ -184,23 +200,23 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.integer "line_id", limit: 8
t.integer "connection_link_id", limit: 8
t.integer "stop_point_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
t.datetime "creation_time"
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.string "description"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.string "description", limit: 255
t.boolean "free_access"
- t.decimal "longitude", precision: 19, scale: 16
- t.decimal "latitude", precision: 19, scale: 16
- t.string "long_lat_type"
- t.decimal "x", precision: 19, scale: 2
- t.decimal "y", precision: 19, scale: 2
- t.string "projection_type"
- t.string "country_code"
- t.string "street_name"
- t.string "contained_in"
+ t.decimal "longitude", precision: 19, scale: 16
+ t.decimal "latitude", precision: 19, scale: 16
+ t.string "long_lat_type", limit: 255
+ t.decimal "x", precision: 19, scale: 2
+ t.decimal "y", precision: 19, scale: 2
+ t.string "projection_type", limit: 255
+ t.string "country_code", limit: 255
+ t.string "street_name", limit: 255
+ t.string "contained_in", limit: 255
end
add_index "facilities", ["objectid"], name: "facilities_objectid_key", unique: true, using: :btree
@@ -211,11 +227,13 @@ ActiveRecord::Schema.define(version: 20170607141317) do
end
create_table "footnotes", id: :bigserial, force: :cascade do |t|
- t.integer "line_id", limit: 8
- t.string "code"
- t.string "label"
+ t.integer "line_id", limit: 8
+ t.string "code", limit: 255
+ t.string "label", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
+ t.string "checksum"
+ t.string "checksum_source"
end
create_table "footnotes_vehicle_journeys", id: false, force: :cascade do |t|
@@ -224,12 +242,12 @@ ActiveRecord::Schema.define(version: 20170607141317) do
end
create_table "group_of_lines", id: :bigserial, force: :cascade do |t|
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.string "registration_number"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.string "registration_number", limit: 255
t.integer "line_referential_id", limit: 8
t.text "import_xml"
t.datetime "created_at"
@@ -246,7 +264,7 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "import_messages", id: :bigserial, force: :cascade do |t|
t.integer "criticity"
- t.string "message_key"
+ t.string "message_key", limit: 255
t.hstore "message_attributs"
t.integer "import_id", limit: 8
t.integer "resource_id", limit: 8
@@ -260,30 +278,30 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "import_resources", id: :bigserial, force: :cascade do |t|
t.integer "import_id", limit: 8
- t.string "status"
+ t.string "status", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
- t.string "type"
- t.string "reference"
- t.string "name"
+ t.string "type", limit: 255
+ t.string "reference", limit: 255
+ t.string "name", limit: 255
t.hstore "metrics"
end
add_index "import_resources", ["import_id"], name: "index_import_resources_on_import_id", using: :btree
create_table "imports", id: :bigserial, force: :cascade do |t|
- t.string "status"
- t.string "current_step_id"
+ t.string "status", limit: 255
+ t.string "current_step_id", limit: 255
t.float "current_step_progress"
t.integer "workbench_id", limit: 8
t.integer "referential_id", limit: 8
- t.string "name"
+ t.string "name", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
- t.string "file"
+ t.string "file", limit: 255
t.datetime "started_at"
t.datetime "ended_at"
- t.string "token_download"
+ t.string "token_download", limit: 255
t.string "type", limit: 255
end
@@ -318,18 +336,20 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "journey_patterns", id: :bigserial, force: :cascade do |t|
t.integer "route_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.string "registration_number"
- t.string "published_name"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.string "registration_number", limit: 255
+ t.string "published_name", limit: 255
t.integer "departure_stop_point_id", limit: 8
t.integer "arrival_stop_point_id", limit: 8
- t.integer "section_status", default: 0, null: false
+ t.integer "section_status", default: 0, null: false
t.datetime "created_at"
t.datetime "updated_at"
+ t.string "checksum"
+ t.string "checksum_source"
end
add_index "journey_patterns", ["objectid"], name: "journey_patterns_objectid_key", unique: true, using: :btree
@@ -349,7 +369,7 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "line_referential_sync_messages", id: :bigserial, force: :cascade do |t|
t.integer "criticity"
- t.string "message_key"
+ t.string "message_key", limit: 255
t.hstore "message_attributs"
t.integer "line_referential_sync_id", limit: 8
t.datetime "created_at"
@@ -364,42 +384,42 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.datetime "updated_at"
t.datetime "started_at"
t.datetime "ended_at"
- t.string "status"
+ t.string "status", limit: 255
end
add_index "line_referential_syncs", ["line_referential_id"], name: "index_line_referential_syncs_on_line_referential_id", using: :btree
create_table "line_referentials", id: :bigserial, force: :cascade do |t|
- t.string "name"
+ t.string "name", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
- t.integer "sync_interval", default: 1
+ t.integer "sync_interval", default: 1
end
create_table "lines", id: :bigserial, force: :cascade do |t|
t.integer "network_id", limit: 8
t.integer "company_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "number"
- t.string "published_name"
- t.string "transport_mode"
- t.string "registration_number"
- t.string "comment"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "number", limit: 255
+ t.string "published_name", limit: 255
+ t.string "transport_mode", limit: 255
+ t.string "registration_number", limit: 255
+ t.string "comment", limit: 255
t.boolean "mobility_restricted_suitability"
t.integer "int_user_needs"
t.boolean "flexible_service"
- t.string "url"
+ t.string "url", limit: 255
t.string "color", limit: 6
t.string "text_color", limit: 6
- t.string "stable_id"
+ t.string "stable_id", limit: 255
t.integer "line_referential_id", limit: 8
- t.boolean "deactivated", default: false
+ t.boolean "deactivated", default: false
t.text "import_xml"
- t.string "transport_submode"
- t.integer "secondary_company_ids", limit: 8, array: true
+ t.string "transport_submode", limit: 255
+ t.integer "secondary_company_ids", limit: 8, array: true
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "seasonal"
@@ -411,17 +431,17 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "lines", ["secondary_company_ids"], name: "index_lines_on_secondary_company_ids", using: :gin
create_table "networks", id: :bigserial, force: :cascade do |t|
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
+ t.string "creator_id", limit: 255
t.date "version_date"
- t.string "description"
- t.string "name"
- t.string "registration_number"
- t.string "source_name"
- t.string "source_type"
- t.string "source_identifier"
- t.string "comment"
+ t.string "description", limit: 255
+ t.string "name", limit: 255
+ t.string "registration_number", limit: 255
+ t.string "source_name", limit: 255
+ t.string "source_type", limit: 255
+ t.string "source_identifier", limit: 255
+ t.string "comment", limit: 255
t.text "import_xml"
t.integer "line_referential_id", limit: 8
t.datetime "created_at"
@@ -433,11 +453,11 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "networks", ["registration_number"], name: "networks_registration_number_key", using: :btree
create_table "organisations", id: :bigserial, force: :cascade do |t|
- t.string "name"
+ t.string "name", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
- t.string "data_format", default: "neptune"
- t.string "code"
+ t.string "data_format", limit: 255, default: "neptune"
+ t.string "code", limit: 255
t.datetime "synced_at"
t.hstore "sso_attributes"
end
@@ -448,12 +468,12 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.integer "start_of_link_id", limit: 8
t.integer "end_of_link_id", limit: 8
t.integer "route_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.decimal "link_distance", precision: 19, scale: 2
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.decimal "link_distance", precision: 19, scale: 2
t.datetime "created_at"
t.datetime "updated_at"
end
@@ -461,7 +481,7 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "pt_links", ["objectid"], name: "pt_links_objectid_key", unique: true, using: :btree
create_table "referential_clonings", id: :bigserial, force: :cascade do |t|
- t.string "status"
+ t.string "status", limit: 255
t.datetime "started_at"
t.datetime "ended_at"
t.integer "source_referential_id", limit: 8
@@ -482,30 +502,30 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.daterange "periodes", array: true
end
- add_index "referential_metadata", ["line_ids"], name: "index_referential_metadata_on_line_ids", using: :gin
+ add_index "referential_metadata", ["line_ids"], name: "index_referential_metadata_on_line_ids", using: :btree
add_index "referential_metadata", ["referential_id"], name: "index_referential_metadata_on_referential_id", using: :btree
add_index "referential_metadata", ["referential_source_id"], name: "index_referential_metadata_on_referential_source_id", using: :btree
create_table "referentials", id: :bigserial, force: :cascade do |t|
- t.string "name"
- t.string "slug"
+ t.string "name", limit: 255
+ t.string "slug", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
- t.string "prefix"
- t.string "projection_type"
- t.string "time_zone"
- t.string "bounds"
+ t.string "prefix", limit: 255
+ t.string "projection_type", limit: 255
+ t.string "time_zone", limit: 255
+ t.string "bounds", limit: 255
t.integer "organisation_id", limit: 8
t.text "geographical_bounds"
t.integer "user_id", limit: 8
- t.string "user_name"
- t.string "data_format"
+ t.string "user_name", limit: 255
+ t.string "data_format", limit: 255
t.integer "line_referential_id", limit: 8
t.integer "stop_area_referential_id", limit: 8
t.integer "workbench_id", limit: 8
t.datetime "archived_at"
t.integer "created_from_id", limit: 8
- t.boolean "ready", default: false
+ t.boolean "ready", default: false
end
add_index "referentials", ["created_from_id"], name: "index_referentials_on_created_from_id", using: :btree
@@ -513,44 +533,48 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "route_sections", id: :bigserial, force: :cascade do |t|
t.integer "departure_id", limit: 8
t.integer "arrival_id", limit: 8
- t.geometry "input_geometry", limit: {:srid=>4326, :type=>"line_string"}
- t.geometry "processed_geometry", limit: {:srid=>4326, :type=>"line_string"}
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
+ t.string "creator_id", limit: 255
t.float "distance"
t.boolean "no_processing"
+ t.geometry "input_geometry", limit: {:srid=>4326, :type=>"line_string"}
+ t.geometry "processed_geometry", limit: {:srid=>4326, :type=>"line_string"}
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "routes", id: :bigserial, force: :cascade do |t|
t.integer "line_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
t.integer "opposite_route_id", limit: 8
- t.string "published_name"
- t.string "number"
- t.string "direction"
- t.string "wayback"
+ t.string "published_name", limit: 255
+ t.string "number", limit: 255
+ t.string "direction", limit: 255
+ t.string "wayback", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
+ t.string "checksum"
+ t.string "checksum_source"
end
add_index "routes", ["objectid"], name: "routes_objectid_key", unique: true, using: :btree
create_table "routing_constraint_zones", id: :bigserial, force: :cascade do |t|
- t.string "name"
+ t.string "name", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
- t.string "objectid", null: false
- t.integer "object_version", limit: 8
- t.string "creator_id"
- t.integer "route_id", limit: 8
- t.integer "stop_point_ids", limit: 8, array: true
+ t.string "objectid", limit: 255, null: false
+ t.integer "object_version", limit: 8
+ t.string "creator_id", limit: 255
+ t.integer "route_id", limit: 8
+ t.integer "stop_point_ids", limit: 8, array: true
+ t.string "checksum"
+ t.string "checksum_source"
end
create_table "routing_constraints_lines", id: false, force: :cascade do |t|
@@ -560,7 +584,7 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "rule_parameter_sets", id: :bigserial, force: :cascade do |t|
t.text "parameters"
- t.string "name"
+ t.string "name", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
t.integer "organisation_id", limit: 8
@@ -574,7 +598,7 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "stop_area_referential_sync_messages", id: :bigserial, force: :cascade do |t|
t.integer "criticity"
- t.string "message_key"
+ t.string "message_key", limit: 255
t.hstore "message_attributs"
t.integer "stop_area_referential_sync_id", limit: 8
t.datetime "created_at"
@@ -589,43 +613,43 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.datetime "updated_at"
t.datetime "ended_at"
t.datetime "started_at"
- t.string "status"
+ t.string "status", limit: 255
end
add_index "stop_area_referential_syncs", ["stop_area_referential_id"], name: "index_stop_area_referential_syncs_on_stop_area_referential_id", using: :btree
create_table "stop_area_referentials", id: :bigserial, force: :cascade do |t|
- t.string "name"
+ t.string "name", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "stop_areas", id: :bigserial, force: :cascade do |t|
t.integer "parent_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.string "comment"
- t.string "area_type"
- t.string "registration_number"
- t.string "nearest_topic_name"
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.string "comment", limit: 255
+ t.string "area_type", limit: 255
+ t.string "registration_number", limit: 255
+ t.string "nearest_topic_name", limit: 255
t.integer "fare_code"
t.decimal "longitude", precision: 19, scale: 16
t.decimal "latitude", precision: 19, scale: 16
- t.string "long_lat_type"
- t.string "country_code"
- t.string "street_name"
+ t.string "long_lat_type", limit: 255
+ t.string "country_code", limit: 255
+ t.string "street_name", limit: 255
t.boolean "mobility_restricted_suitability"
t.boolean "stairs_availability"
t.boolean "lift_availability"
t.integer "int_user_needs"
- t.string "zip_code"
- t.string "city_name"
- t.string "url"
- t.string "time_zone"
+ t.string "zip_code", limit: 255
+ t.string "city_name", limit: 255
+ t.string "url", limit: 255
+ t.string "time_zone", limit: 255
t.integer "stop_area_referential_id", limit: 8
- t.string "status"
+ t.string "status", limit: 255
t.text "import_xml"
t.datetime "deleted_at"
t.datetime "created_at"
@@ -646,12 +670,12 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "stop_points", id: :bigserial, force: :cascade do |t|
t.integer "route_id", limit: 8
t.integer "stop_area_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
+ t.string "creator_id", limit: 255
t.integer "position"
- t.string "for_boarding"
- t.string "for_alighting"
+ t.string "for_boarding", limit: 255
+ t.string "for_alighting", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
end
@@ -661,9 +685,9 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "taggings", id: :bigserial, force: :cascade do |t|
t.integer "tag_id", limit: 8
t.integer "taggable_id", limit: 8
- t.string "taggable_type"
+ t.string "taggable_type", limit: 255
t.integer "tagger_id", limit: 8
- t.string "tagger_type"
+ t.string "tagger_type", limit: 255
t.string "context", limit: 128
t.datetime "created_at"
end
@@ -672,36 +696,40 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "taggings", ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context", using: :btree
create_table "tags", id: :bigserial, force: :cascade do |t|
- t.string "name"
- t.integer "taggings_count", default: 0
+ t.string "name", limit: 255
+ t.integer "taggings_count", default: 0
end
add_index "tags", ["name"], name: "index_tags_on_name", unique: true, using: :btree
create_table "time_table_dates", id: :bigserial, force: :cascade do |t|
- t.integer "time_table_id", limit: 8, null: false
+ t.integer "time_table_id", limit: 8, null: false
t.date "date"
- t.integer "position", null: false
+ t.integer "position", null: false
t.boolean "in_out"
+ t.string "checksum"
+ t.string "checksum_source"
end
add_index "time_table_dates", ["time_table_id"], name: "index_time_table_dates_on_time_table_id", using: :btree
create_table "time_table_periods", id: :bigserial, force: :cascade do |t|
- t.integer "time_table_id", limit: 8, null: false
+ t.integer "time_table_id", limit: 8, null: false
t.date "period_start"
t.date "period_end"
- t.integer "position", null: false
+ t.integer "position", null: false
+ t.string "checksum"
+ t.string "checksum_source"
end
add_index "time_table_periods", ["time_table_id"], name: "index_time_table_periods_on_time_table_id", using: :btree
create_table "time_tables", id: :bigserial, force: :cascade do |t|
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8, default: 1
- t.string "creator_id"
- t.string "version"
- t.string "comment"
+ t.string "creator_id", limit: 255
+ t.string "version", limit: 255
+ t.string "comment", limit: 255
t.integer "int_day_types", default: 0
t.date "start_date"
t.date "end_date"
@@ -710,6 +738,8 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.datetime "updated_at"
t.string "color", limit: 255
t.integer "created_from_id"
+ t.string "checksum"
+ t.string "checksum_source"
end
add_index "time_tables", ["calendar_id"], name: "index_time_tables_on_calendar_id", using: :btree
@@ -725,49 +755,49 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "time_tables_vehicle_journeys", ["vehicle_journey_id"], name: "index_time_tables_vehicle_journeys_on_vehicle_journey_id", using: :btree
create_table "timebands", id: :bigserial, force: :cascade do |t|
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "name"
- t.time "start_time", null: false
- t.time "end_time", null: false
+ t.string "creator_id", limit: 255
+ t.string "name", limit: 255
+ t.time "start_time", null: false
+ t.time "end_time", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", id: :bigserial, force: :cascade do |t|
- t.string "email", default: "", null: false
- t.string "encrypted_password", default: ""
- t.string "reset_password_token"
+ t.string "email", limit: 255, default: "", null: false
+ t.string "encrypted_password", limit: 255, default: ""
+ t.string "reset_password_token", limit: 255
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
- t.integer "sign_in_count", default: 0
+ t.integer "sign_in_count", default: 0
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
- t.string "current_sign_in_ip"
- t.string "last_sign_in_ip"
+ t.string "current_sign_in_ip", limit: 255
+ t.string "last_sign_in_ip", limit: 255
t.datetime "created_at"
t.datetime "updated_at"
t.integer "organisation_id", limit: 8
- t.string "name"
- t.string "confirmation_token"
+ t.string "name", limit: 255
+ t.string "confirmation_token", limit: 255
t.datetime "confirmed_at"
t.datetime "confirmation_sent_at"
- t.string "unconfirmed_email"
- t.integer "failed_attempts", default: 0
- t.string "unlock_token"
+ t.string "unconfirmed_email", limit: 255
+ t.integer "failed_attempts", default: 0
+ t.string "unlock_token", limit: 255
t.datetime "locked_at"
- t.string "authentication_token"
- t.string "invitation_token"
+ t.string "authentication_token", limit: 255
+ t.string "invitation_token", limit: 255
t.datetime "invitation_sent_at"
t.datetime "invitation_accepted_at"
t.integer "invitation_limit"
t.integer "invited_by_id", limit: 8
- t.string "invited_by_type"
+ t.string "invited_by_type", limit: 255
t.datetime "invitation_created_at"
- t.string "username"
+ t.string "username", limit: 255
t.datetime "synced_at"
- t.string "permissions", array: true
+ t.string "permissions", limit: 255, array: true
end
add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
@@ -778,14 +808,16 @@ ActiveRecord::Schema.define(version: 20170607141317) do
create_table "vehicle_journey_at_stops", id: :bigserial, force: :cascade do |t|
t.integer "vehicle_journey_id", limit: 8
t.integer "stop_point_id", limit: 8
- t.string "connecting_service_id"
- t.string "boarding_alighting_possibility"
+ t.string "connecting_service_id", limit: 255
+ t.string "boarding_alighting_possibility", limit: 255
t.time "arrival_time"
t.time "departure_time"
- t.string "for_boarding"
- t.string "for_alighting"
- t.integer "departure_day_offset", default: 0
- t.integer "arrival_day_offset", default: 0
+ t.string "for_boarding", limit: 255
+ t.string "for_alighting", limit: 255
+ t.integer "departure_day_offset", default: 0
+ t.integer "arrival_day_offset", default: 0
+ t.string "checksum"
+ t.string "checksum_source"
end
add_index "vehicle_journey_at_stops", ["stop_point_id"], name: "index_vehicle_journey_at_stops_on_stop_pointid", using: :btree
@@ -795,29 +827,31 @@ ActiveRecord::Schema.define(version: 20170607141317) do
t.integer "route_id", limit: 8
t.integer "journey_pattern_id", limit: 8
t.integer "company_id", limit: 8
- t.string "objectid", null: false
+ t.string "objectid", limit: 255, null: false
t.integer "object_version", limit: 8
- t.string "creator_id"
- t.string "comment"
- t.string "status_value"
- t.string "transport_mode"
- t.string "published_journey_name"
- t.string "published_journey_identifier"
- t.string "facility"
- t.string "vehicle_type_identifier"
+ t.string "creator_id", limit: 255
+ t.string "comment", limit: 255
+ t.string "status_value", limit: 255
+ t.string "transport_mode", limit: 255
+ t.string "published_journey_name", limit: 255
+ t.string "published_journey_identifier", limit: 255
+ t.string "facility", limit: 255
+ t.string "vehicle_type_identifier", limit: 255
t.integer "number", limit: 8
t.boolean "mobility_restricted_suitability"
t.boolean "flexible_service"
- t.integer "journey_category", default: 0, null: false
+ t.integer "journey_category", default: 0, null: false
t.datetime "created_at"
t.datetime "updated_at"
+ t.string "checksum"
+ t.string "checksum_source"
end
add_index "vehicle_journeys", ["objectid"], name: "vehicle_journeys_objectid_key", unique: true, using: :btree
add_index "vehicle_journeys", ["route_id"], name: "index_vehicle_journeys_on_route_id", using: :btree
create_table "workbenches", id: :bigserial, force: :cascade do |t|
- t.string "name"
+ t.string "name", limit: 255
t.integer "organisation_id", limit: 8
t.datetime "created_at"
t.datetime "updated_at"
@@ -829,20 +863,18 @@ ActiveRecord::Schema.define(version: 20170607141317) do
add_index "workbenches", ["organisation_id"], name: "index_workbenches_on_organisation_id", using: :btree
add_index "workbenches", ["stop_area_referential_id"], name: "index_workbenches_on_stop_area_referential_id", using: :btree
- add_foreign_key "access_links", "access_points", name: "aclk_acpt_fkey"
+ add_foreign_key "access_links", "access_points", name: "aclk_acpt_fkey", on_delete: :cascade
add_foreign_key "group_of_lines_lines", "group_of_lines", name: "groupofline_group_fkey", on_delete: :cascade
- add_foreign_key "journey_frequencies", "timebands", on_delete: :nullify
- add_foreign_key "journey_frequencies", "vehicle_journeys", on_delete: :nullify
- add_foreign_key "journey_pattern_sections", "journey_patterns", on_delete: :cascade
- add_foreign_key "journey_pattern_sections", "route_sections", on_delete: :cascade
+ add_foreign_key "journey_frequencies", "timebands", name: "journey_frequencies_timeband_id_fk", on_delete: :nullify
+ add_foreign_key "journey_frequencies", "vehicle_journeys", name: "journey_frequencies_vehicle_journey_id_fk", on_delete: :nullify
+ add_foreign_key "journey_pattern_sections", "journey_patterns", name: "journey_pattern_sections_journey_pattern_id_fk", on_delete: :cascade
+ add_foreign_key "journey_pattern_sections", "route_sections", name: "journey_pattern_sections_route_section_id_fk", on_delete: :cascade
add_foreign_key "journey_patterns", "routes", name: "jp_route_fkey", on_delete: :cascade
add_foreign_key "journey_patterns", "stop_points", column: "arrival_stop_point_id", name: "arrival_point_fkey", on_delete: :nullify
add_foreign_key "journey_patterns", "stop_points", column: "departure_stop_point_id", name: "departure_point_fkey", on_delete: :nullify
add_foreign_key "journey_patterns_stop_points", "journey_patterns", name: "jpsp_jp_fkey", on_delete: :cascade
add_foreign_key "journey_patterns_stop_points", "stop_points", name: "jpsp_stoppoint_fkey", on_delete: :cascade
- add_foreign_key "route_sections", "stop_areas", column: "arrival_id"
- add_foreign_key "route_sections", "stop_areas", column: "departure_id"
- add_foreign_key "routes", "routes", column: "opposite_route_id", name: "route_opposite_route_fkey"
+ add_foreign_key "routes", "routes", column: "opposite_route_id", name: "route_opposite_route_fkey", on_delete: :nullify
add_foreign_key "stop_areas", "stop_areas", column: "parent_id", name: "area_parent_fkey", on_delete: :nullify
add_foreign_key "stop_areas_stop_areas", "stop_areas", column: "child_id", name: "stoparea_child_fkey", on_delete: :cascade
add_foreign_key "stop_areas_stop_areas", "stop_areas", column: "parent_id", name: "stoparea_parent_fkey", on_delete: :cascade
diff --git a/spec/models/chouette/footnote_spec.rb b/spec/models/chouette/footnote_spec.rb
index 5c09e3931..b87afd8ed 100644
--- a/spec/models/chouette/footnote_spec.rb
+++ b/spec/models/chouette/footnote_spec.rb
@@ -1,9 +1,32 @@
require 'spec_helper'
describe Chouette::Footnote do
-
subject { build(:footnote) }
-
it { should validate_presence_of :line }
+ # context '#checksum_attributes' do
+ # it 'should return attributes values' do
+ # expect(subject.checksum_attributes).to eq [subject.code, subject.label]
+ # end
+ # end
+
+ # context '#current_checksum_source' do
+ # it 'should return instance current checksum source' do
+ # expect(subject.current_checksum_source).to eq("#{subject.code}|#{subject.label}")
+ # end
+
+ # it 'should replace nil attributes by dash (-)' do
+ # subject.code = nil
+ # expect(subject.current_checksum_source).to eq("-|#{subject.label}")
+ # end
+ # end
+
+ context '#checksum' do
+ let(:footnote) { create(:footnote) }
+
+ it 'should update checksum on update' do
+ ap footnote.checksum_source
+ ap footnote.checksum
+ end
+ end
end