1
+ # frozen_string_literal: true
2
+
1
3
module RakeUi
2
4
class RakeTaskLog < OpenStruct
3
5
# year-month-day-hour(24hour time)-minute-second-utc
4
6
ID_DATE_FORMAT = "%Y-%m-%d-%H-%M-%S%z"
5
- REPOSITORY_DIR = Rails . root . join ( ' tmp' , ' rake_ui' )
7
+ REPOSITORY_DIR = Rails . root . join ( " tmp" , " rake_ui" )
6
8
FILE_DELIMITER = "____"
7
9
FINISHED_STRING = "+++++ COMMAND FINISHED +++++"
8
10
TASK_HEADER_OUTPUT_DELIMITER = "-------------------------------"
9
11
FILE_ITEM_SEPARATOR = ": "
10
12
13
+ def self . create_tmp_file_dir
14
+ FileUtils . mkdir_p ( REPOSITORY_DIR . to_s )
15
+ end
16
+
11
17
def self . truncate
12
- FileUtils . rm_rf ( Dir . glob ( REPOSITORY_DIR . to_s + '/*' ) )
18
+ FileUtils . rm_rf ( Dir . glob ( REPOSITORY_DIR . to_s + "/*" ) )
13
19
end
14
20
15
21
def self . build_from_file ( log_file_name )
16
22
log_file_name . split ( FILE_DELIMITER )
17
23
18
24
new (
19
- id : log_file_name . gsub ( ' .txt' , '' ) ,
25
+ id : log_file_name . gsub ( " .txt" , "" ) ,
20
26
log_file_name : log_file_name ,
21
27
log_file_full_path : Rails . root . join ( REPOSITORY_DIR , log_file_name ) . to_s
22
28
)
23
29
end
24
30
25
- def self . build_new_for_command ( name :, args : nil , environment : nil , rake_definition_file :, rake_command :, raker_id :)
31
+ def self . build_new_for_command ( name :, rake_definition_file :, rake_command :, raker_id :, args : nil , environment : nil )
32
+ create_tmp_file_dir
33
+
26
34
date = Time . now . strftime ( ID_DATE_FORMAT )
27
35
id = "#{ date } #{ FILE_DELIMITER } #{ raker_id } "
28
36
log_file_name = "#{ id } .txt"
29
- log_file_full_path = Rails . root . join ( 'tmp' , 'rake_ui' , log_file_name ) . to_s
37
+ log_file_full_path = REPOSITORY_DIR . join ( log_file_name ) . to_s
30
38
31
- File . open ( log_file_full_path , 'w+' ) do |f |
39
+ File . open ( log_file_full_path , "w+" ) do |f |
32
40
f . puts "id#{ FILE_ITEM_SEPARATOR } #{ id } "
33
41
f . puts "name#{ FILE_ITEM_SEPARATOR } #{ name } "
34
42
f . puts "date#{ FILE_ITEM_SEPARATOR } #{ date } "
@@ -39,9 +47,9 @@ def self.build_new_for_command(name:, args: nil, environment: nil,rake_definitio
39
47
f . puts "log_file_name#{ FILE_ITEM_SEPARATOR } #{ log_file_name } "
40
48
f . puts "log_file_full_path#{ FILE_ITEM_SEPARATOR } #{ log_file_full_path } "
41
49
42
- f . puts " #{ TASK_HEADER_OUTPUT_DELIMITER } "
50
+ f . puts TASK_HEADER_OUTPUT_DELIMITER . to_s
43
51
f . puts " INVOKED RAKE TASK OUTPUT BELOW"
44
- f . puts " #{ TASK_HEADER_OUTPUT_DELIMITER } "
52
+ f . puts TASK_HEADER_OUTPUT_DELIMITER . to_s
45
53
end
46
54
47
55
new ( id : id ,
@@ -55,9 +63,11 @@ def self.build_new_for_command(name:, args: nil, environment: nil,rake_definitio
55
63
end
56
64
57
65
def self . all
58
- Dir . entries ( REPOSITORY_DIR ) . reject do |file |
59
- file == '.' || file == '..'
60
- end . map do |log |
66
+ create_tmp_file_dir
67
+
68
+ Dir . entries ( REPOSITORY_DIR ) . reject { |file |
69
+ file == "." || file == ".."
70
+ } . map do |log |
61
71
RakeUi ::RakeTaskLog . build_from_file ( log )
62
72
end
63
73
end
@@ -148,7 +158,7 @@ def parsed_file_contents
148
158
name , value = line . split ( FILE_ITEM_SEPARATOR , 2 )
149
159
next unless name
150
160
151
- parsed [ name ] = value && value . gsub ( "\n " , '' )
161
+ parsed [ name ] = value && value . delete ( "\n " )
152
162
end
153
163
end . with_indifferent_access
154
164
end
0 commit comments