diff options
| author | Xinhui | 2016-02-22 14:17:18 +0100 | 
|---|---|---|
| committer | Xinhui | 2016-02-22 14:17:18 +0100 | 
| commit | d49f47b4ac1db2cd88b96d830772bb7773924601 (patch) | |
| tree | 191c7b9cda9edf939792e7780df4e7460d685a4a /app/models/chouette/connection_link.rb | |
| parent | 633004afc5861a6e8158948ddfecd73bf4dd86a8 (diff) | |
| download | chouette-core-d49f47b4ac1db2cd88b96d830772bb7773924601.tar.bz2 | |
Merge model from ninoxe gem
Diffstat (limited to 'app/models/chouette/connection_link.rb')
| -rw-r--r-- | app/models/chouette/connection_link.rb | 47 | 
1 files changed, 47 insertions, 0 deletions
| diff --git a/app/models/chouette/connection_link.rb b/app/models/chouette/connection_link.rb new file mode 100644 index 000000000..045f7c1d9 --- /dev/null +++ b/app/models/chouette/connection_link.rb @@ -0,0 +1,47 @@ +class Chouette::ConnectionLink < Chouette::TridentActiveRecord +  # FIXME http://jira.codehaus.org/browse/JRUBY-6358 +  self.primary_key = "id" + +  attr_accessor :connection_link_type + +  belongs_to :departure, :class_name => 'Chouette::StopArea' +  belongs_to :arrival, :class_name => 'Chouette::StopArea' + +  validates_presence_of :name + +  def self.nullable_attributes +    [:link_distance, :default_duration, :frequent_traveller_duration, :occasional_traveller_duration, +      :mobility_restricted_traveller_duration, :link_type] +  end + +  def connection_link_type +    link_type && Chouette::ConnectionLinkType.new( link_type.underscore) +  end + +  def connection_link_type=(connection_link_type) +    self.link_type = (connection_link_type ? connection_link_type.camelcase : nil) +  end + +  @@connection_link_types = nil +  def self.connection_link_types +    @@connection_link_types ||= Chouette::ConnectionLinkType.all +  end + +  def possible_areas +    Chouette::StopArea.where("area_type != 'ITL'") +  end + +  def stop_areas +    Chouette::StopArea.where(:id => [self.departure_id,self.arrival_id]) +  end + +  def geometry +    GeoRuby::SimpleFeatures::LineString.from_points( [ departure.geometry, arrival.geometry], 4326) if departure.geometry and arrival.geometry +  end + +  def geometry_presenter +    Chouette::Geometry::ConnectionLinkPresenter.new self +  end + +end + | 
