class Cryptozoologist::Configuration

Attributes

delimiter[R]
exclude[R]
include[R]
order[R]

Public Class Methods

new() click to toggle source
# File lib/cryptozoologist/configuration.rb, line 5
def initialize
  @exclude = []
  @delimiter = "-"
  @order = [:colors, :animals, :clothing]
  @include = []
end

Public Instance Methods

delimiter=(string) click to toggle source
# File lib/cryptozoologist/configuration.rb, line 20
def delimiter=(string)
  raise Errors::Configuration, "delimiter must be a a string" unless string.is_a?(String)

  @delimiter = string
end
exclude=(exclusions) click to toggle source
# File lib/cryptozoologist/configuration.rb, line 34
def exclude=(exclusions)
  raise Errors::Configuration, "Exclusions must be an array" unless exclusions.is_a?(Array)

  @exclude = exclusions.select { |e| valid_exclusions.include?(e) }
end
include=(inclusions) click to toggle source
# File lib/cryptozoologist/configuration.rb, line 26
def include=(inclusions)
  raise Errors::Configuration, "Inclusions must be an array" unless inclusions.is_a?(Array)

  @include = inclusions.select { |e| valid_inclusions.include?(e) }
  inclusions += @order
  @order = inclusions
end
include_quantity?() click to toggle source
# File lib/cryptozoologist/configuration.rb, line 40
def include_quantity?
  @include.include?(:quantity)
end
order=(list) click to toggle source
# File lib/cryptozoologist/configuration.rb, line 12
def order=(list)
  raise Errors::Configuration, "Order must be an array" unless list.is_a?(Array)
  raise Errors::Configuration, "Order must contain 3 items" unless list.length == 3
  invalid_keys = list.select { |e| !valid_order.include?(e) }
  raise Errors::Configuration, "Invalid order setting provided: #{invalid_keys}" unless invalid_keys.empty?
  @order = list
end

Private Instance Methods

valid_exclusions() click to toggle source
# File lib/cryptozoologist/configuration.rb, line 49
def valid_exclusions
  keys = []
  Cryptozoologist.subdictionaries.each { |key, value| keys += value.keys }
  keys
end
valid_inclusions() click to toggle source
# File lib/cryptozoologist/configuration.rb, line 55
def valid_inclusions
  [:quantity]
end
valid_order() click to toggle source
# File lib/cryptozoologist/configuration.rb, line 45
def valid_order
  [:animals, :colors, :clothing]
end