- given: file {filename} function: files_create_from_embedded types: filename: file - given: file {filename_on_disk} from {embedded_filename} function: files_create_from_embedded_with_other_name types: embedded_filename: file - given: file {filename} has modification time {year}-{month}-{day} {hour}:{minute}:{second} function: files_touch_with_timestamp - when: I write "(?P.*)" to file (?P\S+) regex: true function: files_create_from_text - when: I remember metadata for file {filename} function: files_remember_metadata - when: I touch file {filename} function: files_touch - then: file {filename} exists function: files_file_exists - then: file {filename} does not exist function: files_file_does_not_exist - then: only files (?P.+) exist function: files_only_these_exist regex: true - then: file (?P\S+) contains "(?P.*)" regex: true function: files_file_contains - then: file (?P\S+) matches regex /(?P.*)/ regex: true function: files_file_matches_regex - then: file (?P\S+) matches regex "(?P.*)" regex: true function: files_file_matches_regex - then: files {filename1} and {filename2} match function: files_match - then: file {filename} has same metadata as before function: files_has_remembered_metadata - then: file {filename} has different metadata from before function: files_has_different_metadata - then: file {filename} has changed from before function: files_has_different_metadata - then: file {filename} has a very recent modification time function: files_mtime_is_recent - then: file {filename} has a very old modification time function: files_mtime_is_ancient - given: a directory {path} function: files_make_directory - when: I create directory {path} function: files_make_directory - when: I remove directory {path} function: files_remove_directory - then: directory {path} exists function: files_directory_exists - then: directory {path} does not exist function: files_directory_does_not_exist - then: directory {path} is empty function: files_directory_is_empty - then: directory {path} is not empty function: files_directory_is_not_empty