class Rubella::Output::ASCII
Creates a ascii art representation of the given storage data. In @data will a ordenary String be stored. Print the String to your output field and it will shows a nice ascii art graphic. There are also different ascii art themes available. Including the possibility to add own themes. You only need to push an Array within 10 chars for the representation into the :symbols Hash. Then you can select it with set the used_symbols
variable to you theme name.
TODO Use setted field_size for representation
Attributes
Public Class Methods
Constructor Sets the default field_size to 1. Also sets the used ascii art theme to “shades_ascii”. See the used_symbols
= for further information.
@param data Rubella::Storage
@param field_size int Used chars for one value @return Rubella::Output::ASCII
# File lib/rubella/output/ascii.rb, line 30 def initialize data, field_size = 1 @symbols = Hash.new @symbols["shades"] = [" ", " ", "░", "░", "▒", "▒", "▓", "▓", "█", "█"] @symbols["shades_ascii"] = [" ", "·", "⚬", "∞", "@", "#", "░", "▒", "▓", "█"] @symbols["ascii"] = [" ", "·", ",", ";", "o", "O", "%", "8", "@", "#"] @symbols["numbers"] = [" ", "1", "2", "3", "4", "5", "6", "7", "8", "9"] self.used_symbols = "shades_ascii" super data, field_size end
Public Instance Methods
Creates an ascii art representation.
@return String
# File lib/rubella/output/ascii.rb, line 69 def render buckets = @data.dataset_length # columns = @data.length # image size # x = columns*@field_size # y = buckets*@field_size # start drawing the damn thing ascii_arr = [] 0.upto(buckets-1).each { |i| ascii_arr[i] = "" } @data.each do |point| i = 0 point.reverse.each do |part| part = (part*10).to_i # Fix to prevent possible overflow.. should never happen, but we # are careful if part > 9 part = 9 end ascii_arr[i] << @symbols[@used_symbols][part] i = i+1 end end ascii_arr.join("\n") end
Sets the used ascii theme by the given name. The theme must exist. You can also choose your custom theme here. The at default avaliable themes are:
* shades * shades_ascii * ascii * numbers
@param value String The theme name @raise ArgumentError
# File lib/rubella/output/ascii.rb, line 56 def used_symbols= value if @symbols.has_key? value @used_symbols = value return end raise ArgumentError, "Symbol set not found, must be one of: " + @symbols.keys.join(", ") end