class Fog::Rake::GithubReleaseTask
Public Class Methods
new()
click to toggle source
# File lib/tasks/github_release_task.rb, line 9 def initialize desc "Update the changelog since the last release" task(:github_release) do File.open('CHANGELOG.md', 'r') do |file| file.each_line do |line| @current_line = line if release_header? create_release if !release_exists? && @release @release_tag = release_match[1] @release = line else @release << line end end end end end
Private Instance Methods
create_release()
click to toggle source
# File lib/tasks/github_release_task.rb, line 30 def create_release github.create_release "fog/fog", "v#{@release_tag}", {:name => "v#{@release_tag}", :body => @release} puts "creating release #{@release_tag}" end
github()
click to toggle source
# File lib/tasks/github_release_task.rb, line 53 def github unless @github Octokit.auto_paginate = true @github = Octokit::Client.new :netrc => true unless @github.login @github = nil raise "Please create a ~/.netrc file to authenticate with github. For more information please see https://github.com/octokit/octokit.rb/blob/master/README.md#using-a-netrc-file" end end @github end
release_exists?()
click to toggle source
# File lib/tasks/github_release_task.rb, line 41 def release_exists? releases.find {|r| r == "v#{@release_tag}" } != nil end
release_header?()
click to toggle source
# File lib/tasks/github_release_task.rb, line 45 def release_header? release_match != nil end
release_match()
click to toggle source
# File lib/tasks/github_release_task.rb, line 49 def release_match @current_line.match (/## (\d+\.\d+\.\d+) \d+\/\d+\d+/) end
releases()
click to toggle source
# File lib/tasks/github_release_task.rb, line 35 def releases return @releases if @releases response = github.releases("fog/fog") @releases = response.map {|r| r.tag_name } end