Skip to content

firstdraft/grade_runner

Repository files navigation

grade_runner

A Ruby client for firstdraft Grades

Installation

Add this line to your application's Gemfile:

gem "grade_runner"

And then execute:

$ bundle

Usage

Rails

After installed, run rails grade to run specs.

Optional Configuration

As of version 0.0.13, you can override the default points used on each test and the overwriting behavior of the spec folder by:

Moving the gem into the :development, :test group in your Gemfile:

# Gemfile

# ...
group :development, :test do
  gem "grade_runner", "~> 0.0.13"
  # ...
end
# ...

Adding this configurable initializer:

# config/initializers/grade_runner.rb

if Rails.env.development? || Rails.env.test?
  GradeRunner.config do |config|
    config.default_points = 1           # default 1
    config.override_local_specs = false # default true
  end
end

Adding this line to the Rakefile:

# Rakefile

require_relative "config/initializers/grade_runner"

And making this change to the spec_helper.rb:

# spec/spec_helper.rb

# ...

# GradeRunner updates on https://github.com/firstdraft/grade_runner/pull/88
# make the formatters available from within the grade_runner gem
require "grade_runner/formatters/json_output_formatter"
require "grade_runner/formatters/hint_formatter"
# require "#{File.expand_path("../support/json_output_formatter", __FILE__)}"
# require "#{File.expand_path("../support/hint_formatter", __FILE__)}"

# ...

Note that for that last step, the gem formatters can be overridden by requiring the formatters present in the local project like before.

Ruby

In order to load and run the Rake task, you need to load it.

This is usually done by making a runnable file1, typically called bin/rails, with contents that look like this:

#!/usr/bin/env ruby
require "rubygems"
require "bundler/setup"
require "rake"

dir = Gem::Specification.find_by_name("grade_runner").gem_dir

load "#{dir}/lib/tasks/grade.rake"
task_name = ARGV[0]

Rake::Task[task_name].invoke

Then you can run bin/rails grade like before. You can even add this file to the PATH so you can run rails grade like with Rails apps.

echo 'export PATH="$PATH:/path/to/project/bin/rails"' >> ~/.bashrc
source ~/.bashrc

Copyright

Copyright (c) 2018 Raghu Betina. See LICENSE.txt for further details.

Footnotes

  1. If you get file permissions errors when running bin/rails grade try updating the permissions with chmod 755 bin/rails first.

About

A Ruby client for grades.firstdraft.com

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages