Sha256: 1b263b99e0342a4783d463d1527bbd800a9583bd3396fec98aecca8737afdaa0

Contents?: true

Size: 1.4 KB

Versions: 7

Compression:

Stored size: 1.4 KB

Contents

require 'thor'

module GitTrend
  class CLI < Thor
    include GitTrend::Rendering

    map '-v'              => :version,
        '--version'       => :version

    default_command :list

    desc :version, 'show version'
    def version
      say "git-trend version: #{VERSION}", :green
    end

    desc :list, "\033[32m(DEFAULT COMMAND)\e[0m List Trending repository on github [-l, -s, -d]"
    option :language,    aliases: '-l', required: false, desc: 'Specify a language'
    option :since,       aliases: '-s', required: false, desc: 'Enable: [daily, weekly, monthly]'
    option :description, aliases: '-d', required: false, default: true, type: :boolean, desc: "\033[32m(DEFAULT OPTION)\e[0m Dislpay descriptions"
    option :number,      aliases: '-n', required: false, type: :numeric, desc: 'Number of lines'
    option :help,        aliases: '-h', required: false, type: :boolean
    def list
      help(:list) and return if options[:help]
      scraper = Scraper.new
      projects = scraper.get(options[:language], options[:since], options[:number])
      render(projects, !!options[:description])
    rescue => e
      say "An unexpected #{e.class} has occurred.", :red
      say e.message unless e.class.to_s == e.message
    end

    desc :languages, 'Show selectable languages'
    def languages
      scraper = Scraper.new
      languages = scraper.languages
      render_languages(languages)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
git-trend-0.2.3 lib/git_trend/cli.rb
git-trend-0.2.2 lib/git_trend/cli.rb
git-trend-0.2.1 lib/git_trend/cli.rb
git-trend-0.2.0 lib/git_trend/cli.rb
git-trend-0.1.9 lib/git_trend/cli.rb
git-trend-0.1.8 lib/git_trend/cli.rb
git-trend-0.1.7 lib/git_trend/cli.rb