class CompileToRuby
Attributes
defaults[RW]
settable[RW]
worksheet[RW]
Public Class Methods
rewrite(*args)
click to toggle source
# File src/compile/ruby/compile_to_ruby.rb, line 9 def self.rewrite(*args) self.new.rewrite(*args) end
Public Instance Methods
rewrite(input, sheet_names, output)
click to toggle source
# File src/compile/ruby/compile_to_ruby.rb, line 13 def rewrite(input, sheet_names, output) self.settable ||= lambda { |ref| false } self.defaults ||= [] mapper = MapFormulaeToRuby.new mapper.sheet_names = sheet_names input.each do |ref, ast| begin worksheet = ref.first.to_s cell = ref.last mapper.worksheet = worksheet worksheet_c_name = mapper.sheet_names[worksheet] || worksheet.to_s name = worksheet_c_name.length > 0 ? "#{worksheet_c_name}_#{cell.downcase}" : cell.downcase if settable.call(ref) output.puts " attr_accessor :#{name} # Default: #{mapper.map(ast)}" defaults << " @#{name} = #{mapper.map(ast)}" else output.puts " def #{name}; @#{name} ||= #{mapper.map(ast)}; end" end rescue Exception => e puts "Exception at #{ref} => #{ast}" raise end end end