class InciScore::CLI

Public Class Methods

new(args:, io: STDOUT, catalog: InciScore::Catalog.fetch) click to toggle source
# File lib/inci_score/cli.rb, line 7
def initialize(args:, io: STDOUT, catalog: InciScore::Catalog.fetch)
  @args = args
  @io = io
  @catalog = catalog
  @src = nil
  @port = nil
end

Public Instance Methods

call(server_klass: Server, computer_klass: Computer) click to toggle source
# File lib/inci_score/cli.rb, line 15
def call(server_klass: Server, computer_klass: Computer)
  parser.parse!(@args)
  return server_klass.new(port: @port, preload: true).run if @port
  return @io.puts(%q{Specify inci list as: --src="aqua, parfum, etc"}) unless @src
  @io.puts computer_klass.new(src: @src, catalog: @catalog).call
end

Private Instance Methods

parser() click to toggle source
# File lib/inci_score/cli.rb, line 22
        def parser
  OptionParser.new do |opts|
    opts.banner = %q{Usage: inci_score --src="aqua, parfum, etc"}

    opts.on("-sSRC", "--src=SRC", %q{The INCI list: "aqua, parfum, etc"}) do |src|
      @src = src
    end

    opts.on("--http=PORT", "Start HTTP server on the specified port") do |port|
      @port = port
    end

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