ninoxe 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +4 -0
- data/app/models/chouette/access_link.rb +5 -1
- data/app/models/chouette/access_point.rb +14 -10
- data/app/models/chouette/connection_link.rb +5 -1
- data/app/models/chouette/group_of_line.rb +1 -1
- data/app/models/chouette/journey_pattern.rb +1 -1
- data/app/models/chouette/line.rb +5 -1
- data/app/models/chouette/mobility_need.rb +4 -0
- data/app/models/chouette/network.rb +1 -1
- data/app/models/chouette/pt_link.rb +1 -1
- data/app/models/chouette/route.rb +5 -1
- data/app/models/chouette/stop_area.rb +21 -13
- data/app/models/chouette/stop_point.rb +1 -1
- data/app/models/chouette/suitability.rb +5 -0
- data/app/models/chouette/time_table.rb +11 -2
- data/app/models/chouette/time_table_date.rb +1 -1
- data/app/models/chouette/time_table_period.rb +1 -1
- data/app/models/chouette/vehicle_journey.rb +1 -1
- data/app/models/chouette/vehicle_journey_at_stop.rb +1 -1
- data/app/presenters/chouette/geometry/access_link_presenter.rb +11 -0
- data/app/presenters/chouette/geometry/access_point_presenter.rb +11 -0
- data/app/presenters/chouette/geometry/connection_link_presenter.rb +11 -0
- data/app/presenters/chouette/geometry/general_presenter.rb +20 -0
- data/app/presenters/chouette/geometry/line_presenter.rb +42 -0
- data/app/presenters/chouette/geometry/route_presenter.rb +22 -0
- data/app/presenters/chouette/geometry/stop_area_presenter.rb +13 -0
- data/db/migrate/20130628124932_remove_projection_from_stop_areas.rb +19 -0
- data/db/migrate/20130628124951_remove_projection_from_access_points.rb +19 -0
- data/db/migrate/20130708081951_add_accessibility_to_stop_areas.rb +30 -0
- data/db/migrate/20130710122648_set_accessibiliity_to_existing_stop_area.rb +16 -0
- data/lib/factories/chouette_lines.rb +11 -0
- data/lib/ninoxe/version.rb +1 -1
- data/spec/models/chouette/access_point_spec.rb +0 -29
- data/spec/models/chouette/stop_area_spec.rb +0 -28
- data/spec/models/chouette/time_table_spec.rb +35 -13
- data/spec/presenters/chouette/geometry/general_presenter.rb +1 -0
- data/spec/presenters/chouette/geometry/line_presenter_spec.rb +13 -0
- data/spec/spec_helper.rb +0 -17
- metadata +242 -206
- data/README.rdoc +0 -3
data/README.md
ADDED
@@ -0,0 +1,4 @@
|
|
1
|
+
# Ninoxe [](http://badge.fury.io/rb/ninoxe) [](http://travis-ci.org/dryade/ninoxe?branch=master) [](https://gemnasium.com/dryade/ninoxe) [](https://codeclimate.com/github/dryade/ninoxe)
|
2
|
+
|
3
|
+
This gem rocks and uses MIT-LICENSE.
|
4
|
+
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Chouette::AccessLink < Chouette::TridentActiveRecord
|
2
2
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
3
|
-
|
3
|
+
self.primary_key = "id"
|
4
4
|
|
5
5
|
attr_accessor :access_link_type, :link_orientation_type, :link_key
|
6
6
|
|
@@ -59,5 +59,9 @@ class Chouette::AccessLink < Chouette::TridentActiveRecord
|
|
59
59
|
"S_#{stop_area.id}-A_#{access_point.id}"
|
60
60
|
end
|
61
61
|
end
|
62
|
+
|
63
|
+
def geometry_presenter
|
64
|
+
Chouette::Geometry::AccessLinkPresenter.new self
|
65
|
+
end
|
62
66
|
end
|
63
67
|
|
@@ -3,23 +3,24 @@ require 'geo_ruby'
|
|
3
3
|
|
4
4
|
class Chouette::AccessPoint < Chouette::TridentActiveRecord
|
5
5
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
6
|
-
|
6
|
+
self.primary_key = "id"
|
7
7
|
include Geokit::Mappable
|
8
8
|
has_many :access_links, :dependent => :destroy
|
9
9
|
belongs_to :stop_area
|
10
10
|
|
11
11
|
attr_accessor :access_point_type
|
12
12
|
attr_accessible :objectid, :object_version, :creation_time, :creator_id, :name, :comment
|
13
|
-
attr_accessible :longitude, :latitude, :long_lat_type
|
13
|
+
attr_accessible :longitude, :latitude, :long_lat_type
|
14
|
+
#attr_accessible :x, :y, :projection_type
|
14
15
|
attr_accessible :country_code, :street_name
|
15
16
|
attr_accessible :openning_time, :closing_time, :access_type, :access_point_type
|
16
17
|
attr_accessible :mobility_restricted_suitability, :stairs_availability, :lift_availability
|
17
18
|
attr_accessible :stop_area_id
|
18
19
|
|
19
20
|
# workaround of ruby 1.8 private method y block attribute y reading access
|
20
|
-
def y
|
21
|
-
|
22
|
-
end
|
21
|
+
#def y
|
22
|
+
# read_attribute :y
|
23
|
+
#end
|
23
24
|
|
24
25
|
validates_presence_of :name
|
25
26
|
validates_presence_of :access_type
|
@@ -29,13 +30,13 @@ class Chouette::AccessPoint < Chouette::TridentActiveRecord
|
|
29
30
|
validates_numericality_of :latitude, :less_than_or_equal_to => 90, :greater_than_or_equal_to => -90, :allow_nil => true
|
30
31
|
validates_numericality_of :longitude, :less_than_or_equal_to => 180, :greater_than_or_equal_to => -180, :allow_nil => true
|
31
32
|
|
32
|
-
validates_presence_of :x, :if => :y
|
33
|
-
validates_presence_of :y, :if => :x
|
34
|
-
validates_numericality_of :x, :allow_nil => true
|
35
|
-
validates_numericality_of :y, :allow_nil => true
|
33
|
+
#validates_presence_of :x, :if => :y
|
34
|
+
#validates_presence_of :y, :if => :x
|
35
|
+
#validates_numericality_of :x, :allow_nil => true
|
36
|
+
#validates_numericality_of :y, :allow_nil => true
|
36
37
|
|
37
38
|
def self.nullable_attributes
|
38
|
-
[:street_name, :country_code, :comment, :
|
39
|
+
[:street_name, :country_code, :comment, :long_lat_type]
|
39
40
|
end
|
40
41
|
|
41
42
|
def to_lat_lng
|
@@ -142,4 +143,7 @@ class Chouette::AccessPoint < Chouette::TridentActiveRecord
|
|
142
143
|
matrix
|
143
144
|
end
|
144
145
|
|
146
|
+
def geometry_presenter
|
147
|
+
Chouette::Geometry::AccessPointPresenter.new self
|
148
|
+
end
|
145
149
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Chouette::ConnectionLink < Chouette::TridentActiveRecord
|
2
2
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
3
|
-
|
3
|
+
self.primary_key = "id"
|
4
4
|
|
5
5
|
attr_accessor :connection_link_type
|
6
6
|
|
@@ -39,5 +39,9 @@ class Chouette::ConnectionLink < Chouette::TridentActiveRecord
|
|
39
39
|
GeoRuby::SimpleFeatures::LineString.from_points( [ departure.geometry, arrival.geometry], 4326) if departure.geometry and arrival.geometry
|
40
40
|
end
|
41
41
|
|
42
|
+
def geometry_presenter
|
43
|
+
Chouette::Geometry::ConnectionLinkPresenter.new self
|
44
|
+
end
|
45
|
+
|
42
46
|
end
|
43
47
|
|
data/app/models/chouette/line.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
class Chouette::Line < Chouette::TridentActiveRecord
|
2
2
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
3
|
-
|
3
|
+
self.primary_key = "id"
|
4
4
|
|
5
5
|
attr_accessor :transport_mode
|
6
6
|
attr_accessible :transport_mode, :network_id, :company_id, :objectid, :object_version
|
@@ -29,6 +29,10 @@ class Chouette::Line < Chouette::TridentActiveRecord
|
|
29
29
|
[:published_name, :number, :comment]
|
30
30
|
end
|
31
31
|
|
32
|
+
def geometry_presenter
|
33
|
+
Chouette::Geometry::LinePresenter.new self
|
34
|
+
end
|
35
|
+
|
32
36
|
def transport_mode
|
33
37
|
# return nil if transport_mode_name is nil
|
34
38
|
transport_mode_name && Chouette::TransportMode.new( transport_mode_name.underscore)
|
@@ -2,7 +2,7 @@ require 'geokit'
|
|
2
2
|
|
3
3
|
class Chouette::PtLink < Chouette::ActiveRecord
|
4
4
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
5
|
-
|
5
|
+
self.primary_key = "id"
|
6
6
|
|
7
7
|
attr_accessible :start_of_link_id, :end_of_link_id, :route_id, :objectid, :object_version, :creation_time, :creator_id, :name, :comment, :link_distance
|
8
8
|
include Geokit::Mappable
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Chouette::Route < Chouette::TridentActiveRecord
|
2
2
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
3
|
-
|
3
|
+
self.primary_key = "id"
|
4
4
|
|
5
5
|
attr_accessor :wayback_code
|
6
6
|
attr_accessor :direction_code
|
@@ -60,6 +60,10 @@ class Chouette::Route < Chouette::TridentActiveRecord
|
|
60
60
|
|
61
61
|
before_destroy :dereference_opposite_route
|
62
62
|
|
63
|
+
def geometry_presenter
|
64
|
+
Chouette::Geometry::RoutePresenter.new self
|
65
|
+
end
|
66
|
+
|
63
67
|
def dereference_opposite_route
|
64
68
|
self.line.routes.each do |r|
|
65
69
|
r.update_attributes( :opposite_route => nil) if r.opposite_route == self
|
@@ -3,7 +3,7 @@ require 'geo_ruby'
|
|
3
3
|
|
4
4
|
class Chouette::StopArea < Chouette::TridentActiveRecord
|
5
5
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
6
|
-
|
6
|
+
self.primary_key = "id"
|
7
7
|
include Geokit::Mappable
|
8
8
|
has_many :stop_points, :dependent => :destroy
|
9
9
|
has_many :access_points, :dependent => :destroy
|
@@ -18,14 +18,11 @@ class Chouette::StopArea < Chouette::TridentActiveRecord
|
|
18
18
|
|
19
19
|
attr_accessible :routing_stop_ids, :routing_line_ids, :children_ids, :stop_area_type, :parent_id, :objectid
|
20
20
|
attr_accessible :object_version, :creation_time, :creator_id, :name, :comment, :area_type, :registration_number
|
21
|
-
attr_accessible :nearest_topic_name, :fare_code, :longitude, :latitude, :long_lat_type
|
21
|
+
attr_accessible :nearest_topic_name, :fare_code, :longitude, :latitude, :long_lat_type
|
22
22
|
attr_accessible :country_code, :street_name
|
23
|
-
|
24
|
-
# workaround of ruby 1.8 private method y block attribute y reading access
|
25
|
-
def y
|
26
|
-
read_attribute :y
|
27
|
-
end
|
23
|
+
attr_accessible :mobility_restricted_suitability, :stairs_availability, :lift_availability, :int_user_needs
|
28
24
|
|
25
|
+
|
29
26
|
validates_uniqueness_of :registration_number, :allow_nil => true, :allow_blank => true
|
30
27
|
validates_format_of :registration_number, :with => %r{\A[0-9A-Za-z_-]+\Z}, :allow_blank => true
|
31
28
|
validates_presence_of :name
|
@@ -36,13 +33,8 @@ class Chouette::StopArea < Chouette::TridentActiveRecord
|
|
36
33
|
validates_numericality_of :latitude, :less_than_or_equal_to => 90, :greater_than_or_equal_to => -90, :allow_nil => true
|
37
34
|
validates_numericality_of :longitude, :less_than_or_equal_to => 180, :greater_than_or_equal_to => -180, :allow_nil => true
|
38
35
|
|
39
|
-
validates_presence_of :x, :if => :y
|
40
|
-
validates_presence_of :y, :if => :x
|
41
|
-
validates_numericality_of :x, :allow_nil => true
|
42
|
-
validates_numericality_of :y, :allow_nil => true
|
43
|
-
|
44
36
|
def self.nullable_attributes
|
45
|
-
[:registration_number, :street_name, :country_code, :fare_code, :nearest_topic_name, :comment, :
|
37
|
+
[:registration_number, :street_name, :country_code, :fare_code, :nearest_topic_name, :comment, :long_lat_type]
|
46
38
|
end
|
47
39
|
|
48
40
|
after_update :clean_invalid_access_links
|
@@ -75,6 +67,10 @@ class Chouette::StopArea < Chouette::TridentActiveRecord
|
|
75
67
|
end
|
76
68
|
end
|
77
69
|
|
70
|
+
def geometry_presenter
|
71
|
+
Chouette::Geometry::StopAreaPresenter.new self
|
72
|
+
end
|
73
|
+
|
78
74
|
def lines
|
79
75
|
if (area_type == 'CommercialStopPoint')
|
80
76
|
self.children.collect(&:stop_points).flatten.collect(&:route).flatten.collect(&:line).flatten.uniq
|
@@ -91,6 +87,18 @@ class Chouette::StopArea < Chouette::TridentActiveRecord
|
|
91
87
|
where :area_type => "CommercialStopPoint"
|
92
88
|
end
|
93
89
|
|
90
|
+
def self.stop_place
|
91
|
+
where :area_type => "StopPlace"
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.physical
|
95
|
+
where :area_type => [ "BoardingPosition", "Quay" ]
|
96
|
+
end
|
97
|
+
|
98
|
+
def self.itl
|
99
|
+
where :area_type => "ITL"
|
100
|
+
end
|
101
|
+
|
94
102
|
def to_lat_lng
|
95
103
|
Geokit::LatLng.new(latitude, longitude) if latitude and longitude
|
96
104
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
class Chouette::TimeTable < Chouette::TridentActiveRecord
|
2
2
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
3
|
-
|
3
|
+
self.primary_key = "id"
|
4
4
|
|
5
5
|
attr_accessible :objectid, :object_version, :creation_time, :creator_id, :version, :comment
|
6
6
|
attr_accessible :int_day_types,:monday,:tuesday,:wednesday,:thursday,:friday,:saturday,:sunday
|
@@ -60,8 +60,17 @@ class Chouette::TimeTable < Chouette::TridentActiveRecord
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
+
# Return days which intersects with the time table dates and periods
|
64
|
+
def intersects(days)
|
65
|
+
[].tap do |intersect_days|
|
66
|
+
days.each do |day|
|
67
|
+
intersect_days << day if include_day?(day)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
63
72
|
def include_day?(day)
|
64
|
-
|
73
|
+
include_in_dates?(day) || include_in_periods?(day)
|
65
74
|
end
|
66
75
|
|
67
76
|
def include_in_dates?(day)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class Chouette::VehicleJourney < Chouette::TridentActiveRecord
|
2
2
|
#
|
3
3
|
# FIXME http://jira.codehaus.org/browse/JRUBY-6358
|
4
|
-
|
4
|
+
self.primary_key = "id"
|
5
5
|
|
6
6
|
attr_accessor :transport_mode_name
|
7
7
|
attr_accessible :route_id, :journey_pattern_id, :time_slot_id, :company_id, :objectid, :object_version, :creation_time, :creator_id, :comment, :status_value
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Chouette::Geometry::AccessLinkPresenter
|
2
|
+
include Chouette::Geometry::GeneralPresenter
|
3
|
+
|
4
|
+
def initialize(access_link)
|
5
|
+
@access_link = access_link
|
6
|
+
end
|
7
|
+
|
8
|
+
def geometry
|
9
|
+
to_line_string_feature( [ @access_link.stop_area , @access_link.access_point ] )
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Chouette::Geometry::ConnectionLinkPresenter
|
2
|
+
include Chouette::Geometry::GeneralPresenter
|
3
|
+
|
4
|
+
def initialize(connection_link)
|
5
|
+
@connection_link = connection_link
|
6
|
+
end
|
7
|
+
|
8
|
+
def geometry
|
9
|
+
to_line_string_feature( @connection_link.stop_areas)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Chouette::Geometry::GeneralPresenter
|
2
|
+
|
3
|
+
def to_line_string_feature( stop_areas)
|
4
|
+
points = stop_areas.collect(&:geometry).compact
|
5
|
+
GeoRuby::SimpleFeatures::LineString.from_points(points)
|
6
|
+
end
|
7
|
+
|
8
|
+
def to_multi_point_feature( stop_areas)
|
9
|
+
points = stop_areas.collect(&:geometry).compact
|
10
|
+
GeoRuby::SimpleFeatures::MultiPoint.from_points( points )
|
11
|
+
end
|
12
|
+
|
13
|
+
def to_point_feature( stop_area)
|
14
|
+
return nil unless stop_area.longitude && stop_area.latitude
|
15
|
+
GeoRuby::SimpleFeatures::Point.from_lon_lat( stop_area.longitude, stop_area.latitude, 4326)
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
class Chouette::Geometry::LinePresenter
|
2
|
+
include Chouette::Geometry::GeneralPresenter
|
3
|
+
|
4
|
+
def initialize(line)
|
5
|
+
@line = line
|
6
|
+
end
|
7
|
+
|
8
|
+
# return line geometry based on CommercialStopPoint
|
9
|
+
#
|
10
|
+
def geometry
|
11
|
+
features = commercial_links.map { |link| to_line_string_feature(link) }
|
12
|
+
GeoRuby::SimpleFeatures::MultiLineString.from_line_strings( features, 4326)
|
13
|
+
end
|
14
|
+
#
|
15
|
+
# return line's stop_areas cloud geometry
|
16
|
+
#
|
17
|
+
def stop_areas_geometry
|
18
|
+
to_multi_point_feature( @line.commercial_stop_areas)
|
19
|
+
end
|
20
|
+
|
21
|
+
def commercial_links
|
22
|
+
link_keys = []
|
23
|
+
[].tap do |stop_area_links|
|
24
|
+
@line.routes.each do |route|
|
25
|
+
previous_commercial = nil
|
26
|
+
routes_localized_commercials(route).each do |commercial|
|
27
|
+
if previous_commercial && !link_keys.include?( "#{previous_commercial.id}-#{commercial.id}")
|
28
|
+
stop_area_links << [ previous_commercial, commercial]
|
29
|
+
link_keys << "#{previous_commercial.id}-#{commercial.id}"
|
30
|
+
link_keys << "#{commercial.id}-#{previous_commercial.id}"
|
31
|
+
end
|
32
|
+
previous_commercial = commercial
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def routes_localized_commercials(route)
|
39
|
+
route.stop_areas.map { |sa| sa.parent}.compact.select { |sa| sa.latitude && sa.longitude}
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class Chouette::Geometry::RoutePresenter
|
2
|
+
include Chouette::Geometry::GeneralPresenter
|
3
|
+
|
4
|
+
def initialize(route)
|
5
|
+
@route = route
|
6
|
+
end
|
7
|
+
|
8
|
+
# return route's stop_areas cloud geometry
|
9
|
+
#
|
10
|
+
def stop_areas_geometry
|
11
|
+
to_multi_point_feature( @route.stop_areas.with_geometry )
|
12
|
+
end
|
13
|
+
|
14
|
+
# return route geometry based on BoardingPosition or Quay
|
15
|
+
#
|
16
|
+
def geometry
|
17
|
+
to_line_string_feature( @route.stop_areas.with_geometry )
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class Chouette::Geometry::StopAreaPresenter
|
2
|
+
include Chouette::Geometry::GeneralPresenter
|
3
|
+
|
4
|
+
def initialize(stop_area)
|
5
|
+
@stop_area = stop_area
|
6
|
+
end
|
7
|
+
|
8
|
+
# return line geometry based on CommercialStopPoint
|
9
|
+
#
|
10
|
+
def geometry
|
11
|
+
to_point_feature( @stop_area)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class RemoveProjectionFromStopAreas < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
if column_exists? :stop_areas, :x
|
4
|
+
remove_column :stop_areas, :x
|
5
|
+
end
|
6
|
+
if column_exists? :stop_areas, :y
|
7
|
+
remove_column :stop_areas, :y
|
8
|
+
end
|
9
|
+
if column_exists? :stop_areas, :projection_type
|
10
|
+
remove_column :stop_areas, :projection_type
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
add_column :stop_areas, :x, :decimal,:precision => 19, :scale => 2
|
16
|
+
add_column :stop_areas, :y, :decimal,:precision => 19, :scale => 2
|
17
|
+
add_column :stop_areas, :projection_type, :string
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class RemoveProjectionFromAccessPoints < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
if column_exists? :access_points, :x
|
4
|
+
remove_column :access_points, :x
|
5
|
+
end
|
6
|
+
if column_exists? :access_points, :y
|
7
|
+
remove_column :access_points, :y
|
8
|
+
end
|
9
|
+
if column_exists? :access_points, :projection_type
|
10
|
+
remove_column :access_points, :projection_type
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
add_column :access_points, :x, :decimal,:precision => 19, :scale => 2
|
16
|
+
add_column :access_points, :y, :decimal,:precision => 19, :scale => 2
|
17
|
+
add_column :access_points, :projection_type, :string
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
class AddAccessibilityToStopAreas < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
unless column_exists? :stop_areas, :mobility_restricted_suitability
|
4
|
+
add_column :stop_areas, :mobility_restricted_suitability, :boolean
|
5
|
+
end
|
6
|
+
unless column_exists? :stop_areas, :stairs_availability
|
7
|
+
add_column :stop_areas, :stairs_availability, :boolean
|
8
|
+
end
|
9
|
+
unless column_exists? :stop_areas, :lift_availability
|
10
|
+
add_column :stop_areas, :lift_availability, :boolean
|
11
|
+
end
|
12
|
+
unless column_exists? :stop_areas, :int_user_needs
|
13
|
+
add_column :stop_areas, :int_user_needs, :integer
|
14
|
+
end
|
15
|
+
end
|
16
|
+
def down
|
17
|
+
if column_exists? :stop_areas, :mobility_restricted_suitability
|
18
|
+
remove_column :stop_areas, :mobility_restricted_suitability
|
19
|
+
end
|
20
|
+
if column_exists? :stop_areas, :stairs_availability
|
21
|
+
remove_column :stop_areas, :stairs_availability
|
22
|
+
end
|
23
|
+
if column_exists? :stop_areas, :lift_availability
|
24
|
+
remove_column :stop_areas, :lift_availability
|
25
|
+
end
|
26
|
+
if column_exists? :stop_areas, :int_user_needs
|
27
|
+
remove_column :stop_areas, :int_user_needs
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class SetAccessibiliityToExistingStopArea < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
Chouette::StopArea.all.each do |s|
|
4
|
+
if s.mobility_restricted_suitability.nil?
|
5
|
+
s.mobility_restricted_suitability = false
|
6
|
+
s.stairs_availability = false
|
7
|
+
s.lift_availability = false
|
8
|
+
s.int_user_needs = 0
|
9
|
+
s.save
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
end
|
16
|
+
end
|
@@ -18,3 +18,14 @@ Factory.define :line_with_stop_areas, :parent => :line do |line|
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
21
|
+
|
22
|
+
Factory.define :line_with_stop_areas_having_parent, :parent => :line do |line|
|
23
|
+
line.after_build do |line|
|
24
|
+
route = Factory(:route, :line => line)
|
25
|
+
route.stop_points.each do |stop_point|
|
26
|
+
commercial = Factory(:stop_area, :area_type => "CommercialStopPoint")
|
27
|
+
physical = Factory(:stop_area, :area_type => "Quay", :parent_id => commercial.id)
|
28
|
+
stop_point.update_attributes( :stop_area_id => physical.id)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
data/lib/ninoxe/version.rb
CHANGED
@@ -7,35 +7,6 @@ describe Chouette::AccessPoint do
|
|
7
7
|
it { should validate_presence_of :name }
|
8
8
|
it { should validate_numericality_of :latitude }
|
9
9
|
it { should validate_numericality_of :longitude }
|
10
|
-
it { should validate_numericality_of :x }
|
11
|
-
it { should validate_numericality_of :y }
|
12
|
-
|
13
|
-
describe ".x_y" do
|
14
|
-
it "should accept x and y both as nil" do
|
15
|
-
subject = Factory :access_point
|
16
|
-
subject.x = nil
|
17
|
-
subject.y = nil
|
18
|
-
subject.valid?.should be_true
|
19
|
-
end
|
20
|
-
it "should accept x and y both numerical" do
|
21
|
-
subject = Factory :access_point
|
22
|
-
subject.x = 10
|
23
|
-
subject.y = 10
|
24
|
-
subject.valid?.should be_true
|
25
|
-
end
|
26
|
-
it "should reject x nil with y numerical" do
|
27
|
-
subject = Factory :access_point
|
28
|
-
subject.x = nil
|
29
|
-
subject.y = 10
|
30
|
-
subject.valid?.should be_false
|
31
|
-
end
|
32
|
-
it "should reject x numerical with y nil" do
|
33
|
-
subject = Factory :access_point
|
34
|
-
subject.x = 10
|
35
|
-
subject.y = nil
|
36
|
-
subject.valid?.should be_false
|
37
|
-
end
|
38
|
-
end
|
39
10
|
|
40
11
|
describe ".latitude" do
|
41
12
|
it "should accept -90 value" do
|
@@ -13,35 +13,7 @@ describe Chouette::StopArea do
|
|
13
13
|
it { should validate_presence_of :area_type }
|
14
14
|
it { should validate_numericality_of :latitude }
|
15
15
|
it { should validate_numericality_of :longitude }
|
16
|
-
it { should validate_numericality_of :x }
|
17
|
-
it { should validate_numericality_of :y }
|
18
16
|
|
19
|
-
describe ".x_y" do
|
20
|
-
it "should accept x and y both as nil" do
|
21
|
-
subject = Factory :stop_area, :area_type => "BoardingPosition"
|
22
|
-
subject.x = nil
|
23
|
-
subject.y = nil
|
24
|
-
subject.valid?.should be_true
|
25
|
-
end
|
26
|
-
it "should accept x and y both numerical" do
|
27
|
-
subject = Factory :stop_area, :area_type => "BoardingPosition"
|
28
|
-
subject.x = 10
|
29
|
-
subject.y = 10
|
30
|
-
subject.valid?.should be_true
|
31
|
-
end
|
32
|
-
it "should reject x nil with y numerical" do
|
33
|
-
subject = Factory :stop_area, :area_type => "BoardingPosition"
|
34
|
-
subject.x = nil
|
35
|
-
subject.y = 10
|
36
|
-
subject.valid?.should be_false
|
37
|
-
end
|
38
|
-
it "should reject x numerical with y nil" do
|
39
|
-
subject = Factory :stop_area, :area_type => "BoardingPosition"
|
40
|
-
subject.x = 10
|
41
|
-
subject.y = nil
|
42
|
-
subject.valid?.should be_false
|
43
|
-
end
|
44
|
-
end
|
45
17
|
|
46
18
|
describe ".latitude" do
|
47
19
|
it "should accept -90 value" do
|