forked from murata1224/Kirokusyo-Machine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrecord_generator.rb
105 lines (91 loc) · 3.74 KB
/
record_generator.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# -*- coding: utf-8 -*-
require 'yaml'
require File.expand_path(File.dirname(__FILE__) + '/calendar.rb')
require File.expand_path(File.dirname(__FILE__) + '/record.rb')
require File.expand_path(File.dirname(__FILE__) + '/record_parser.rb')
# 記録書を生成するクラス
class RecordGenerator
attr_accessor :record_number, :research_achievements, :laboratory_achievements, :university_achievements, :job_achievements, :research_plans, :laboratory_plans, :university_plans, :job_plans
def initialize
@record = nil
@record_number = nil
@user_name = nil
@user_laboratory = nil
@user_grade = nil
@research_achevements = nil
@laboratory_achievements = nil
@university_achievements = nil
@job_achievements = nil
@research_plans = nil
@laboratory_plans = nil
@university_plans = nil
@job_plans = nil
@conference_info = nil
@start_date1 = nil
@end_date1 = nil
@start_date2 = nil
end
# 記録書を出力
def output_record
@record.output_record(@user_name, @user_laboratory, @user_grade, @record_number, @research_achievements, @laboratory_achievements, @university_achievements, @job_achievements, @research_plans, @laboratory_plans, @university_plans, @job_plans, @conference_info, @start_date1, @end_date1, @start_date2)
end
# 記録書を生成
def generate_record(old_record, period1, period2)
@start_date1, @end_date1 = period1.split('/')
@start_date2, end_date2 = period2.split('/')
get_achievemnts(@start_date1, @end_date1)
get_plans(@start_date2, end_date2)
parse_record(old_record)
get_user_info
@record = RecordOrg.new
end
private
# ユーザ情報(名前,研究室,学年)を取得
def get_user_info
data = YAML.load_file(File.dirname(__FILE__) + '/user_info.yml')
@user_name = data["user_info"]["name"]
@user_laboratory = data["user_info"]["laboratory"]
@user_grade = data["user_info"]["grade"]
end
# 前回の記録書から,記録書No,研究実績,研究予定を抽出
def parse_record(record)
@record_number = get_record_number(record)
@research_achievements = get_research_achievements(record)
@research_plans = get_research_plans(record)
@conference_info = get_conference_info(record)
end
# 前回の記録書から,記録書No を抽出
def get_record_number(record)
record_parser = RecordParser.new
record_parser.get_record_number(record)
end
# 前回の記録書から,研究実績を抽出
def get_research_achievements(record)
record_parser = RecordParser.new
record_parser.get_research_achievements(record)
end
# 前回記録書から,研究予定を抽出
def get_research_plans(record)
record_parser = RecordParser.new
record_parser.get_research_plans(record)
end
# 前回記録書から,学会情報を抽出
def get_conference_info(record)
record_parser = RecordParser.new
record_parser.get_conference_info(record)
end
# カレンダから,研究室実績,大学関連実績,就職活動関連実績を取得
def get_achievemnts(start_date, end_date)
calendar = Calendar.new(start_date, end_date)
@laboratory_achievements = calendar.get_calendar_data("laboratory_calendar")
@university_achievements = calendar.get_calendar_data("university_calendar")
@job_achievements = calendar.get_calendar_data("job_calendar")
end
# カレンダから,研究室予定,大学関連予定,就職活動関連予定を取得
def get_plans(start_date, end_date)
calendar = Calendar.new(start_date, end_date)
@laboratory_plans = calendar.get_calendar_data("laboratory_calendar")
@university_plans = calendar.get_calendar_data("university_calendar")
@job_plans = calendar.get_calendar_data("job_calendar")
end
end