require 'opal/builder' module Opal class Bundle attr_accessor :name attr_accessor :version attr_accessor :options def initialize @builder = Builder.new @options = {} end def build lib_files = Dir["{lib}/**/*.rb"].map do |lib| code = @builder.parse File.read(lib), options path = lib[4, lib.length - 7] "\"#{path}\": #{code}" end bundle = [] bundle << %[opal.gem({\n] bundle << %[ name: "#{@name}",\n] bundle << %[ version: "#{@version}",\n] bundle << %[ libs: {\n] bundle << %[ #{lib_files.join ",\n "}\n] bundle << %[ }\n] bundle << %[});\n] bundle.join '' end end end