class OhlohScm::GitSvn::Activity

Public Instance Methods

cat_file(commit, diff) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 35
def cat_file(commit, diff)
  cat(git_commit(commit), diff.path)
end
cat_file_parent(commit, diff) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 39
def cat_file_parent(commit, diff)
  cat("#{git_commit(commit)}^", diff.path)
end
commit_count(opts = {}) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 8
def commit_count(opts = {})
  cmd = "#{after_revision(opts)} | grep -E -e '^r[0-9]+.*lines$' | wc -l"
  git_svn_log(cmd: cmd, oneline: false).to_i
end
commit_tokens(opts = {}) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 21
def commit_tokens(opts = {})
  cmd = "#{after_revision(opts)} | #{extract_revision_number}"
  git_svn_log(cmd: cmd, oneline: false).split.map(&:to_i)
end
commits(opts = {}) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 13
def commits(opts = {})
  parsed_commits = []
  open_log_file(opts) do |io|
    parsed_commits = OhlohScm::SvnParser.parse(io)
  end
  parsed_commits
end
each_commit(opts = {}) { |commit| ... } click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 26
def each_commit(opts = {})
  commits(opts).each { |commit| yield commit }
end
git_commit(commit) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 43
def git_commit(commit)
  run("cd #{url} && git svn find-rev r#{commit.token}").strip
end
head_token() click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 30
def head_token
  cmd = "--limit=1 | #{extract_revision_number}"
  git_svn_log(cmd: cmd, oneline: false)
end

Private Instance Methods

after_revision(opts) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 59
def after_revision(opts)
  next_token = opts[:after].to_i + 1
  next_head_token = head_token.to_i + 1
  "-r#{next_token}:#{next_head_token}"
end
cat(revision, file_path) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 74
def cat(revision, file_path)
  file_path = file_path.to_s
  run("cd #{url} && git show #{revision}:#{file_path.shellescape} | #{string_encoder_path}")
    .strip
end
extract_revision_number() click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 65
def extract_revision_number
  "grep '^r[0-9].*|' | awk -F'|' '{print $1}' | cut -c 2-"
end
git_svn_log(cmd:, oneline:) click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 69
def git_svn_log(cmd:, oneline:)
  oneline_flag = '--oneline' if oneline
  run("#{git_svn_log_cmd} #{oneline_flag} #{cmd}").strip
end
git_svn_log_cmd() click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 80
def git_svn_log_cmd
  "cd #{url} && git svn log"
end
log_filename() click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 55
def log_filename
  File.join(temp_folder, url.gsub(/\W/, '') + '.log')
end
open_log_file(opts = {}) { |io| ... } click to toggle source
# File lib/ohloh_scm/git_svn/activity.rb, line 49
def open_log_file(opts = {})
  cmd = "-v #{after_revision(opts)} | #{string_encoder_path} > #{log_filename}"
  git_svn_log(cmd: cmd, oneline: false)
  File.open(log_filename, 'r') { |io| yield io }
end