Browse | Submit A New Snippet | Create A Package

 

Number Wang

Type:
Sample Code (HOWTO)
Category:
Math Functions
License:
Ruby License
Language:
Ruby
 
Description:
An experiment with Ascii Art and Ruby code.

Versions Of This Snippet::

Philip Matarese
Snippet ID Download Version Date Posted Author Delete
33712008-01-11 16:57Philip Matarese

Download a raw-text version of this code by clicking on "Download Version"

 


Latest Snippet Version: :1

class NumberWang
  ALL = %w{ zero one two three four five six seven eight nine }
  
  # Omphaloskepsis
  def self.reveal_method(method_name = nil)
    @@source ||= File.open(__FILE__).read
    
    source = ''
    
    if method_name
      in_method = false
      @@source.each do |s|
        next unless in_method || s.strip == "def self.#{method_name}"
        break if s.strip == "end"
        in_method = true
        
        source << s
      end
    else
      ALL.each{|a| reveal_method(a)}
    end
    
    puts source.chop #drop the linebreak
    puts
  end
  
  def self.all
    ALL.map{|a| self.send(a.to_sym)}
  end
  
  def self.zero
    ----------1*1-------------
    ---------1 - 1------------
    ---------1 * 1------------
    ---------1 - 1------------
    ----------1*1------------1
  end

  def self.one
    ------------1--------------
    -----------11--------------
    ------------1--------------
    ------------1--------------
    ----------11-1-------------1
  end

  def self.two
    ----------1-1--------------
    -------------1-------------
    -----------11--------------
    ----------1----------------
    ----------1-11------------1
  end

  def self.three
    ----------1--1------------
    --------------1-----------
    -----------1-1------------
    --------------1-----------
    ----------1--1-----------1
  end

  def self.four
    ----------1--1------------
    ----------1--1------------
    ----------1-1-1-----------
    -------------1------------
    -------------1------------1
  end

  def self.five
    ----------11-1-------------
    ----------1----------------
    -----------1-1-------------
    --------------1------------
    -----------1-1------------1
  end

  def self.six
    ----------11*1-------------
    ---------1-----------------
    ---------1*-1--------------
    ---------1 - 1-------------
    ----------1-1-------------1
  end

  def self.seven
    ----------11-1-------------
    -------------1-------------
    ------------1--------------
    -----------1---------------
    ----------1---------------1
  end

  def self.eight
    ----------11*1------------
    ---------1 - 1------------
    ----------1-1-------------
    ---------1 - 1------------
    ----------1-1-------------1
  end

  def self.nine
    -----------1*1------------
    ----------1 - 1-----------
    -----------1*11-----------
    -------------1------------
    -----------1-------------1
  end
end

		

Submit a new version

You can submit a new version of this snippet if you have modified it and you feel it is appropriate to share with others..