technekes/grape-apiary

View on GitHub
lib/grape-apiary/tasks/grape-apiary.rake

Summary

Maintainability
Test Coverage
namespace :ga do
  desc 'Produce documentation'
  task docs: :environment do
    api = ENV['API'] || ARGV[1]
    raise 'You must provide the name of an API to document' if api.nil?
    begin
      api_class = Object.const_get(api)
      api_docs = GrapeApiary::Blueprint.new(api_class).generate
      output_file = 'docs/grape-apiary.md'
      File.open(output_file, 'w') { |file| file.write(api_docs) }
    rescue NameError
      raise "#{api} has not been defined as a Grape API"
    end
  end
end