module Garfield

Constants

VERSION

Public Class Methods

get_file_count(extension) click to toggle source
# File lib/garfield.rb, line 7
def self.get_file_count(extension)
  files = []
  Find.find('.') do |path|
    files << path if path =~ /.*\.#{extension}$/
  end
  return files.length
end
get_python_test_string() click to toggle source
# File lib/garfield.rb, line 31
def self.get_python_test_string
  requirements = 'requirements.txt'
  if File.file?(requirements)
    dependencies = File.read(requirements).downcase.split(/\n+/)
    case
      when dependencies.index {|s| s.include?('django')}
        return 'python manage.py test'
      when dependencies.index {|s| s.include?('pytest')}
        return 'py.test --color=yes -s test'
      else
        return 'python setup.py test'
    end
  end
  return 'python setup.py test'
end
get_ruby_test_string() click to toggle source
# File lib/garfield.rb, line 17
def self.get_ruby_test_string
  case
    when defined? 'minitest'
      return 'ruby test/*.rb'
    when defined? 'rspec'
      return 'rspec spec'
    when defined? 'rails'
      return 'bundle exec rspec spec'
    else
      installed_gems =  Gem::Specification.sort_by{
        |gem| [gem.name.downcase] }.group_by{ |gem| gem.name }
      raise "Couldn't find test runner in #{installed_gems.keys}"
  end
end
get_test_string(extension) click to toggle source
# File lib/garfield.rb, line 14
def self.get_test_string(extension)
  return extension == 'rb' ? get_ruby_test_string : get_python_test_string
end
write_guardfile(extension, test_string) click to toggle source
# File lib/garfield.rb, line 46
def self.write_guardfile(extension, test_string)
  content = %{
  guard :shell do
    watch /.*.#{extension}/ do
      `#{test_string}`
    end
  end
  }
  File.write('Guardfile', content)
end