Quandl::Utility

Purpose

The purpose of this gem is to:

  • maintain semantic versioning
  • maintain a changelog that lists commits for each version, matching a set of patterns

Installation

gem 'quandl_utility'

Configuration

Add this to your Rakefile:

require 'quandl/utility/rake_tasks'

Quandl::Utility::Tasks.configure do |c|
  c.name              = 'gem_name'
  c.version_path      = 'VERSION'
  c.changelog_path    = 'CHANGELOG.md'
  c.changelog_matching  = ['^JIRA','^GITHUB']
end

Usage

$ rake -T

rake gem_name:bump:major  # Perform major bump to gem_name
rake gem_name:bump:minor  # Perform minor bump to gem_name
rake gem_name:bump:patch  # Perform patch bump to gem_name

$ rake gem_name:bump:minor && rake release

Thor Tasks

Quandl::Utility Thor tasks are available in two ways:

  • Using the executable 'qutil'
qutil notify slack 'general' 'ping!'
  • Including in your Thorfile
require 'quandl/utility/thor_tasks'

desc 'my_task'
def my_task
  invoke 'qutil:slack:notify', ['general', 'ping!']
end

Lint

Linting tasks. Currently supports Rubocop and Foodcritic for linting Ruby projects and Chef cookbooks.

qutil lint help

ruby

Run Rubocop linting on project.

qutil lint ruby

init_ruby

Initialize Rubocop linting on project. Create two files: an organization base YAML config of linting rules, and an empty project YAML config that inherits from the organization config.

qutil lint init_ruby

cookbook

qutil lint cookbook

CI

Task for the Continuous Integration server.

qutil ci help

notify_slack

Notify slack of build status. Uses various tddium ENV variables to build a message that is sent to slack.

qutil ci notify_slack

Notify

Task for notifications. Currently supports sending messages to Slack.

qutil notify help

slack

qutil notify slack MESSAGE CHANNEL