diff options
| author | Xinhui | 2017-07-25 11:53:33 +0200 |
|---|---|---|
| committer | Xinhui | 2017-07-25 11:53:33 +0200 |
| commit | ebd06eb030df87fda25dab9d598813ff80ab57e6 (patch) | |
| tree | 849db5c4415519ba987ab5db2c6c3538d78bdac5 /app | |
| parent | 9ced7dec0adcdd886fba68e311d8d784434d9af1 (diff) | |
| download | chouette-core-ebd06eb030df87fda25dab9d598813ff80ab57e6.tar.bz2 | |
StifCodifligneAttributesSupport for Line objectid
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/chouette/line.rb | 2 | ||||
| -rw-r--r-- | app/models/chouette/stif_codifligne_objectid.rb | 18 | ||||
| -rw-r--r-- | app/models/concerns/stif_codifligne_attributes_support.rb | 11 |
3 files changed, 30 insertions, 1 deletions
diff --git a/app/models/chouette/line.rb b/app/models/chouette/line.rb index 33a2fbb00..63d2d1606 100644 --- a/app/models/chouette/line.rb +++ b/app/models/chouette/line.rb @@ -1,5 +1,5 @@ class Chouette::Line < Chouette::ActiveRecord - include DefaultNetexAttributesSupport + include StifCodifligneAttributesSupport include LineRestrictions include LineReferentialSupport include StifTransportModeEnumerations diff --git a/app/models/chouette/stif_codifligne_objectid.rb b/app/models/chouette/stif_codifligne_objectid.rb new file mode 100644 index 000000000..46109e24f --- /dev/null +++ b/app/models/chouette/stif_codifligne_objectid.rb @@ -0,0 +1,18 @@ +class Chouette::StifCodifligneObjectid < String + + @@format = /^([A-Za-z_]+):([A-Za-z]+):([A-Za-z]+):([0-9A-Za-z_-]+)$/ + cattr_reader :format + + def parts + match(format).try(:captures) + end + + def object_type + parts.try(:third) + end + + def local_id + parts.try(:fourth) + end + +end diff --git a/app/models/concerns/stif_codifligne_attributes_support.rb b/app/models/concerns/stif_codifligne_attributes_support.rb new file mode 100644 index 000000000..4d18b89e0 --- /dev/null +++ b/app/models/concerns/stif_codifligne_attributes_support.rb @@ -0,0 +1,11 @@ +module StifCodifligneAttributesSupport + extend ActiveSupport::Concern + + included do + validates_presence_of :objectid + end + + def objectid + Chouette::StifCodifligneObjectid.new read_attribute(:objectid) + end +end |
