diff options
Diffstat (limited to 'app/models/chouette/objectid/netex.rb')
| -rw-r--r-- | app/models/chouette/objectid/netex.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/app/models/chouette/objectid/netex.rb b/app/models/chouette/objectid/netex.rb new file mode 100644 index 000000000..5d27abb1f --- /dev/null +++ b/app/models/chouette/objectid/netex.rb @@ -0,0 +1,33 @@ +module Chouette + module Objectid + class Netex + include ActiveModel::Model + + attr_accessor :provider_id, :object_type, :local_id, :creation_id + validates_presence_of :provider_id, :object_type, :local_id, :creation_id + validate :must_respect_format + + def initialize(**attributes) + @provider_id = attributes[:provider_id] || 'chouette' + @object_type = attributes[:object_type] + @local_id = attributes[:local_id] + @creation_id = attributes[:creation_id] || 'LOC' + end + + @@format = /^([A-Za-z_-]+):([A-Za-z]+):([0-9A-Za-z_-]+):([A-Za-z]+)$/ + cattr_reader :format + + def to_s + "#{self.provider_id}:#{self.object_type}:#{self.local_id}:#{self.creation_id}" + end + + def must_respect_format + self.to_s.match(self.class.format) + end + + def short_id + local_id.try(:split, "-").try(:first) + end + end + end +end
\ No newline at end of file |
