Sha256: 542c4023b7c8e27807ad3eaf6332d530914975fe7e5e7f595235c5735cc211b6
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
module Devcenter::Commands class Pull < Base def initialize(*args) @slug = slug_from_article_url(args[0]) @force_overwrite = args[1] super end def validate unless @slug && !@slug.strip.empty? @validation_errors << 'Please provide an article slug or full (e.g: ps or https://devcenter.heroku.com/articles/ps)' end end def run response = Devcenter::Client.get(path: article_api_path(@slug)) article_received = response.ok? && response.body['slug'] == @slug article_not_found!(@slug) unless article_received article = response.body metadata = {'title' => article['title'], 'id' => article['id']} file_path = md_file_path(@slug) unless @force_overwrite cancel_save = File.exists?(file_path) && !agree("The file #{file_path} already exists - overwrite? (yes/no)") return if cancel_save end file_content = [YAML.dump(metadata), article['content']].join("\n\n") write_file(file_path, file_content) say "\"#{metadata['title']}\" article saved as #{file_path}" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
devcenter-1.2.0 | lib/devcenter/commands/pull.rb |
devcenter-1.1.9 | lib/devcenter/commands/pull.rb |