Class: ChRad::OutputManager

Inherits:
IOManager show all
Defined in:
lib/chrad/io_manager.rb

Instance Attribute Summary

Attributes inherited from IOManager

#base, #digits, #mode, #separator, #stream

Instance Method Summary collapse

Methods inherited from IOManager

#alphabet, #alphabet=, #automagic_find_alphabet, #setup_base_digits!, #value_to_digit

Constructor Details

#initializeOutputManager

Returns a new instance of OutputManager.



105
106
107
108
# File 'lib/chrad/io_manager.rb', line 105

def initialize
  @base = DEFAULT_OUTPUT_BASE
  @stream = $stdout
end

Instance Method Details

#nameObject



110
111
112
# File 'lib/chrad/io_manager.rb', line 110

def name
  'output'
end

#number_to_string(number) ⇒ Object



114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/chrad/io_manager.rb', line 114

def number_to_string(number)
  list = Algorithms.number_to_base(number, base)
  list.reverse!

  case mode
  when :alphabet
    list.map do |value|
      value_to_digit(value)
    end.join('')

  when :list
    list.join(separator)

  else
    raise Error, "Invalid mode #{mode.inspect}"
  end
end

#stream_puts(number) ⇒ Object



132
133
134
# File 'lib/chrad/io_manager.rb', line 132

def stream_puts(number)
  stream.puts number_to_string(number)
end