Enforce - A DSL for verifying file/folder content

Gem Build Maintainability Issues


Create globally available DSL scripts to verify the existence of files in a folder, and the contents of these files.


Install

$ gem install enforce

Or with bundler:

gem 'enforce'

Example

asciicast

Also see the example folder.

Usage

  1. Create a rules file containing any of the DSL commands below.
  2. Run $ enforce <fules file name> in the directory you want to test (without the .rb extension)

Rules files are ruby scripts that are located either in the current directory or in your home directory, under enforce subdirectory (~/enforce/*.rb).

If you wish to place your rules files elsewhere, set the ENFORCE_HOME environment variable.

DSL

File Commands

Verify that a file exists:

file 'filename'

Verify that a file exists, and has (or doesn't have) some content:

file 'filename' do
  with 'any content'
  with /any.regex/
  without 'other content or regex'
  with_line 'line to match, leading and trailing spaces are ignored'
  without_line 'line to make sure is not in the file'
end

Verify that a file does not exist:

no_file 'filename'

Folder Commands

Verify that a folder exists:

folder 'dirname'

Verify that a folder exists, and run additional validations inside it:

folder 'dirname' do
  file 'file-inside-dirname'
  file 'another-file' do
    with 'some content'
  end
end