-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathThorfile
79 lines (64 loc) · 2.93 KB
/
Thorfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
require 'json/pure'
class Build < Thor
# This is the list of files to concatenate. The first file will appear at the top of the final file. All files are relative to the lib directory.
FILES = [
"src/globals.js", "src/core/graphics/tile.js", "src/core/graphics/zone.js", "src/core/graphics/particle.js",
"src/core/graphics/particleEmmiter.js", "src/core/graphics/item.js", "src/core/graphics/mobile.js",
"src/core/networking/util.js", "src/core/networking/packet.js", "src/core/networking/packetHandler.js",
"src/core/networking/exceptions.js",
"src/core/networking/packetReader.js", "src/core/networking/packetWriter.js", "src/core/networking/messagePump.js", "src/core/networking/sendQueue.js", "src/core/networking/netState.js", "src/core/asset.js", "src/core/assetBundle.js", "src/core/sound.js",
"src/core/assetManager.js", "src/core/soundManager.js", "src/core/inputManager.js", "src/game/container.js", "src/game/creature.js",
"src/game/monster.js", "src/game/player.js", "src/game/npc.js", "src/game/stage.js", "src/game/stageManager.js", "src/game/engine.js"
]
desc "dev", "Concatenate all the js files into /dist/andradajs-VERSION.js."
method_option :date, :aliases => "-d", :required => false, :type => :string, :desc => "The release date"
def dev(version)
file_name = "dist/andradajs-#{version}.js"
puts ":: Deleting other development files..."
Dir.foreach("dist") do |file|
puts ":: Building the file /#{file}..."
if file.match(/.*[^(min)]\.js/)
File.delete("dist/" + file)
end
end
puts ":: Building the file /#{file_name}..."
File.open(file_name, "w") do |file|
file.puts concatenate(version, options[:date])
end
puts " -> Done!"
end
desc "prod", "Concatenate all the js files in into /dist/andradajs-VERSION.min.js and minify it."
method_option :date, :aliases => "-d", :required => false, :type => :string, :desc => "The release date"
def prod(version)
file_name = "dist/andradajs-#{version}.min.js"
puts ":: Deleting other development files..."
Dir.foreach("dist") do |file|
if file.match(/.*min\.js/)
File.delete("dist/" + file)
end
end
puts ":: Building the file /#{file_name}..."
require 'json/pure'
require 'uglifier'
File.open(file_name, "w") do |file|
uglify = Uglifier.compile(concatenate(version, options[:date]))
uglify.sub!(/\*\/ .+ \*\//xm, "*/")
file.puts uglify
end
puts ":: Minifying the file /#{file_name}..."
puts " -> Done!"
end
private
def concatenate(version, date)
date ||= Time.now.strftime("%b %d %Y")
content = ""
FILES.each do |file|
content << IO.read(File.expand_path(file)) << "\n"
end
# Add the version number
content.sub!("@version", version)
# Add the date
content.sub!("@date", date)
return content
end
end