Sha256: 957f3d108b69f2f2ba0dd5445da5d3802aa0a30ccffe555f66360f6232aabeee
Contents?: true
Size: 1.59 KB
Versions: 2
Compression:
Stored size: 1.59 KB
Contents
require 'rake' require 'rake/tasklib' class ContributorTasks < Rake::TaskLib def initialize define end def define desc "Update contributors list in README" task :update_contributors do if new_contributors? puts "New contributors!" new_contributors.each {|name| puts "- #{name}"} puts "" print "Updating the 'Contributors' section of README..." File.open("README.md", "w+") do |file| file.puts readme_without_contributors_section file.puts "## Contributors (sorted alphabetically)" file.puts "" committers.each {|name| file.puts "* #{name}"} end puts "done!" else puts "No new contributors." end end end private def all_committers all_names = `git shortlog -s |cut -s -f2` all_names.gsub!(/\sand\s/, "\n").split("\n").uniq!.sort! end def committers excluded_committers = ["Tom Kersten"] @committers ||= all_committers - excluded_committers end def readme_file_contents @readme_contents ||= `cat README.md` end def existing_contributors existing_contributors = readme_file_contents[/## Contributors(.|\n)*/].strip.split("\n* ") existing_contributors.shift # remove "Contributors..." line existing_contributors end def new_contributors @new_contributors ||= committers - existing_contributors end def new_contributors? !new_contributors.empty? end def readme_without_contributors_section readme_file_contents.sub(/## Contributors(.|\n)*/, '') end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
chili_videos-0.2.0 | lib/tasks/contributor_tasks.rb |
chili_videos-0.1.0 | lib/tasks/contributor_tasks.rb |