aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/hub_export.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/hub_export.rb')
-rw-r--r--app/models/hub_export.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/models/hub_export.rb b/app/models/hub_export.rb
new file mode 100644
index 000000000..3d93cbfae
--- /dev/null
+++ b/app/models/hub_export.rb
@@ -0,0 +1,35 @@
+class HubExport < Export
+
+ option :start_date
+ option :end_date
+
+ after_initialize :init_period
+
+ def init_period
+ unless Chouette::TimeTable.start_validity_period.nil?
+ if start_date.nil?
+ self.start_date = Chouette::TimeTable.start_validity_period
+ end
+ if end_date.nil?
+ self.end_date = Chouette::TimeTable.end_validity_period
+ end
+ end
+ end
+
+ def export_options
+ if (start_date.empty? && end_date.empty?)
+ super.merge(:format => :hub).except(:start_date).except(:end_date)
+ elsif start_date.empty?
+ super.merge(:format => :hub, :end_date => end_date).except(:start_date)
+ elsif end_date.empty?
+ super.merge(:format => :hub, :start_date => start_date).except(:end_date)
+ else
+ super.merge(:format => :hub, :start_date => start_date, :end_date => end_date)
+ end
+ end
+
+ def exporter
+ exporter ||= ::Chouette::Hub::Exporter.new(referential, self)
+ end
+
+end