Sha256: a000267116512fdb2712aa1baa6aa3c2216e809dff79bb6b093083cf84c4843f

Contents?: true

Size: 929 Bytes

Versions: 2

Compression:

Stored size: 929 Bytes

Contents

require 'thor'
require 'agile_utils'
module ExtensionLister
  class CLI < Thor
    using AgileUtils::HashExt

    desc 'list', 'List all unique extensions'
    method_option "base_dir",
                  aliases:  "-b",
                  desc:     "Base directory",
                  default:  File.expand_path(".")

    method_option 'version',
                  aliases: '-v',
                  desc: 'Display version number'
    def list
      opts = options.symbolize_keys
      if opts[:version]
        puts "You are using ExtensionLister version #{ExtensionLister::VERSION}"
        exit
      end
      puts list_extensions(opts[:base_dir])
    end

    private

    def list_extensions(base_dir = ".")
      extensions = Dir.glob(File.join(File.expand_path(base_dir), "**/*")).reduce([]) do |exts, file|
        exts << File.extname(file)
      end
      extensions.sort.uniq.delete_if { |e| e == "" }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
extension_lister-0.2.1 lib/extension_lister/cli.rb
extension_lister-0.2.0 lib/extension_lister/cli.rb