Sha256: a6ad2f9c1f0d9235fdb984626eacb7a84f45a7ca6f4fa4975e2e8b9b3e4f340f
Contents?: true
Size: 1.49 KB
Versions: 2
Compression:
Stored size: 1.49 KB
Contents
require 'yaml' require 'excon' require 'json' require 'launchy' module Devcenter::Commands class Base include Devcenter::Logger include Devcenter::Helpers def self.run(*args) if Devcenter::GemVersionChecker.new_version_available? say "devcenter has a new version available, please update with: gem install devcenter" return unless agree('Continue executing your command? (yes/no)') end command = self.new(*args) end def initialize(*args) @validation_errors = [] validate if @validation_errors.any? @validation_errors.each{ |e| say e } abort 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."] response = Devcenter::Client.get(:path => search_api_path, :query => { :q => slug, :source => 'devcenter-cli' }) suggestions = response.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 abort message.join("\n") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
devcenter-1.1.8 | lib/devcenter/commands/base.rb |
devcenter-1.1.6 | lib/devcenter/commands/base.rb |