IO::Notification::Change — watch가 만든 파일 변경 이벤트

IO::Notification::Change — watch가 만든 파일 변경 이벤트

IO::Notification.watch-path($path)IO::Path.watch는, $path 인자나 IO::Path 객체로 무엇이 쓰이느냐에 따라 파일이나 디렉터리에 대한 IO::Notification::Change 이벤트들의 Supply를 만들어내요.

class IO::Notification::Change {}

현재 작업 디렉터리에 대한 처음 열 개 FileChanged 알림을 출력하는 짧은 예시를 볼게요.

my $finish = Promise.new;
my $count = 0;
IO::Notification.watch-path($*CWD).act( -> $change {
    $count++ if $change.event ~~ FileChanged;
    say "($count) $change.path(): $change.event()";
    $finish.keep if $count >= 10;
});
await $finish;

변경의 종류(type)는 플랫폼과 그 변경을 일으킨 특정 시스템 호출에 크게 의존해요. 지금 시점에서는 변경 종류를 일반적으로 믿지 말고, 자신의 특정 상황을 직접 테스트하는 게 좋아요.

출처: Raku Documentation — IO::Notification::Change

본문

메서드 (Methods)

method path

감시되고 있는 파일의 경로를 반환해요.

method event

이벤트의 종류, 즉 FileChangedFileRenamed를 반환해요.

method IO

감시되고 있는 파일의 핸들을 반환해요.

method gist

multi method gist(IO::Notification::Change:D:)

경로와 이벤트 속성을 세미콜론으로 구분해 반환해요.