Compare File-System entities, for Ruby
Provides platform-independent facilities for comparing file contents, for both binary and text files
Install using gem install cmpfs-ruby or add it to your Gemfile.
The primary components provided are the functions:
CmpFS::Compare.compare_binary_files()CmpFS::Compare.compare_binary_streams()CmpFS::Compare.compare_binary()CmpFS::Compare.compare_text_files()CmpFS::Compare.compare_text_streams()CmpFS::Compare.compare_text()
all of which are obtained when extending or includeing the CmpFS module.
examples/compare_two_binary_files.rb:
#! /usr/bin/env ruby
$:.unshiftFile.join(File.dirname(__FILE__),'../lib')require'cmpfs'includeCmpFS# command-line handlinglhs_path,rhs_path=caseARGV.sizewhen0,1if'--help' == ARGV[0]
$stdout.puts"#$0: <lhs-path> <rhs-path>"exit0endabort"#$0: not enough arguments; use --help for usage"when2ARGV[0..2]elseabort"#$0: too many arguments; use --help for usage"end# main()
$stdout.puts"binary comparison of '#{lhs_path}' with '#{rhs_path}':"
$stdout.puts"files are #{compare_binary(lhs_path,rhs_path) ? '' : 'not '}equal"# ############################## end of file ############################# #examples/compare_two_text_files.rb:
#! /usr/bin/env ruby
$:.unshiftFile.join(File.dirname(__FILE__),'../lib')require'cmpfs'includeCmpFS# command-line handlinglhs_path,rhs_path=caseARGV.sizewhen0,1if'--help' == ARGV[0]
$stdout.puts"#$0: <lhs-path> <rhs-path>"exit0endabort"#$0: not enough arguments; use --help for usage"when2ARGV[0..2]elseabort"#$0: too many arguments; use --help for usage"end# main()
$stdout.puts"text comparison of '#{lhs_path}' with '#{rhs_path}':"
$stdout.puts"files are #{compare_text(lhs_path,rhs_path,skip_blank_lines: true,trim_lines: true) ? '' : 'not '}equal"# ############################## end of file ############################# #Defect reports, feature requests, and pull requests are welcome on https://github.com/synesissoftware/cmpfs.Ruby.
T.B.C.
cmpfs.Ruby is released under the 3-clause BSD license. See LICENSE for details.