ekispert 0.0.1
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.
- checksums.yaml +7 -0
- data/.circleci/config.yml +48 -0
- data/.gitignore +14 -0
- data/.rspec +3 -0
- data/.rubocop.yml +110 -0
- data/.travis.yml +5 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +118 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/ekispert-sdk-ruby.gemspec +31 -0
- data/example/point_station.rb +20 -0
- data/example/search_course.rb +116 -0
- data/lib/ekispert.rb +43 -0
- data/lib/ekispert/client.rb +58 -0
- data/lib/ekispert/config.rb +30 -0
- data/lib/ekispert/course.rb +124 -0
- data/lib/ekispert/course/pass_status.rb +34 -0
- data/lib/ekispert/course/price.rb +71 -0
- data/lib/ekispert/course/route.rb +33 -0
- data/lib/ekispert/course/route/line.rb +86 -0
- data/lib/ekispert/course/route/line/arrival_state.rb +25 -0
- data/lib/ekispert/course/route/line/arrival_state/gate.rb +22 -0
- data/lib/ekispert/course/route/line/corporation.rb +22 -0
- data/lib/ekispert/course/route/line/departure_state.rb +25 -0
- data/lib/ekispert/course/route/line/departure_state/gate.rb +22 -0
- data/lib/ekispert/course/route/line/line_symbol.rb +22 -0
- data/lib/ekispert/course/route/line/stop.rb +30 -0
- data/lib/ekispert/course/route/line/stop/arrival_state.rb +28 -0
- data/lib/ekispert/course/route/line/stop/departure_state.rb +28 -0
- data/lib/ekispert/course/route/line/stop/point.rb +28 -0
- data/lib/ekispert/course/route/line/stop/point/prefecture.rb +26 -0
- data/lib/ekispert/course/route/line/stop/point/station.rb +30 -0
- data/lib/ekispert/course/route/point.rb +49 -0
- data/lib/ekispert/course/route/point/prefecture.rb +22 -0
- data/lib/ekispert/course/route/point/station.rb +34 -0
- data/lib/ekispert/data_version.rb +35 -0
- data/lib/ekispert/ekispert_base.rb +69 -0
- data/lib/ekispert/error.rb +29 -0
- data/lib/ekispert/information.rb +58 -0
- data/lib/ekispert/information/corporation.rb +20 -0
- data/lib/ekispert/information/exit.rb +24 -0
- data/lib/ekispert/information/line.rb +35 -0
- data/lib/ekispert/information/welfare_facilities.rb +24 -0
- data/lib/ekispert/point.rb +41 -0
- data/lib/ekispert/point/prefecture.rb +18 -0
- data/lib/ekispert/point/station.rb +65 -0
- data/lib/ekispert/point/station/gate_group.rb +14 -0
- data/lib/ekispert/point/station/gate_group/gate.rb +28 -0
- data/lib/ekispert/util.rb +11 -0
- data/lib/ekispert/version.rb +3 -0
- metadata +213 -0
@@ -0,0 +1,71 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Price < EkispertBase
|
4
|
+
attr_accessor :name_list, :oneway_list, :rate_list, :round_list
|
5
|
+
attr_accessor :revision_status_list, :revision_status_comment_list, :type_list
|
6
|
+
attr_accessor :line_list, :pass_status
|
7
|
+
|
8
|
+
def initialize(element=nil)
|
9
|
+
@name_list = []
|
10
|
+
@oneway_list = []
|
11
|
+
@rate_list = []
|
12
|
+
@round_list = []
|
13
|
+
@revision_status_list = []
|
14
|
+
@revision_status_comment_list = []
|
15
|
+
@type_list = []
|
16
|
+
@line_list = [] # Use Course#relate_price_to_line
|
17
|
+
return if element.nil?
|
18
|
+
|
19
|
+
super(element)
|
20
|
+
end
|
21
|
+
|
22
|
+
def name
|
23
|
+
@name_list[0]&.text
|
24
|
+
end
|
25
|
+
|
26
|
+
def oneway
|
27
|
+
@oneway_list[0]&.text.to_i
|
28
|
+
end
|
29
|
+
|
30
|
+
def rate
|
31
|
+
@rate_list[0]&.text.to_i
|
32
|
+
end
|
33
|
+
|
34
|
+
def round
|
35
|
+
@round_list[0]&.text.to_i
|
36
|
+
end
|
37
|
+
|
38
|
+
def revision_status
|
39
|
+
@revision_status_list[0]&.text
|
40
|
+
end
|
41
|
+
|
42
|
+
def revision_status_comment
|
43
|
+
@revision_status_comment_list[0]&.text
|
44
|
+
end
|
45
|
+
|
46
|
+
def type
|
47
|
+
@type_list[0]&.text
|
48
|
+
end
|
49
|
+
|
50
|
+
def fare?
|
51
|
+
kind == 'Fare'
|
52
|
+
end
|
53
|
+
|
54
|
+
def charge?
|
55
|
+
kind == 'Charge'
|
56
|
+
end
|
57
|
+
|
58
|
+
def teiki?
|
59
|
+
kind.match?(/^Teiki\d{1,2}$/)
|
60
|
+
end
|
61
|
+
|
62
|
+
class Name < EkispertBase; end
|
63
|
+
class Oneway < EkispertBase; end
|
64
|
+
class Rate < EkispertBase; end
|
65
|
+
class Round < EkispertBase; end
|
66
|
+
class RevisionStatus < EkispertBase; end
|
67
|
+
class RevisionStatusComment < EkispertBase; end
|
68
|
+
class Type < EkispertBase; end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
attr_accessor :line_list, :point_list
|
5
|
+
|
6
|
+
def initialize(element)
|
7
|
+
@line_list = []
|
8
|
+
@point_list = []
|
9
|
+
super(element)
|
10
|
+
end
|
11
|
+
|
12
|
+
def departure_point
|
13
|
+
@point_list[0]
|
14
|
+
end
|
15
|
+
|
16
|
+
def arrival_point
|
17
|
+
@point_list[-1]
|
18
|
+
end
|
19
|
+
|
20
|
+
def departure_time
|
21
|
+
@line_list[0].departure_state_list[0].datetime
|
22
|
+
end
|
23
|
+
|
24
|
+
def arrival_time
|
25
|
+
@line_list[-1].arrival_state_list[0].datetime
|
26
|
+
end
|
27
|
+
|
28
|
+
def total_required_time
|
29
|
+
time_other.to_i + time_on_board.to_i + time_walk.to_i
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
attr_accessor :arrival_state_list, :departure_state_list
|
6
|
+
attr_accessor :corporation_list, :color_list
|
7
|
+
attr_accessor :destination_list, :name_list, :number_list
|
8
|
+
attr_accessor :time_reliability_list, :type_list, :typical_name_list
|
9
|
+
attr_accessor :line_symbol_list, :stop_list
|
10
|
+
attr_accessor :fare, :charge, :teiki1, :teiki3, :teiki6, :teiki12
|
11
|
+
|
12
|
+
def initialize(element)
|
13
|
+
@arrival_state_list = []
|
14
|
+
@departure_state_list = []
|
15
|
+
@corporation_list = []
|
16
|
+
@color_list = []
|
17
|
+
@destination_list = []
|
18
|
+
@line_symbol_list = []
|
19
|
+
@name_list = []
|
20
|
+
@number_list = []
|
21
|
+
@time_reliability_list = []
|
22
|
+
@type_list = []
|
23
|
+
@typical_name_list = []
|
24
|
+
@stop_list = []
|
25
|
+
super(element)
|
26
|
+
@stop_list.each do |stop|
|
27
|
+
stop.arrival_state&.set_date(departure_state.datetime)
|
28
|
+
stop.departure_state&.set_date(departure_state.datetime)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def arrival_state
|
33
|
+
@arrival_state_list[0]
|
34
|
+
end
|
35
|
+
|
36
|
+
def departure_state
|
37
|
+
@departure_state_list[0]
|
38
|
+
end
|
39
|
+
|
40
|
+
def corporation
|
41
|
+
@corporation_list[0]
|
42
|
+
end
|
43
|
+
|
44
|
+
def color
|
45
|
+
@color_list[0].text
|
46
|
+
end
|
47
|
+
|
48
|
+
def destination
|
49
|
+
@destination_list[0].text
|
50
|
+
end
|
51
|
+
|
52
|
+
def line_symbol
|
53
|
+
@line_symbol_list[0]
|
54
|
+
end
|
55
|
+
|
56
|
+
def name
|
57
|
+
@name_list[0].text
|
58
|
+
end
|
59
|
+
|
60
|
+
def number
|
61
|
+
@number_list[0]&.text
|
62
|
+
end
|
63
|
+
|
64
|
+
def time_reliability
|
65
|
+
@time_reliability_list[0].text
|
66
|
+
end
|
67
|
+
|
68
|
+
def type
|
69
|
+
@type_list[0]&.text
|
70
|
+
end
|
71
|
+
|
72
|
+
def typical_name
|
73
|
+
@typical_name_list[0]&.text
|
74
|
+
end
|
75
|
+
|
76
|
+
class Color < EkispertBase; end
|
77
|
+
class Destination < EkispertBase; end
|
78
|
+
class Name < EkispertBase; end
|
79
|
+
class Number < EkispertBase; end
|
80
|
+
class TimeReliability < EkispertBase; end
|
81
|
+
class Type < EkispertBase; end
|
82
|
+
class TypicalName < EkispertBase; end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class ArrivalState < EkispertBase
|
6
|
+
attr_accessor :gate_list, :datetime_list, :type_list
|
7
|
+
|
8
|
+
def initialize(element)
|
9
|
+
@gate_list = []
|
10
|
+
@datetime_list = []
|
11
|
+
@type_list = []
|
12
|
+
super(element)
|
13
|
+
end
|
14
|
+
|
15
|
+
def datetime
|
16
|
+
DateTime.parse(@datetime_list[0].text)
|
17
|
+
end
|
18
|
+
|
19
|
+
class Datetime < EkispertBase; end
|
20
|
+
class Type < EkispertBase; end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class ArrivalState < EkispertBase
|
6
|
+
class Gate < EkispertBase
|
7
|
+
attr_accessor :geo_point, :name_list
|
8
|
+
|
9
|
+
def initialize(element)
|
10
|
+
@geo_point_list = []
|
11
|
+
@name_list = []
|
12
|
+
super(element)
|
13
|
+
end
|
14
|
+
|
15
|
+
class GeoPoint < EkispertBase; end
|
16
|
+
class Name < EkispertBase; end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class Corporation < EkispertBase
|
6
|
+
attr_accessor :name_list
|
7
|
+
|
8
|
+
def initialize(element)
|
9
|
+
@name_list = []
|
10
|
+
super(element)
|
11
|
+
end
|
12
|
+
|
13
|
+
def name
|
14
|
+
@name_list[0].text
|
15
|
+
end
|
16
|
+
|
17
|
+
class Name < EkispertBase; end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class DepartureState < EkispertBase
|
6
|
+
attr_accessor :gate_list, :datetime_list, :type_list
|
7
|
+
|
8
|
+
def initialize(element)
|
9
|
+
@gate_list = []
|
10
|
+
@datetime_list = []
|
11
|
+
@type_list = []
|
12
|
+
super(element)
|
13
|
+
end
|
14
|
+
|
15
|
+
def datetime
|
16
|
+
DateTime.parse(@datetime_list[0].text)
|
17
|
+
end
|
18
|
+
|
19
|
+
class Datetime < EkispertBase; end
|
20
|
+
class Type < EkispertBase; end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class DepartureState < EkispertBase
|
6
|
+
class Gate < EkispertBase
|
7
|
+
attr_accessor :geo_point, :name_list
|
8
|
+
|
9
|
+
def initialize(element)
|
10
|
+
@geo_point_list = []
|
11
|
+
@name_list = []
|
12
|
+
super(element)
|
13
|
+
end
|
14
|
+
|
15
|
+
class GeoPoint < EkispertBase; end
|
16
|
+
class Name < EkispertBase; end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class LineSymbol < EkispertBase
|
6
|
+
attr_reader :name_list
|
7
|
+
|
8
|
+
def initialize(element)
|
9
|
+
@name_list = []
|
10
|
+
super(element)
|
11
|
+
end
|
12
|
+
|
13
|
+
def name
|
14
|
+
@name_list[0].text
|
15
|
+
end
|
16
|
+
|
17
|
+
class Name < EkispertBase; end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class Stop < EkispertBase
|
6
|
+
attr_accessor :arrival_state_list, :departure_state_list, :point_list
|
7
|
+
|
8
|
+
def initialize(element)
|
9
|
+
@arrival_state_list = []
|
10
|
+
@departure_state_list = []
|
11
|
+
@point_list = []
|
12
|
+
super(element)
|
13
|
+
end
|
14
|
+
|
15
|
+
def arrival_state
|
16
|
+
@arrival_state_list[0]
|
17
|
+
end
|
18
|
+
|
19
|
+
def departure_state
|
20
|
+
@departure_state_list[0]
|
21
|
+
end
|
22
|
+
|
23
|
+
def point
|
24
|
+
@point_list[0]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class Stop < EkispertBase
|
6
|
+
class ArrivalState < EkispertBase
|
7
|
+
attr_accessor :datetime_list, :datetime
|
8
|
+
|
9
|
+
def initialize(element)
|
10
|
+
@datetime_list = []
|
11
|
+
super(element)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Because of emptiness of date information at ArrivalState, set date additionaly
|
15
|
+
# ex. <Datetime operation="today">12:57:00+09:00</Datetime>
|
16
|
+
def set_date(date)
|
17
|
+
time = @datetime_list[0].text.split(/[:\+]/).first(3).map(&:to_i)
|
18
|
+
@datetime = DateTime.new(date.year, date.month, date.day, *time) rescue DateTime.now
|
19
|
+
@datetime += 1 if @datetime_list[0].operation == 'yesterday'
|
20
|
+
end
|
21
|
+
|
22
|
+
class Datetime < EkispertBase; end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class Stop < EkispertBase
|
6
|
+
class DepartureState < EkispertBase
|
7
|
+
attr_accessor :datetime_list, :datetime
|
8
|
+
|
9
|
+
def initialize(element)
|
10
|
+
@datetime_list = []
|
11
|
+
super(element)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Because of emptiness of date information at DepartureState, set date additionaly
|
15
|
+
# ex. <Datetime operation="today">12:57:00+09:00</Datetime>
|
16
|
+
def set_date(date)
|
17
|
+
time = @datetime_list[0].text.split(/[:\+]/).first(3).map(&:to_i)
|
18
|
+
@datetime = DateTime.new(date.year, date.month, date.day, *time) rescue DateTime.now
|
19
|
+
@datetime += 1 if @datetime_list[0].operation == 'yesterday'
|
20
|
+
end
|
21
|
+
|
22
|
+
class Datetime < EkispertBase; end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Ekispert
|
2
|
+
class Course < EkispertBase
|
3
|
+
class Route < EkispertBase
|
4
|
+
class Line < EkispertBase
|
5
|
+
class Stop < EkispertBase
|
6
|
+
class Point < EkispertBase
|
7
|
+
attr_accessor :station_list, :prefecture_list
|
8
|
+
|
9
|
+
def initialize(element)
|
10
|
+
@station_list = []
|
11
|
+
@prefecture_list = []
|
12
|
+
super(element)
|
13
|
+
station.prefecture_list = prefecture_list
|
14
|
+
end
|
15
|
+
|
16
|
+
def station
|
17
|
+
@station_list[0]
|
18
|
+
end
|
19
|
+
|
20
|
+
def prefecture
|
21
|
+
@prefecture_list[0]
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|