Class: CaretakerCore

Inherits:
Object
  • Object
show all
Defined in:
lib/caretaker-core.rb,
lib/caretaker-core/git.rb,
lib/caretaker-core/core.rb,
lib/caretaker-core/tags.rb,
lib/caretaker-core/utils.rb,
lib/caretaker-core/config.rb,
lib/caretaker-core/process.rb,
lib/caretaker-core/version.rb

Overview

Description should go here

Constant Summary collapse

INITIAL_TAG =

Class Constants

'untagged'.freeze
DEFAULT_CATEGORY =
'Uncategorised:'.freeze
CATEGORIES =
{
    'New Features:'    => [ 'new feature:', 'new:', 'feature:' ],
    'Improvements:'    => [ 'improvement:', 'improve:' ],
    'Bug Fixes:'       => [ 'bug fix:', 'bug:', 'bugs:' ],
    'Security Fixes:'  => [ 'security: '],
    'Refactor:'        => [ ],
    'Style:'           => [ ],
    'Deprecated:'      => [ ],
    'Removed:'         => [ 'deleted:' ],
    'Tests:'           => [ 'test:', 'testing:' ],
    'Documentation:'   => [ 'docs: ' ],
    'Chores:'          => [ 'chore:' ],
    'Experiments:'     => [ 'experiment:' ],
    'Miscellaneous:'   => [ 'misc:' ],
    'Uncategorised:'   => [ 'no category:' ],
    'Initial Commit:'  => [ 'initial:' ],
    'Skip:'            => [ 'ignore:' ]
}.freeze
DEFAULT_CONFIG =
{
    :enable_categories => false,
    :remove_categories => true
}.freeze
VERSION =
'0.0.1'.freeze

Class Method Summary collapse

Class Method Details

.run(options = {}) ⇒ Object

Docs to go here



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/caretaker-core.rb', line 20

def run(options = {})
    # Will throw an exception if not a git repo
    check_for_git_repo

    # Set the initial config and handle user supplied options
    config = init_config(options)

    # Get URL and slug for the repo, will throw and exception if no remote origin is set
    repository, slug = git_repo_details

    # Add to config for easy access
    config[:repo_url] = repository

    # Really do the processing
    tags, chronological, categorised = real_process(config)

    # Return the data to the calling function
    { :tags => tags, :commits => { :chronological => chronological, :categorised => categorised }, :repo => { :url => repository, :slug => slug } }.to_json
end