Module: Croupier::Distributions

Defined in:
lib/croupier/distributions.rb,
lib/croupier/distributions/cauchy.rb,
lib/croupier/distributions/normal.rb,
lib/croupier/distributions/poisson.rb,
lib/croupier/distributions/uniform.rb,
lib/croupier/distributions/binomial.rb,
lib/croupier/distributions/bernoulli.rb,
lib/croupier/distributions/geometric.rb,
lib/croupier/distributions/nbinomial.rb,
lib/croupier/distributions/triangular.rb,
lib/croupier/distributions/exponential.rb

Defined Under Namespace

Classes: Bernoulli, Binomial, Cauchy, Exponential, Geometric, Nbinomial, Normal, Poisson, Triangular, Uniform

Class Method Summary collapse

Class Method Details

.allObject

An array containing all available Distribution classes



6
7
8
9
10
11
# File 'lib/croupier/distributions.rb', line 6

def all
  ::Croupier::Distributions.constants(false).inject([]){|list, distrib|
    d = ::Croupier::Distributions.const_get(distrib)
    (d.is_a?(Class) && d.superclass == Croupier::Distribution) ? list << d : list
  }.uniq.compact
end

.listObject

list of all available distribution names (and methods on Distributions module)



14
15
16
# File 'lib/croupier/distributions.rb', line 14

def list
  self.all.map(&:cli_name).sort
end

.method_missing(method, *args, &block) ⇒ Object

:nodoc:



18
19
20
21
# File 'lib/croupier/distributions.rb', line 18

def method_missing(method, *args, &block) # :nodoc:
  return super unless self.respond_to?(method)
  self.all.select{|d| d.cli_name == method.to_s}.first.new *args
end

.respond_to?(method, include_private = false) ⇒ Boolean

:nodoc:

Returns:

  • (Boolean)


23
24
25
# File 'lib/croupier/distributions.rb', line 23

def respond_to?(method, include_private = false) # :nodoc:
  self.list.include?(method.to_s) || super(method, include_private)
end