Sha256: ec6bcaa254b96a94a79df79530091a7fde7ab944997c8c4787e0ee985287318e

Contents?: true

Size: 1.57 KB

Versions: 1

Compression:

Stored size: 1.57 KB

Contents

require 'bundler/setup'
require 'opal-spec'

desc "Build opal.js into ./build"
task :opal => [:dir] do
  File.open('build/opal.js', 'w+') { |o| o.puts Opal.runtime }
end

desc "Build opal-parser.js into ./build"
task :parser => [:dir] do
  File.open('build/opal-parser.js', 'w+') { |o| o.puts Opal.parser_code }
end

desc "Build specs ready to run"
task :build_specs => [:dir] do
  Opal.append_path File.join(File.dirname(__FILE__), 'spec')

  File.open('build/specs.js', 'w+') do |out|
    out.puts Opal.process('spec_helper')
  end
end

task :default => [:build_specs, :parser, :test]

desc "Run opal specs through phantomjs"
task :test do
  OpalSpec.runner
end

task :dir do
  require 'fileutils'
  FileUtils.mkdir_p 'build'
end

desc "opal.min.js and opal-parser.min.js"
task :min do
  %w[opal opal-parser].each do |file|
    puts " * #{file}.min.js"
    File.open("build/#{file}.min.js", "w+") do |o|
      o.puts uglify(File.read "build/#{file}.js")
    end
  end
end

desc "Check file sizes for opal.js runtime"
task :sizes do
  o = File.read 'build/opal.js'
  m = uglify o
  g = gzip m

  puts "opal.js:"
  puts "development: #{o.size}, minified: #{m.size}, gzipped: #{g.size}"
end

desc "Rebuild grammar.rb for opal parser"
task :racc do
  %x(racc -l lib/opal/grammar.y -o lib/opal/grammar.rb)
end

# Used for uglifying source to minify
def uglify(str)
  IO.popen('uglifyjs -nc', 'r+') do |i|
    i.puts str
    i.close_write
    return i.read
  end
end

# Gzip code to check file size
def gzip(str)
  IO.popen('gzip -f', 'r+') do |i|
    i.puts str
    i.close_write
    return i.read
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
opal-0.3.34 Rakefile