class GitHubReadmeGenerator::RakeTask
Constants
- OPTIONS
Public Class Methods
new(*args, &task_block)
click to toggle source
Public: Initialise a new GitHubChangelogGenerator::RakeTask.
Example
GitHubChangelogGenerator::RakeTask.new
# File lib/github_readme_generator/task.rb, line 19 def initialize(*args, &task_block) @name = args.shift || :readme define(args, &task_block) end
Public Instance Methods
define(args, &task_block)
click to toggle source
# File lib/github_readme_generator/task.rb, line 25 def define(args, &task_block) desc "Generate a README.md" task_block.call(*[self, args].slice(0, task_block.arity)) if task_block # clear any (auto-)pre-existing task Rake::Task[@name].clear if Rake::Task.task_defined?(@name) task @name do out = @title out << "\n" out << "=" * @title.length out << "\n\n" # Badges @badges.each do |k, v| case v[:badge] when :puppetforge case v[:type] when 'v' title = v[:title] || 'Puppet Forge Version' when 'dt' title = v[:title] || 'Puppet Forge Downloads' else title = v[:title] || 'Puppet Forge' end img = "https://img.shields.io/puppetforge/#{v[:type]}/#{v[:user]}/#{v[:project]}.svg" link = "https://forge.puppetlabs.com/#{v[:user]}/#{v[:project]}" out << "[](#{link})\n" when :travis title = v[:title] || 'Build Status' img = "https://img.shields.io/travis/#{v[:user]}/#{v[:project]}.svg" link = "https://travis-ci.org/#{v[:user]}/#{v[:project]}" out << "[](#{link})\n" else fail "Unknown badge type '#{v[:badge]}'" end end # Usage from examples out << "\n## Usage\n\n" Dir.glob('examples/*').each do |e| content = File.read(e).gsub(/^#\s*/, '') out << "\n#{content}\n" end File.open('README.md', 'w').puts(out) end end