module DevopsHelper::GemRakeHelper

Public Instance Methods

build_gem() click to toggle source
# File lib/devops_helper/gem_rake_helper.rb, line 11
def build_gem
  t = find_build_task        
  raise DevopsHelper::Error, "Cannot find the build task. Please ensure the GEM is configured properly" if is_empty?(t)
  execute_build_task(t)
end
publish_gem(version, opts = { },&block) click to toggle source
# File lib/devops_helper/gem_rake_helper.rb, line 17
def publish_gem(version, opts = { },&block)
  # find the package
  root = opts[:root] || Dir.getwd
  foundGem = Dir.glob("**/*-#{version}.gem")
  if foundGem.length == 0
    raise DevopsHelper::Error, "No built gem found."
  elsif foundGem.length > 1
    if block
      targetGem = block.call(:multiple_built_gems, foundGem)
    else
      raise DevopsHelper::Error, "Multiple versions of gem found : #{foundGem}. Please provide a block for selection"
    end
  else
    targetGem = foundGem.first
  end

  cmd = "cd #{root} && gem push #{targetGem}"
  DevopsHelper::Global.instance.logger.tdebug :gem_rake_helper, "Command to publish gem : #{cmd}"  
  `#{cmd}`
  [$?, targetGem]
end

Private Instance Methods

execute_build_task(task) click to toggle source
# File lib/devops_helper/gem_rake_helper.rb, line 51
def execute_build_task(task)
  task.execute if not_empty?(task) and task.is_a?(Rake::Task)
end
find_build_task() click to toggle source
# File lib/devops_helper/gem_rake_helper.rb, line 40
def find_build_task
  task = nil
  Rake::Task.tasks.each do |t|
    if t.name == "build"
      task = t
      break
    end
  end
  task
end