Module: Edfize

Defined in:
lib/edfize.rb,
lib/edfize/edf.rb,
lib/edfize/tests.rb,
lib/edfize/signal.rb,
lib/edfize/version.rb,
lib/edfize/tests/result.rb,
lib/edfize/tests/runner.rb,
lib/edfize/tests/check_length.rb,
lib/edfize/tests/check_valid_date.rb,
lib/edfize/tests/check_reserved_area.rb,
lib/edfize/tests/check_reserved_signal_areas.rb

Overview

Loads EDFs, prints information, runs tests

Defined Under Namespace

Modules: Tests, VERSION Classes: Edf, Signal

Class Method Summary collapse

Class Method Details

.check(argv) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/edfize.rb', line 37

def self.check(argv)
  test_start_time = Time.now
  edf_count = edfs_in_current_directory_and_subdirectories.count
  test_count = 0
  failure_count = 0
  puts "Started\n"
  edfs_in_current_directory_and_subdirectories.each do |edf_file_name|
    edf = Edfize::Edf.new(edf_file_name)
    runner = Edfize::Tests::Runner.new(edf, argv)
    runner.run_tests
    test_count += runner.tests_run
    failure_count += runner.tests_failed
  end
  puts "\nFinished in #{Time.now - test_start_time}s"
  puts "#{edf_count} EDF#{'s' unless edf_count == 1}, #{test_count} test#{'s' unless test_count == 1}, " + "#{failure_count} failure#{'s' unless failure_count == 1}".colorize(failure_count == 0 ? :green : :red)
end

.edfs_in_current_directory_and_subdirectoriesObject



73
74
75
# File 'lib/edfize.rb', line 73

def self.edfs_in_current_directory_and_subdirectories
  Dir.glob('**/*.edf', File::FNM_CASEFOLD)
end

.helpObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/edfize.rb', line 54

def self.help
  help_message = <<-EOT
Usage: edfize COMMAND [ARGS]

The most common edfize commands are:
[t]est            Check EDFs in directory and subdirectories
  --failing       Only display failing tests
  --quiet         Suppress failing test descriptions
[r]un             Print EDF header information
[h]elp            Show edfize command documentation
[v]ersion         Returns the version of Edfize

Commands can be referenced by the first letter:
Ex: `edfize t`, for test

EOT
  puts help_message
end

.launch(argv) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/edfize.rb', line 11

def self.launch(argv)
  case argv.first.to_s.scan(/\w/).first
  when 'v'
    version
  when 'c', 't'
    check(argv[1..-1])
  when 'r'
    print_headers
  else
    help
  end
end


24
25
26
27
28
29
30
31
# File 'lib/edfize.rb', line 24

def self.print_headers
  puts '----------------'
  edfs_in_current_directory_and_subdirectories.each do |edf_file_name|
    edf = Edfize::Edf.new(edf_file_name)
    edf.print_header
    puts '----------------'
  end
end

.versionObject



33
34
35
# File 'lib/edfize.rb', line 33

def self.version
  puts "Edfize #{Edfize::VERSION::STRING}"
end