diff options
| author | Luc Donnet | 2018-04-10 17:40:17 +0200 |
|---|---|---|
| committer | GitHub | 2018-04-10 17:40:17 +0200 |
| commit | b40a3e02db22762931a7e8e12187d5ba5bbc5618 (patch) | |
| tree | e731d5f62896fcdbc37c6ba8bea666a01033883e /lib/stif/netex_file.rb | |
| parent | 537a5078657ead0b89aa5220c05dfbc01ae94dca (diff) | |
| parent | 543e3d051731ef50f7420d03dd03849054925f32 (diff) | |
| download | chouette-core-b40a3e02db22762931a7e8e12187d5ba5bbc5618.tar.bz2 | |
Merge pull request #460 from af83/6360-workbenchimport-display
6360 Add checks on calendars during WorkbenchImport
Diffstat (limited to 'lib/stif/netex_file.rb')
| -rw-r--r-- | lib/stif/netex_file.rb | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/lib/stif/netex_file.rb b/lib/stif/netex_file.rb index db0801bbe..1e78ca04a 100644 --- a/lib/stif/netex_file.rb +++ b/lib/stif/netex_file.rb @@ -47,6 +47,23 @@ module STIF base_name = File.basename(file_name) STIF::NetexFile::LINE_FILE_FORMAT.match(base_name).try(:[], 'line_object_id') end + + def parse_calendars calendars + # <netex:ValidBetween> + # <netex:FromDate>2017-03-01</netex:FromDate> + # <netex:ToDate>2017-03-31</netex:ToDate> + # </netex:ValidBetween> + xml = Nokogiri::XML(calendars) + from_date = nil + to_date = nil + xml.xpath("//netex:ValidBetween", "netex" => NetexFile::XML_NAME_SPACE).each do |valid_between| + from_date = valid_between.xpath("netex:FromDate").try :text + to_date = valid_between.xpath("netex:ToDate").try :text + end + from_date = from_date && Date.parse(from_date) + to_date = to_date && Date.parse(to_date) + Range.new from_date, to_date + end end attr_accessor :name @@ -56,16 +73,7 @@ module STIF end def parse_calendars(calendars) - # <netex:ValidBetween> - # <netex:FromDate>2017-03-01</netex:FromDate> - # <netex:ToDate>2017-03-31</netex:ToDate> - # </netex:ValidBetween> - xml = Nokogiri::XML(calendars) - xml.xpath("//netex:ValidBetween", "netex" => NetexFile::XML_NAME_SPACE).each do |valid_between| - from_date = valid_between.xpath("netex:FromDate").try :text - to_date = valid_between.xpath("netex:ToDate").try :text - periods << Range.new(Date.parse(from_date), Date.parse(to_date)) - end + periods << self.class.parse_calendars(calendars) end def add_offer_file(line_object_id) |
