-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpluginBuild.coffee
More file actions
122 lines (106 loc) · 2.48 KB
/
pluginBuild.coffee
File metadata and controls
122 lines (106 loc) · 2.48 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
_ = require 'underscore'
class BuildProcess
constructor: (@fName, src, dest) ->
@src = src ? ('lib/components/' + fName + '/')
@dest = dest ? ('build/components/' + fName + '/')
@tmpBuild = @src+'.build/'
###
Compile template
###
compileTemplate: () ->
config =
files: [
{
cwd: @src
src: '*.jade'
dest: @src
expand: true
ext: '.html'
}
]
###
Compile Logic
###
compileLogic: () ->
config =
files: [
{
expand: true
cwd: @src
src: ['*.coffee']
dest: @tmpBuild
ext: '.js'
}
]
###
template caching
###
templateCaching: () ->
files = []
files[0] = {}
viewFile = @tmpBuild + 'view.js'
files[0][viewFile] = @src+'*.html'
config =
files: files
options:
module: 'OOD_' + @fName
###
retrieve translation material
###
extractTranslation: () ->
files = {}
potFile = @tmpBuild + 'translate.pot'
files[potFile] = [@src+'*.html']
config =
files: files
###
compile translation .pot into .js
###
compileTranslation: () ->
files = {}
jsFile = @tmpBuild + 'translate.js'
files[jsFile] = [@tmpBuild+'translate.pot']
config =
files: files
###
concat logic code, template cache, translation, register into one
###
concatIntoComponent: () ->
config =
src: [
'lib/version.js'
@tmpBuild + 'X_*.js'
@tmpBuild + 'register.js'
@tmpBuild + 'translate.js'
@tmpBuild + 'view.js'
]
dest:
@dest + 'c_' + @fName + '.js'
clean: () ->
config = [@tmpBuild, @dest, @src+'*.html']
generateConfig: () ->
raw =
clean: @clean
coffee: @compileLogic
jade: @compileTemplate
ngTemplateCache: @templateCaching
nggettext_extract: @extractTranslation
nggettext_compile: @compileTranslation
concat: @concatIntoComponent
config = _.mapObject raw, (v, k) =>
tmp = {}
tmp[@fName] = v.apply @
tmp
generatePreTask: () ->
taskName = @fName + 'PreCreator'
_seq = ["clean", "coffee", "jade", "ngTemplateCache", "nggettext_extract"]
seq = _.map _seq, (v) =>
v + ":" + @fName
[taskName, seq]
generatePostTask: () ->
taskName = @fName + 'PostCreator'
_seq = ["nggettext_compile", "concat"]
seq = _.map _seq, (v) =>
v + ":" + @fName
[taskName, seq]
module.exports = BuildProcess