forked from en0moto/StudyLog
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrewrite.rb
More file actions
65 lines (48 loc) · 2.55 KB
/
rewrite.rb
File metadata and controls
65 lines (48 loc) · 2.55 KB
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
#メモを変更する処理
require "./normalized.rb"
require "./path.rb"
#メモの保存ディレクトリ配列、Array型が格納
dir_obj = DirClass.new
#NormalizedClassクラスからインスタンスを作成、normalizedオブジェクトを作成
normalized_obj = NormalizedClass.new
#normalized_obj2 = NormalizedClass2.new
$filename = "メモを変更します。"
puts "#{$filename}"
#入力で受け取った値を評価して結果がtureになるまで処理を繰り返す
loop do
#メモの保存ディレクトリを出力
dir_obj = DirClass.new
puts file_dir = dir_obj.filedir($dir_path)
#入力で値を受け取る
$file_name = Readline.readline("変更したいメモのタイトルを入力してください。> :")
#関数の戻り値を変数に代入
normalized_input = normalized_obj.title_normalized($value_exists, $normalized_input)
#break if normalized_input == true
#真偽値で処理を分岐、tureなら標準入力で受け取ったタイトルのメモの内容を表示する、falseならメモを見るの処理に戻る
if normalized_input == false
file_path = File.join($dir_path, $file_name)
#メモのファイルを開いてオブジェクトを生成、戻り値はFile型
memo_file = File.new(file_path)
#Fileの識別子からファイルの内容を読み込み、戻り値はString型
memo_file = memo_file.read
puts "メモの内容#{memo_file}"
#置き換え前の内容を入力
txt_old = Readline.readline("置き換える内容を入力してください。> :")
#置き換え後の内容を入力
txt_new = Readline.readline("新しい内容を入力してください。> :")
#文字列のパターンにマッチした部分を置き換えて文字列を生成、戻り値はString型
memo_file = memo_file.gsub(txt_old, txt_new)
#ファイルを書き込みモードで開いて、memo_file変数の文字列をファイルに書き込んでファイルを閉じる。
File.open(file_path, "w+") do |file|
file.write(memo_file)
end
#Fileの識別子からファイルの内容を読み込み、戻り値はString型
memo_file = File.read(file_path)
puts "#{txt_old}を#{txt_new}へ置き換えました。"
else
puts "タイトル #{$file_name} は使用できません。他のタイトルを入力してください。"
end
#file_status配列とfile_nameを比較して戻り値がtureならメモを見るの処理の繰り返しを終了
break if normalized_input == false
#繰り返しの処理終了
end