Sha256: b23cf4f8f184c5feaa14561658479b705146c45ad3a047dbca95c60a164f1bdd

Contents?: true

Size: 1.45 KB

Versions: 23

Compression:

Stored size: 1.45 KB

Contents

# Run me with:
#
# $ watchr specs.watchr

# --------------------------------------------------
# Convenience Methods
# --------------------------------------------------
def all_spec_files
  Dir['spec/**/*_spec.rb']
end

def run_spec_matching(thing_to_match)
  matches = all_spec_files.grep(/#{thing_to_match}/i)
  if matches.empty?
    puts "Sorry, thanks for playing, but there were no matches for #{thing_to_match}"
  else
    run matches.join(' ')
  end
end

def run(files_to_run)
  puts("Running: #{files_to_run}")
  system("clear;rspec -cfs #{files_to_run}")
  no_int_for_you
end

def run_all_specs
  run(all_spec_files.join(' '))
end

# --------------------------------------------------
# Watchr Rules
# --------------------------------------------------
watch('^spec/(.*)_spec\.rb') { |m| run_spec_matching(m[1]) }
#watch('^spec/controllers/(.*)_spec\.rb') { |m| run_spec_matching(m[1]) }

watch("^lib/chatterbot/(.*)\.rb") { |m| run_spec_matching(m[1]) }
#watch('^spec/spec_helper\.rb') { run_all_specs }

# --------------------------------------------------
# Signal Handling
# --------------------------------------------------

def no_int_for_you
  @sent_an_int = nil
end

Signal.trap 'INT' do
  if @sent_an_int then
    puts " A second INT? Ok, I get the message. Shutting down now."
    exit
  else
    puts " Did you just send me an INT? Ugh. I'll quit for real if you do it again."
    @sent_an_int = true
    Kernel.sleep 1.5
    run_all_specs
  end
end

run_all_specs

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
chatterbot-0.2.2 specs.watchr
chatterbot-0.2.1 specs.watchr
chatterbot-0.2.0 specs.watchr