class FunctionalBrainruby::Generator

Constants

ONE
TEMPLATE

Public Class Methods

new(string) click to toggle source
# File lib/functional_brainruby/generator.rb, line 10
def initialize(string)
  @string = string
  @esocode = esostring(string)
end

Public Instance Methods

to_functional_brainruby() click to toggle source
# File lib/functional_brainruby/generator.rb, line 15
def to_functional_brainruby
  TEMPLATE.result(binding)
end

Private Instance Methods

esonum_from_char(char) click to toggle source
# File lib/functional_brainruby/generator.rb, line 25
def esonum_from_char(char)
  '__[' + char.ord.to_s(2).reverse.split('').map.with_index { |digit, index|
    if digit == "1"
      if index == 0
        "__[#{ONE}]"
      else
        "#{index.times.map { "_[" }.join}#{ONE}#{index.times.map { ",#{ONE}]" }.join}"
      end
    end
  }.compact.join('--') + "]"
end
esostring(string) click to toggle source
# File lib/functional_brainruby/generator.rb, line 21
def esostring(string)
  %Q{""#{string.each_char.map { |char| "<<#{esonum_from_char(char)}" }.join}}
end