Class: Croupier::CLI::Application

Inherits:
Object
  • Object
show all
Defined in:
lib/croupier/cli/application.rb

Overview

Croupier main command line interface application object.

When invoking croupier from the command line, a Croupier::CLI::Application object is created and run.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeApplication

Initialize a Croupier::CLI::Application object. It Checks and loads the available distributions.



14
15
16
17
18
19
20
# File 'lib/croupier/cli/application.rb', line 14

def initialize
  @distribution_list, @distributions_options = {}, {}
  ::Croupier::Distributions.all.each do |d|
    @distribution_list[d.cli_name] = d
    @distributions_options[d.cli_name] = d.cli_options
  end
end

Instance Attribute Details

#distribution_listObject

Returns the value of attribute distribution_list.



10
11
12
# File 'lib/croupier/cli/application.rb', line 10

def distribution_list
  @distribution_list
end

#distributions_optionsObject

Returns the value of attribute distributions_options.



10
11
12
# File 'lib/croupier/cli/application.rb', line 10

def distributions_options
  @distributions_options
end

Instance Method Details

#runObject

Run the Croupier application. The run method performs the following steps:

  • Parses the application options.

  • Identifies the probability distribution, sample size and options to use.

  • Asks the actual distribution to generate the numbers, and outputs them.



27
28
29
30
31
# File 'lib/croupier/cli/application.rb', line 27

def run
  Croupier.trap_interrupt
  distribution, sample_size, params = parse_distribution_options
  distribution.new(params).generate_sample(sample_size).each{|n| Croupier.message n}
end