module Gobstones::CompilationMode::GameFramework
Public Class Methods
compile_content(content)
click to toggle source
# File lib/gobstones/compilation_mode.rb, line 21 def compile_content(content) if blockly_code?(content) xml = Nokogiri::XML(content) xml.root.add_child render_framework_file('program.xml') xml.to_xhtml.gsub(/\n\s*/, '') else <<~GBS #{content} #{program_code} GBS .chop end end
compile_extra(extra)
click to toggle source
# File lib/gobstones/compilation_mode.rb, line 17 def compile_extra(extra) [extra, extra_code] end
default_code()
click to toggle source
# File lib/gobstones/compilation_mode.rb, line 44 def default_code render_framework_file 'default.xml' end
extra_code()
click to toggle source
# File lib/gobstones/compilation_mode.rb, line 36 def extra_code render_framework_file 'extra.gbs' end
program_code()
click to toggle source
# File lib/gobstones/compilation_mode.rb, line 40 def program_code render_framework_file 'program.gbs' end
Private Class Methods
blockly_code?(content)
click to toggle source
# File lib/gobstones/compilation_mode.rb, line 50 def blockly_code?(content) content.strip.start_with? '<xml' end
render_framework_file(name)
click to toggle source
# File lib/gobstones/compilation_mode.rb, line 54 def render_framework_file(name) ERB.new(File.read(File.join(__dir__, "../game_framework/#{name}.erb"))).result end