Project

enforce

0.0
No release in over 3 years
Low commit activity in last 3 years
Define rules for folder and file contents and enforce them from the command line
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Enforce - A DSL for verifying file/folder content

Gem Version Build Status Maintainability


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


Install

$ gem install enforce

Example

asciicast

Also see the example folder.

Usage

  1. Create a rules file containing any of the DSL commands below.
  2. Run $ enforce <rules 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
  text 'any content'
  no_text 'other content or regex'

  regex /any.regex/
  no_regex /any.regex/

  line 'line to match, leading and trailing spaces are ignored'
  no_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 does not exist:

no_folder 'dirname'

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

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