aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/chouette/access_point.rb
diff options
context:
space:
mode:
authorcedricnjanga2017-11-21 15:32:22 +0100
committercedricnjanga2017-11-21 15:32:22 +0100
commit763010ced3202c99f705562a373861f926aad9a1 (patch)
treea316366c92fcf9c88aa8d08ff34e0b737196d618 /app/models/chouette/access_point.rb
parent80bfa87237b78e426e4362a503fe4d72e130beb5 (diff)
downloadchouette-core-763010ced3202c99f705562a373861f926aad9a1.tar.bz2
Change the way we name classes
We now always use modules for namespaces => same structure for models, decorators, policies...
Diffstat (limited to 'app/models/chouette/access_point.rb')
-rw-r--r--app/models/chouette/access_point.rb276
1 files changed, 139 insertions, 137 deletions
diff --git a/app/models/chouette/access_point.rb b/app/models/chouette/access_point.rb
index 679d3862b..7757fdcfb 100644
--- a/app/models/chouette/access_point.rb
+++ b/app/models/chouette/access_point.rb
@@ -1,168 +1,170 @@
require 'geokit'
require 'geo_ruby'
-class Chouette::AccessPoint < Chouette::ActiveRecord
- # FIXME http://jira.codehaus.org/browse/JRUBY-6358
- self.primary_key = "id"
+module Chouette
+ class AccessPoint < Chouette::ActiveRecord
+ # FIXME http://jira.codehaus.org/browse/JRUBY-6358
+ self.primary_key = "id"
- include Geokit::Mappable
- include ProjectionFields
- include ObjectidSupport
+ include Geokit::Mappable
+ include ProjectionFields
+ include ObjectidSupport
- has_many :access_links, :dependent => :destroy
- belongs_to :stop_area
+ has_many :access_links, :dependent => :destroy
+ belongs_to :stop_area
- attr_accessor :access_point_type
- attr_writer :coordinates
+ attr_accessor :access_point_type
+ attr_writer :coordinates
- validates_presence_of :name
- validates_presence_of :access_type
+ validates_presence_of :name
+ validates_presence_of :access_type
- validates_presence_of :latitude, :if => :longitude
- validates_presence_of :longitude, :if => :latitude
- validates_numericality_of :latitude, :less_than_or_equal_to => 90, :greater_than_or_equal_to => -90, :allow_nil => true
- validates_numericality_of :longitude, :less_than_or_equal_to => 180, :greater_than_or_equal_to => -180, :allow_nil => true
+ validates_presence_of :latitude, :if => :longitude
+ validates_presence_of :longitude, :if => :latitude
+ validates_numericality_of :latitude, :less_than_or_equal_to => 90, :greater_than_or_equal_to => -90, :allow_nil => true
+ validates_numericality_of :longitude, :less_than_or_equal_to => 180, :greater_than_or_equal_to => -180, :allow_nil => true
- validates_format_of :coordinates, :with => %r{\A *-?(0?[0-9](\.[0-9]*)?|[0-8][0-9](\.[0-9]*)?|90(\.[0]*)?) *\, *-?(0?[0-9]?[0-9](\.[0-9]*)?|1[0-7][0-9](\.[0-9]*)?|180(\.[0]*)?) *\Z}, :allow_nil => true, :allow_blank => true
- before_save :coordinates_to_lat_lng
- def self.nullable_attributes
- [:street_name, :country_code, :comment, :long_lat_type, :zip_code, :city_name]
- end
+ validates_format_of :coordinates, :with => %r{\A *-?(0?[0-9](\.[0-9]*)?|[0-8][0-9](\.[0-9]*)?|90(\.[0]*)?) *\, *-?(0?[0-9]?[0-9](\.[0-9]*)?|1[0-7][0-9](\.[0-9]*)?|180(\.[0]*)?) *\Z}, :allow_nil => true, :allow_blank => true
+ before_save :coordinates_to_lat_lng
+ def self.nullable_attributes
+ [:street_name, :country_code, :comment, :long_lat_type, :zip_code, :city_name]
+ end
- def referential
- @referential ||= Referential.where(:slug => Apartment::Tenant.current).first!
- end
+ def referential
+ @referential ||= Referential.where(:slug => Apartment::Tenant.current).first!
+ end
- def combine_lat_lng
- if self.latitude.nil? || self.longitude.nil?
- ""
- else
- self.latitude.to_s+","+self.longitude.to_s
+ def combine_lat_lng
+ if self.latitude.nil? || self.longitude.nil?
+ ""
+ else
+ self.latitude.to_s+","+self.longitude.to_s
+ end
end
- end
- def coordinates
- @coordinates || combine_lat_lng
- end
+ def coordinates
+ @coordinates || combine_lat_lng
+ end
- def coordinates_to_lat_lng
- if ! @coordinates.nil?
- if @coordinates.empty?
- self.latitude = nil
- self.longitude = nil
- else
- self.latitude = BigDecimal.new(@coordinates.split(",").first)
- self.longitude = BigDecimal.new(@coordinates.split(",").last)
+ def coordinates_to_lat_lng
+ if ! @coordinates.nil?
+ if @coordinates.empty?
+ self.latitude = nil
+ self.longitude = nil
+ else
+ self.latitude = BigDecimal.new(@coordinates.split(",").first)
+ self.longitude = BigDecimal.new(@coordinates.split(",").last)
+ end
+ @coordinates = nil
end
- @coordinates = nil
end
- end
- def to_lat_lng
- Geokit::LatLng.new(latitude, longitude) if latitude and longitude
- end
+ def to_lat_lng
+ Geokit::LatLng.new(latitude, longitude) if latitude and longitude
+ end
- def geometry
- GeoRuby::SimpleFeatures::Point.from_lon_lat(longitude, latitude, 4326) if latitude and longitude
- end
+ def geometry
+ GeoRuby::SimpleFeatures::Point.from_lon_lat(longitude, latitude, 4326) if latitude and longitude
+ end
- def geometry=(geometry)
- geometry = geometry.to_wgs84
- self.latitude, self.longitude, self.long_lat_type = geometry.lat, geometry.lng, "WGS84"
- end
+ def geometry=(geometry)
+ geometry = geometry.to_wgs84
+ self.latitude, self.longitude, self.long_lat_type = geometry.lat, geometry.lng, "WGS84"
+ end
- def position
- geometry
- end
+ def position
+ geometry
+ end
- def position=(position)
- position = nil if String === position && position == ""
- position = Geokit::LatLng.normalize(position), 4326 if String === position
- self.latitude = position.lat
- self.longitude = position.lng
- end
+ def position=(position)
+ position = nil if String === position && position == ""
+ position = Geokit::LatLng.normalize(position), 4326 if String === position
+ self.latitude = position.lat
+ self.longitude = position.lng
+ end
- def default_position
- stop_area.geometry or stop_area.default_position
- end
+ def default_position
+ stop_area.geometry or stop_area.default_position
+ end
- def access_point_type
- access_type && Chouette::AccessPointType.new(access_type.underscore)
- end
+ def access_point_type
+ access_type && Chouette::AccessPointType.new(access_type.underscore)
+ end
- def access_point_type=(access_point_type)
- self.access_type = (access_point_type ? access_point_type.camelcase : nil)
- end
+ def access_point_type=(access_point_type)
+ self.access_type = (access_point_type ? access_point_type.camelcase : nil)
+ end
- @@access_point_types = nil
- def self.access_point_types
- @@access_point_types ||= Chouette::AccessPointType.all.select do |access_point_type|
- access_point_type.to_i >= 0
+ @@access_point_types = nil
+ def self.access_point_types
+ @@access_point_types ||= Chouette::AccessPointType.all.select do |access_point_type|
+ access_point_type.to_i >= 0
+ end
end
- end
- def generic_access_link_matrix
- matrix = Array.new
- hash = Hash.new
- access_links.each do |link|
- hash[link.link_key] = link
- end
- key=Chouette::AccessLink.build_link_key(self,stop_area,"access_point_to_stop_area")
- if hash.has_key?(key)
- matrix << hash[key]
- else
- link = Chouette::AccessLink.new
- link.access_point = self
- link.stop_area = stop_area
- link.link_orientation_type = "access_point_to_stop_area"
- matrix << link
- end
- key=Chouette::AccessLink.build_link_key(self,stop_area,"stop_area_to_access_point")
- if hash.has_key?(key)
- matrix << hash[key]
- else
- link = Chouette::AccessLink.new
- link.access_point = self
- link.stop_area = stop_area
- link.link_orientation_type = "stop_area_to_access_point"
- matrix << link
- end
- matrix
- end
+ def generic_access_link_matrix
+ matrix = Array.new
+ hash = Hash.new
+ access_links.each do |link|
+ hash[link.link_key] = link
+ end
+ key=Chouette::AccessLink.build_link_key(self,stop_area,"access_point_to_stop_area")
+ if hash.has_key?(key)
+ matrix << hash[key]
+ else
+ link = Chouette::AccessLink.new
+ link.access_point = self
+ link.stop_area = stop_area
+ link.link_orientation_type = "access_point_to_stop_area"
+ matrix << link
+ end
+ key=Chouette::AccessLink.build_link_key(self,stop_area,"stop_area_to_access_point")
+ if hash.has_key?(key)
+ matrix << hash[key]
+ else
+ link = Chouette::AccessLink.new
+ link.access_point = self
+ link.stop_area = stop_area
+ link.link_orientation_type = "stop_area_to_access_point"
+ matrix << link
+ end
+ matrix
+ end
- def detail_access_link_matrix
- matrix = Array.new
- hash = Hash.new
- access_links.each do |link|
- hash[link.link_key] = link
- end
- stop_area.children_at_base.each do |child|
- key=Chouette::AccessLink.build_link_key(self,child,"access_point_to_stop_area")
- if hash.has_key?(key)
- matrix << hash[key]
- else
- link = Chouette::AccessLink.new
- link.access_point = self
- link.stop_area = child
- link.link_orientation_type = "access_point_to_stop_area"
- matrix << link
- end
- key=Chouette::AccessLink.build_link_key(self,child,"stop_area_to_access_point")
- if hash.has_key?(key)
- matrix << hash[key]
- else
- link = Chouette::AccessLink.new
- link.access_point = self
- link.stop_area = child
- link.link_orientation_type = "stop_area_to_access_point"
- matrix << link
- end
- end
- matrix
- end
+ def detail_access_link_matrix
+ matrix = Array.new
+ hash = Hash.new
+ access_links.each do |link|
+ hash[link.link_key] = link
+ end
+ stop_area.children_at_base.each do |child|
+ key=Chouette::AccessLink.build_link_key(self,child,"access_point_to_stop_area")
+ if hash.has_key?(key)
+ matrix << hash[key]
+ else
+ link = Chouette::AccessLink.new
+ link.access_point = self
+ link.stop_area = child
+ link.link_orientation_type = "access_point_to_stop_area"
+ matrix << link
+ end
+ key=Chouette::AccessLink.build_link_key(self,child,"stop_area_to_access_point")
+ if hash.has_key?(key)
+ matrix << hash[key]
+ else
+ link = Chouette::AccessLink.new
+ link.access_point = self
+ link.stop_area = child
+ link.link_orientation_type = "stop_area_to_access_point"
+ matrix << link
+ end
+ end
+ matrix
+ end
- def geometry_presenter
- Chouette::Geometry::AccessPointPresenter.new self
+ def geometry_presenter
+ Chouette::Geometry::AccessPointPresenter.new self
+ end
end
-end
+end \ No newline at end of file