blob: cecdc615a976f32c310c0714eded58c933be7002 [file] [log] [blame]
# Copyright (c) 2013 Brandon Jones, Colin MacKenzie IV
#
# This software is provided 'as-is', without any express or implied
# warranty. In no event will the authors be held liable for any damages
# arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
#
# 1. The origin of this software must not be misrepresented; you must not
# claim that you wrote the original software. If you use this software
# in a product, an acknowledgment in the product documentation would be
# appreciated but is not required.
#
# 2. Altered source versions must be plainly marked as such, and must not
# be misrepresented as being the original software.
#
# 3. This notice may not be removed or altered from any source distribution.
#
$:.unshift File.expand_path('.', File.dirname(__FILE__))
require 'sprockets'
require 'jasmine'
class Jasmine::Config
def simple_config_file
File.expand_path GLMatrix.base_path.join('spec/jasmine.yml')
end
end
class Rack::Jasmine::Runner
alias_method :jasmine_call, :call
def call(env)
GLMatrix.compile
jasmine_call env
end
end
module GLMatrix
autoload :ReleaseHelper, 'gl-matrix/release_helper'
autoload :Version, 'gl-matrix/version'
autoload :VERSION, 'gl-matrix/version'
module_function
def release(&block)
GLMatrix::ReleaseHelper.release &block
end
def sprockets
env = Sprockets::Environment.new base_path
env.append_path base_path.join('src')
env
end
def base_path
Pathname.new File.expand_path('../..', File.dirname(__FILE__))
end
# Compiles the source file to the dest file. If a block
# is given, the source file is yielded and replaced with
# the result. Returns the destination as a Pathname.
def compile(source = 'gl-matrix.js', dest = 'dist/gl-matrix.js')
dest = base_path.join dest
js = sprockets[source]
js = yield js if block_given?
File.open dest, "w" do |f|
f.puts js
end
puts "compiled #{source} to #{dest.relative_path_from base_path}"
dest
end
def minify(source = 'gl-matrix.js', dest = 'dist/gl-matrix-min.js')
dest = compile source, dest do |js|
Uglifier.compile js
end
puts "minified #{source} to #{dest.relative_path_from base_path}"
end
end