Class: Gash

Inherits:
Object
  • Object
show all
Defined in:
lib/grancher.rb

Overview

What is Grancher?

With Grancher you can easily copy folders and files to a Git branch.

How?

As a library

require 'grancher'
grancher = Grancher.new do |g|
g.branch = 'gh-pages'         # alternatively, g.refspec = 'ghpages:refs/heads/ghpages'
g.push_to = 'origin'
g.repo = 'some_repo'          # defaults to '.'
g.message = 'Updated website' # defaults to 'Updated files.'

# Put the website-directory in the root
g.directory 'website'

# doc -> doc
g.directory 'doc', 'doc'

# README -> README
g.file 'README'

# AUTHORS -> authors.txt
g.file 'AUTHORS', 'authors.txt'

# CHANGELOG -> doc/CHANGELOG
g.file 'CHANGELOG', 'doc/'
end

grancher.commit
grancher.push

As a Raketask

Instead of:

require 'grancher'
Grancher.new do |g|
...
end

Do:

require 'grancher/task'
Grancher::Task.new do |g|
...
end

See Grancher::Task for more information.

Keeping the files already in the branch

By default, Grancher will remove any files already in the branch. Use keep and keep_all to change this behaviour:

Grancher.new do |g|
 # Only keep some files/folders:
 g.keep 'index.html', 'test', 'lib/grancer'
 
 # Keep all the files in the repo:
 g.keep_all
end

Instance Method Summary collapse

Instance Method Details

#commit(msg, opts = {}) ⇒ Object



70
71
72
73
74
75
# File 'lib/grancher.rb', line 70

def commit(msg, opts={})
  return unless changed? || opts[:force]
  commit = commit_tree(to_tree!, msg)
  @sha1 = git_tree_sha1
  commit
end