diff options
| author | Marc Florisson | 2013-07-12 16:28:48 +0200 | 
|---|---|---|
| committer | Marc Florisson | 2013-07-12 16:28:48 +0200 | 
| commit | 2bccbc4d0c4e732a2af744d975f35c9d8f7bfd28 (patch) | |
| tree | 9444bb0b785b83b77191a08846465329edb59208 /app/exporters | |
| parent | 33db1788b37784c54e3db0be9fccdeed384ede89 (diff) | |
| download | chouette-core-2bccbc4d0c4e732a2af744d975f35c9d8f7bfd28.tar.bz2 | |
add kml export reporting, add journey_patterns in kml export
Diffstat (limited to 'app/exporters')
| -rw-r--r-- | app/exporters/chouette/kml/access_link_exporter.rb | 14 | ||||
| -rw-r--r-- | app/exporters/chouette/kml/access_point_exporter.rb | 14 | ||||
| -rw-r--r-- | app/exporters/chouette/kml/connection_link_exporter.rb | 14 | ||||
| -rw-r--r-- | app/exporters/chouette/kml/exporter.rb | 53 | ||||
| -rw-r--r-- | app/exporters/chouette/kml/journey_pattern_exporter.rb | 33 | ||||
| -rw-r--r-- | app/exporters/chouette/kml/line_exporter.rb | 16 | ||||
| -rw-r--r-- | app/exporters/chouette/kml/route_exporter.rb | 16 | ||||
| -rw-r--r-- | app/exporters/chouette/kml/stop_area_exporter.rb | 7 | 
8 files changed, 121 insertions, 46 deletions
| diff --git a/app/exporters/chouette/kml/access_link_exporter.rb b/app/exporters/chouette/kml/access_link_exporter.rb index 0a02443df..1cd9b5bbd 100644 --- a/app/exporters/chouette/kml/access_link_exporter.rb +++ b/app/exporters/chouette/kml/access_link_exporter.rb @@ -1,9 +1,10 @@  class Chouette::Kml::AccessLinkExporter    include ERB::Util -  attr_accessor :access_links, :template +  attr_accessor :access_links, :directory, :template -  def initialize(access_links) +  def initialize(access_links,directory)      @access_links = access_links +    @directory = directory      @template = File.open('app/views/api/kml/access_links/index.kml.erb' ){ |f| f.read }    end @@ -19,7 +20,14 @@ class Chouette::Kml::AccessLinkExporter      ".kml"    end -  def save(directory, name = nil) +  def self.save( models, directory, kml_export) +    self.new( models, directory).tap do |specific_exporter| +      specific_exporter.save +    end +    kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|ACCES_LINK_COUNT", :arguments => {"0" => models.size}) +  end + +  def save( name = nil)      File.open(directory + "/" + (name || kml_name) + file_extension, "w+") do |f|        f.write(render)      end if access_links.present? diff --git a/app/exporters/chouette/kml/access_point_exporter.rb b/app/exporters/chouette/kml/access_point_exporter.rb index 17791f95f..cc761f250 100644 --- a/app/exporters/chouette/kml/access_point_exporter.rb +++ b/app/exporters/chouette/kml/access_point_exporter.rb @@ -1,9 +1,10 @@  class Chouette::Kml::AccessPointExporter    include ERB::Util -  attr_accessor :access_points, :template +  attr_accessor :access_points, :directory, :template -  def initialize(access_points) +  def initialize(access_points,directory)      @access_points = access_points +    @directory = directory      @template = File.open('app/views/api/kml/access_points/index.kml.erb' ){ |f| f.read }    end @@ -19,7 +20,14 @@ class Chouette::Kml::AccessPointExporter      ".kml"    end -  def save(directory, name = nil) +  def self.save( models, directory, kml_export) +    self.new( models, directory).tap do |specific_exporter| +      specific_exporter.save +    end +    kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|ACCES_POINT_COUNT", :arguments => {"0" => models.size}) +  end + +  def save( name = nil)      File.open(directory + "/" + (name || kml_name) + file_extension, "w+") do |f|        f.write(render)      end if access_points.present? diff --git a/app/exporters/chouette/kml/connection_link_exporter.rb b/app/exporters/chouette/kml/connection_link_exporter.rb index dba998a21..16a93e5e3 100644 --- a/app/exporters/chouette/kml/connection_link_exporter.rb +++ b/app/exporters/chouette/kml/connection_link_exporter.rb @@ -1,9 +1,10 @@  class Chouette::Kml::ConnectionLinkExporter    include ERB::Util -  attr_accessor :connection_links, :template +  attr_accessor :connection_links, :directory, :template -  def initialize(connection_links) +  def initialize(connection_links,directory)      @connection_links = connection_links +    @directory = directory      @template = File.open('app/views/api/kml/connection_links/index.kml.erb' ){ |f| f.read }    end @@ -19,7 +20,14 @@ class Chouette::Kml::ConnectionLinkExporter      ".kml"    end -  def save(directory, name = nil) +  def self.save( models, directory, kml_export) +    self.new( models, directory).tap do |specific_exporter| +      specific_exporter.save +    end +    kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|CONNECTION_LINK_COUNT", :arguments => {"0" => models.size}) +  end + +  def save( name = nil)      File.open(directory + "/" + (name || kml_name) + file_extension, "w+") do |f|        f.write(render)      end if connection_links.present? diff --git a/app/exporters/chouette/kml/exporter.rb b/app/exporters/chouette/kml/exporter.rb index 2f1ca2cf3..5c488883c 100644 --- a/app/exporters/chouette/kml/exporter.rb +++ b/app/exporters/chouette/kml/exporter.rb @@ -1,9 +1,11 @@  class Chouette::Kml::Exporter     attr_reader :referential +  attr_reader :kml_export -  def initialize(referential) +  def initialize(referential, kml_export)      @referential = referential +    @kml_export = kml_export    end    def lines(object, ids) @@ -24,57 +26,52 @@ class Chouette::Kml::Exporter        FileUtils.rm(zip_file_path) if File.exists? zip_file_path         +      kml_export.log_messages.create( :severity => "ok", :key => "EXPORT", :arguments => {"0" => "KML"}) +        Dir.mktmpdir(nil, "/tmp"){ |temp_dir|          lines_collected = lines( options[:o], options[:id] ) -        lines_collected.each do |line| -          Chouette::Kml::LineExporter.new( line ).tap do |line_exporter| -            line_exporter.save(temp_dir) -          end -        end +        Chouette::Kml::LineExporter.save( lines_collected, temp_dir, kml_export)          routes = lines_collected.collect(&:routes).flatten.uniq -        routes.each do |route| -          Chouette::Kml::RouteExporter.new( route ).tap do |route_exporter| -            route_exporter.save(temp_dir) -          end -        end +        Chouette::Kml::RouteExporter.save( routes, temp_dir, kml_export) + +        journey_patterns = routes.map { |r| r.journey_patterns}.flatten +        Chouette::Kml::JourneyPatternExporter.save( journey_patterns, temp_dir, kml_export)          stop_areas = lines_collected.collect(&:stop_areas).flatten.uniq -        Chouette::Kml::StopAreaExporter.new( stop_areas ).tap do |stop_area_exporter| -          stop_area_exporter.save(temp_dir, "stop_areas") +        Chouette::Kml::StopAreaExporter.new( stop_areas, temp_dir ).tap do |stop_area_exporter| +          stop_area_exporter.save( "stop_areas")          end +        kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|QUAY_AND_BOARDING_POSITION_COUNT", :arguments => {"0" => stop_areas.size})          commercial_stop_areas = lines_collected.collect(&:commercial_stop_areas).flatten.uniq -        Chouette::Kml::StopAreaExporter.new( commercial_stop_areas ).tap do |stop_area_exporter| -          stop_area_exporter.save(temp_dir, "commercial_stop_areas") +        Chouette::Kml::StopAreaExporter.new( commercial_stop_areas, temp_dir ).tap do |stop_area_exporter| +          stop_area_exporter.save( "commercial_stop_areas")          end       +        kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|COMMERCIAL_COUNT", :arguments => {"0" => commercial_stop_areas.size})          if(options[:o].present?) # Add all objects            stop_places = referential.stop_areas.stop_place -          Chouette::Kml::StopAreaExporter.new( stop_places ).tap do |stop_area_exporter| -            stop_area_exporter.save(temp_dir, "stop_places") +          Chouette::Kml::StopAreaExporter.new( stop_places, temp_dir ).tap do |stop_area_exporter| +            stop_area_exporter.save( "stop_places")            end +          kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|STOP_PLACE_COUNT", :arguments => {"0" => stop_places.size})            itls = referential.stop_areas.itl -          Chouette::Kml::StopAreaExporter.new( itls ).tap do |stop_area_exporter| -            stop_area_exporter.save(temp_dir, "itls") +          Chouette::Kml::StopAreaExporter.new( itls, temp_dir ).tap do |stop_area_exporter| +            stop_area_exporter.save( "itls")            end +          kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|ITL_COUNT", :arguments => {"0" => itls.size})            connection_links = referential.connection_links -          Chouette::Kml::ConnectionLinkExporter.new( connection_links ).tap do |connection_link_exporter| -            connection_link_exporter.save(temp_dir) -          end +          Chouette::Kml::ConnectionLinkExporter.save( connection_links, temp_dir, kml_export)            access_links = referential.access_links -          Chouette::Kml::AccessLinkExporter.new( access_links ).tap do |access_link_exporter| -            access_link_exporter.save(temp_dir) -          end +          Chouette::Kml::AccessLinkExporter.save(access_links, temp_dir, kml_export)            access_points = referential.access_points -          Chouette::Kml::AccessPointExporter.new( access_points ).tap do |access_point_exporter| -            access_point_exporter.save(temp_dir) -          end +          Chouette::Kml::AccessPointExporter.save(access_points, temp_dir, kml_export)          end diff --git a/app/exporters/chouette/kml/journey_pattern_exporter.rb b/app/exporters/chouette/kml/journey_pattern_exporter.rb new file mode 100644 index 000000000..f5addc4bc --- /dev/null +++ b/app/exporters/chouette/kml/journey_pattern_exporter.rb @@ -0,0 +1,33 @@ +class Chouette::Kml::JourneyPatternExporter +  include ERB::Util +  attr_accessor :journey_pattern, :template + +  def initialize(journey_pattern) +    @journey_pattern = journey_pattern +    @template = File.open('app/views/api/kml/journey_patterns/show.kml.erb' ){ |f| f.read } +  end + +  def render() +    ERB.new(@template).result(binding) +  end + +  def kml_name +    "/line_#{journey_pattern.route.line_id}_route_#{journey_pattern.route.id}_journey_attern_#{journey_pattern.id}.kml" +  end + +  def self.save( journey_patterns, directory, kml_export) +    journey_patterns.each do |journey_pattern| +      self.new( journey_pattern ).tap do |specific_exporter| +        specific_exporter.save(directory) +      end +    end +    kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|JOURNEY_PATTERN_COUNT", :arguments => {"0" => journey_patterns.size}) +  end + +  def save(directory) +    File.open(directory + kml_name , "w+") do |f| +      f.write(render) +    end if journey_pattern.present? +  end +end + diff --git a/app/exporters/chouette/kml/line_exporter.rb b/app/exporters/chouette/kml/line_exporter.rb index 2359bb072..2e4eb5e47 100644 --- a/app/exporters/chouette/kml/line_exporter.rb +++ b/app/exporters/chouette/kml/line_exporter.rb @@ -1,9 +1,10 @@  class Chouette::Kml::LineExporter    include ERB::Util -  attr_accessor :line, :template +  attr_accessor :line, :directory, :template -  def initialize(line) +  def initialize(line,directory)      @line = line +    @directory = directory      @template = File.open('app/views/api/kml/lines/show.kml.erb' ){ |f| f.read }    end @@ -15,7 +16,16 @@ class Chouette::Kml::LineExporter      "/line_#{line.id}.kml"    end -  def save(directory) +  def self.save( lines, directory, kml_export) +    lines.each do |line| +      self.new( line, directory).tap do |specific_exporter| +        specific_exporter.save +      end +    end +    kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|LINE_COUNT", :arguments => {"0" => lines.size}) +  end + +  def save      File.open(directory + kml_name , "w+") do |f|        f.write(render)      end if line.present? diff --git a/app/exporters/chouette/kml/route_exporter.rb b/app/exporters/chouette/kml/route_exporter.rb index 44327f8c8..b1a74da5a 100644 --- a/app/exporters/chouette/kml/route_exporter.rb +++ b/app/exporters/chouette/kml/route_exporter.rb @@ -1,9 +1,10 @@  class Chouette::Kml::RouteExporter    include ERB::Util -  attr_accessor :route, :template +  attr_accessor :route, :directory, :template -  def initialize(route) +  def initialize(route,directory)      @route = route +    @directory = directory      @template = File.open('app/views/api/kml/routes/show.kml.erb' ){ |f| f.read }    end @@ -15,7 +16,16 @@ class Chouette::Kml::RouteExporter      "/line_#{route.line_id}_route_#{route.id}.kml"    end -  def save(directory) +  def self.save( routes, directory, kml_export) +    routes.each do |route| +      self.new( route, directory).tap do |specific_exporter| +        specific_exporter.save +      end +    end +    kml_export.log_messages.create( :severity => "ok", :key => "EXPORT|ROUTE_COUNT", :arguments => {"0" => routes.size}) +  end + +  def save      File.open(directory + kml_name , "w+") do |f|        f.write(render)      end if route.present? diff --git a/app/exporters/chouette/kml/stop_area_exporter.rb b/app/exporters/chouette/kml/stop_area_exporter.rb index 990e18c32..246fc114c 100644 --- a/app/exporters/chouette/kml/stop_area_exporter.rb +++ b/app/exporters/chouette/kml/stop_area_exporter.rb @@ -1,9 +1,10 @@  class Chouette::Kml::StopAreaExporter    include ERB::Util -  attr_accessor :stop_areas, :template +  attr_accessor :stop_areas, :directory, :template -  def initialize(stop_areas) +  def initialize(stop_areas,directory)      @stop_areas = stop_areas +    @directory = directory      @template = File.open('app/views/api/kml/stop_areas/index.kml.erb' ){ |f| f.read }    end @@ -19,7 +20,7 @@ class Chouette::Kml::StopAreaExporter      ".kml"    end -  def save(directory, name = nil) +  def save( name = nil)      File.open(directory + "/" + (name || kml_name) + file_extension, "w+") do |f|        f.write(render)      end if stop_areas.present? | 
