Sha256: 9725c1419c6b80c1c585ad3b3d8c483391265142c5cfdec3bffb63c2a3a637fc

Contents?: true

Size: 882 Bytes

Versions: 4

Compression:

Stored size: 882 Bytes

Contents

require "optparse"
require "lapidarius/cutter"

module Lapidarius
  class CLI
    def initialize(args, io = STDOUT)
      @args = args
      @io = io
      @gem = nil
    end

    def call(cmd_klass = Command)
      parser.parse!(@args)
      return @io.puts("specify gem name as: '-g gem_name'") unless @gem
      obj = Lapidarius::Cutter.new(@gem, cmd_klass).call
      @io.puts Lapidarius::Tree::new(obj).out
    rescue Gem::NotInstalledError => e
      @io.puts e.message.sub("specified", "\e[1m#{@gem}\e[0m")
    end

    private def parser
      OptionParser.new do |opts|
        opts.banner = "Usage: ./bin/lapidarius --gem=sinatra"

        opts.on("-gGEM", "--gem=GEM", "The gem name to scan") do |gem|
          @gem = gem
        end

        opts.on("-h", "--help", "Prints this help") do
          @io.puts opts
          exit
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lapidarius-3.2.0 lib/lapidarius/cli.rb
lapidarius-3.1.2 lib/lapidarius/cli.rb
lapidarius-3.1.1 lib/lapidarius/cli.rb
lapidarius-3.1.0 lib/lapidarius/cli.rb