def inline(lang = :C, options={})
case options
when TrueClass, FalseClass then
warn "WAR\NING: 2nd argument to inline is now a hash, changing to {:testing=>#{options}}" unless options
options = { :testing => options }
when Hash
options[:testing] ||= false
else
raise ArgumentError, "BLAH"
end
builder_class = begin
Inline.const_get(lang)
rescue NameError
require "inline/#{lang}"
Inline.const_get(lang)
end
@options = options
builder = builder_class.new self
yield builder
unless options[:testing] then
unless builder.load_cache then
builder.build
builder.load
end
end
end