Sha256: 914c1e3283adc9a0f35bf3ba3821bc4192f72c536a910b986b713b157c37ca1b
Contents?: true
Size: 1.18 KB
Versions: 2
Compression:
Stored size: 1.18 KB
Contents
require 'excon' require 'launchy' require 'json' require 'yaml' module Devcenter::Commands class Base include Devcenter::Helpers def self.run(*args) command = self.new(*args) end def initialize(*args) @validation_errors = [] validate if @validation_errors.any? @validation_errors.each{ |e| say e } else run end end def validate; end # add error messages to @validation_errors def run; end protected def article_not_found!(slug) message = ["No #{slug} article found."] suggestions = JSON.parse(Excon.get(search_api_url, :query => { :q => slug, :source => 'devcenter-cli' }).body)['devcenter'] suggestions.select!{ |s| article_url?(s['full_url']) } suggestions.each{ |s| s['slug'] = slug_from_article_url(s['full_url']) } unless suggestions.empty? message << "Perhaps you meant one of these:" longest = suggestions.map {|suggestion| suggestion['slug'].size }.max suggestions.each do |suggestion| message << " %-#{longest}s # %s" % [suggestion['slug'], suggestion['title']] end end say message.join("\n") exit end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
devcenter-0.0.2 | lib/devcenter/commands/base.rb |
devcenter-0.0.1 | lib/devcenter/commands/base.rb |