class Onboard::Repo
Attributes
codebase[R]
g[R]
path[R]
project[R]
Public Class Methods
new(repo)
click to toggle source
# File lib/onboard/repo.rb, line 15 def initialize(repo) @codebase = repo['codebase'] @g = prepare(repo) @path = repo['path'] @project = repo['project'] end
Public Instance Methods
changed(list, patch_file, patch)
click to toggle source
# File lib/onboard/repo.rb, line 22 def changed(list, patch_file, patch) return false if list.empty? say('CHANGED FILES:', :yellow) list.each do |x| puts g.diff('HEAD', x).patch patch_file << g.diff('HEAD', x).patch if patch end end
co()
click to toggle source
# File lib/onboard/repo.rb, line 74 def co g.checkout_file('HEAD', path) end
commit(path)
click to toggle source
# File lib/onboard/repo.rb, line 89 def commit(path) project = File.basename(path) changes = [] g.status.changed.keys.each { |x| changes.push x unless g.diff('HEAD', x).patch.empty? } g.status.deleted.keys.each { |x| changes.push x } g.status.untracked.keys.each { |x| changes.push x } if changes.empty? == false g.add(codebase, :all => true) g.commit("Add #{project}") end changes end
deleted(list, patch_file, patch)
click to toggle source
# File lib/onboard/repo.rb, line 31 def deleted(list, patch_file, patch) return false if list.empty? say('DELETED FILES:', :yellow) list.each do |x| say(x, :red) patch_file << g.diff('--', x).patch if patch end end
info()
click to toggle source
# File lib/onboard/repo.rb, line 78 def info repo = {} repo['current_branch'] = g.current_branch repo['remotes'] = g.remotes repo end
prepare(args)
click to toggle source
# File lib/onboard/repo.rb, line 85 def prepare(args) Git.open((Pathname.new(args['codebase'])).to_s) end
push()
click to toggle source
# File lib/onboard/repo.rb, line 105 def push g.push end
repo_status()
click to toggle source
# File lib/onboard/repo.rb, line 52 def repo_status all = {} all['changed'] = [] all['deleted'] = [] all['untracked'] = [] g.status.changed.keys.each { |file| all['changed'].push(file.to_s) unless g.diff('HEAD', file).patch.empty? } g.status.deleted.keys.each { |file| all['deleted'].push(file.to_s) } g.status.untracked.keys.each { |file| all['untracked'].push(file.to_s) } all end
st(patch = false)
click to toggle source
# File lib/onboard/repo.rb, line 63 def st(patch = false) patch_file = Patch.new.open(project) if patch # TODO: figure out why g.status.changed.keys.each is returning unchanged files all = repo_status changed(all['changed'], patch_file, patch) deleted(all['deleted'], patch_file, patch) untracked(all['untracked'], patch_file, patch) Patch.new.close(patch_file) all.empty? ? false : true end
untracked(list, patch_file, patch)
click to toggle source
# File lib/onboard/repo.rb, line 40 def untracked(list, patch_file, patch) return false if list.empty? say('UNTRACKED FILES:', :yellow) list.each do |x| say(x, :red) if patch g.add(x) patch_file << g.diff('HEAD', x).patch end end end