1
1
/*
2
- * patternlab-node - v0.1.1 - 2014-05-06
2
+ * patternlab-node - v0.1.1 - 2014-05-07
3
3
*
4
4
* Brian Muenzenmeyer, and the web community.
5
5
* Licensed under the MIT license.
11
11
var plnode = function ( grunt ) {
12
12
var path = require ( 'path' ) ,
13
13
mustache = require ( 'mustache' ) ,
14
+ of = require ( './object_factory' ) ,
15
+ pa = require ( './pattern_assembler' ) ,
14
16
patternlab = { } ;
15
17
16
18
patternlab . package = grunt . file . readJSON ( 'package.json' ) ;
17
19
18
- var oPattern = function ( name , subdir , filename , data ) {
19
- this . name = name ; //this is the unique name with the subDir
20
- this . subdir = subdir ;
21
- this . filename = filename ;
22
- this . data = data ;
23
- this . template = '' ;
24
- this . patternPartial = '' ;
25
- this . patternName = '' ; //this is the display name for the ui
26
- this . patternLink = '' ;
27
- this . patternGroup = name . substring ( name . indexOf ( '-' ) + 1 , name . indexOf ( '-' , 4 ) + 1 - name . indexOf ( '-' ) + 1 ) ;
28
- this . patternSubGroup = subdir . substring ( subdir . indexOf ( '/' ) + 4 ) ;
29
- this . flatPatternPath = subdir . replace ( / \/ / g, '-' ) ;
30
- } ;
31
-
32
- var oBucket = function ( name ) {
33
- this . bucketNameLC = name ;
34
- this . bucketNameUC = name . charAt ( 0 ) . toUpperCase ( ) + name . slice ( 1 ) ;
35
- this . navItems = [ ] ;
36
- this . navItemsIndex = [ ] ;
37
- this . patternItems = [ ] ;
38
- this . patternItemsIndex = [ ] ;
39
- } ;
40
-
41
- var oNavItem = function ( name ) {
42
- this . sectionNameLC = name ;
43
- this . sectionNameUC = name . charAt ( 0 ) . toUpperCase ( ) + name . slice ( 1 ) ;
44
- this . navSubItems = [ ] ;
45
- this . navSubItemsIndex = [ ] ;
46
- } ;
47
-
48
- var oNavSubItem = function ( name ) {
49
- this . patternPath = '' ;
50
- this . patternPartial = '' ;
51
- this . patternName = name . charAt ( 0 ) . toUpperCase ( ) + name . slice ( 1 ) ;
52
- } ;
53
-
54
- var oPatternItem = function ( ) {
55
- this . patternPath = '' ;
56
- this . patternPartial = '' ;
57
- this . patternName = '' ;
58
- } ;
59
-
60
20
function getVersion ( ) {
61
21
grunt . log . ok ( patternlab . package . version ) ;
62
22
}
63
23
24
+ function help ( ) {
25
+ grunt . log . ok ( 'patternlab help coming soon' ) ;
26
+ }
27
+
64
28
function build ( ) {
65
29
66
30
patternlab . data = grunt . file . readJSON ( './source/_data/data.json' ) ;
@@ -91,18 +55,18 @@ var plnode = function(grunt){
91
55
//returns -1 if patterns does not exist, otherwise returns the index
92
56
//add the pattern array if first time, otherwise pull it up
93
57
if ( patternIndex === - 1 ) {
94
- grunt . log . ok ( 'pattern not found, adding to array' ) ;
58
+ grunt . verbose . ok ( 'pattern not found, adding to array' ) ;
95
59
var flatPatternName = subdir . replace ( / \/ / g, '-' ) + '-' + patternName ;
96
60
flatPatternName = flatPatternName . replace ( / \/ / g, '-' ) ;
97
- currentPattern = new oPattern ( flatPatternName , subdir , filename , { } ) ;
61
+ currentPattern = new of . oPattern ( flatPatternName , subdir , filename , { } ) ;
98
62
currentPattern . patternName = patternName . substring ( patternName . indexOf ( '-' ) + 1 ) ;
99
63
100
64
if ( grunt . util . _ . str . include ( filename , 'json' ) ) {
101
- grunt . log . writeln ( 'json file found first, so add it to the pattern and continuing' ) ;
65
+ grunt . verbose . ok ( 'json file found first, so add it to the pattern and continuing' ) ;
102
66
currentPattern . data = grunt . file . readJSON ( abspath ) ;
103
67
//done
104
68
} else {
105
- grunt . log . writeln ( 'mustache file found, assume no data, so compile it right away' ) ;
69
+ grunt . verbose . ok ( 'mustache file found, assume no data, so compile it right away' ) ;
106
70
currentPattern . template = grunt . file . read ( abspath ) ;
107
71
108
72
//render the pattern. pass partials object just in case.
@@ -138,15 +102,15 @@ var plnode = function(grunt){
138
102
} else {
139
103
//if we get here, we can almost ensure we found the json first, so render the template and pass in the unique json
140
104
currentPattern = patternlab . patterns [ patternIndex ] ;
141
- grunt . log . ok ( 'pattern found, loaded' ) ;
105
+ grunt . verbose . ok ( 'pattern found, loaded' ) ;
142
106
//determine if this file is data or pattern
143
107
if ( grunt . util . _ . str . include ( filename , 'mustache' ) ) {
144
108
145
109
currentPattern . template = grunt . file . read ( abspath ) ;
146
110
147
111
//render the pattern. pass partials object just in case.
148
112
currentPattern . patternPartial = mustache . render ( currentPattern . template , currentPattern . data , patternlab . partials ) ;
149
- grunt . log . writeln ( 'template compiled with data!' ) ;
113
+ grunt . verbose . ok ( 'template compiled with data!' ) ;
150
114
151
115
//write the compiled template to the public patterns directory
152
116
flatPatternPath = currentPattern . name + '/' + currentPattern . name + '.html' ;
@@ -183,7 +147,7 @@ var plnode = function(grunt){
183
147
var bucketIndex = patternlab . bucketIndex . indexOf ( bucketName ) ;
184
148
if ( bucketIndex === - 1 ) {
185
149
//add the bucket
186
- var bucket = new oBucket ( bucketName ) ;
150
+ var bucket = new of . oBucket ( bucketName ) ;
187
151
188
152
//add paternPath
189
153
patternlab . patternPaths [ bucketName ] = { } ;
@@ -203,10 +167,10 @@ var plnode = function(grunt){
203
167
}
204
168
205
169
//assume the navItem does not exist.
206
- var navItem = new oNavItem ( navItemName ) ;
170
+ var navItem = new of . oNavItem ( navItemName ) ;
207
171
208
172
//assume the navSubItem does not exist.
209
- var navSubItem = new oNavSubItem ( navSubItemName ) ;
173
+ var navSubItem = new of . oNavSubItem ( navSubItemName ) ;
210
174
navSubItem . patternPath = pattern . patternLink ;
211
175
navSubItem . patternPartial = bucketName + "-" + pattern . patternName ; //add the hyphenated name
212
176
@@ -247,7 +211,7 @@ var plnode = function(grunt){
247
211
var navSubItemName = pattern . patternName . replace ( / - / g, ' ' ) ;
248
212
249
213
//assume the navSubItem does not exist.
250
- var navSubItem = new oNavSubItem ( navSubItemName ) ;
214
+ var navSubItem = new of . oNavSubItem ( navSubItemName ) ;
251
215
navSubItem . patternPath = pattern . patternLink ;
252
216
navSubItem . patternPartial = bucketName + "-" + pattern . patternName ; //add the hyphenated name
253
217
@@ -271,7 +235,7 @@ var plnode = function(grunt){
271
235
var navItemIndex = bucket . navItemsIndex . indexOf ( navItemName ) ;
272
236
if ( navItemIndex === - 1 ) {
273
237
274
- var navItem = new oNavItem ( navItemName ) ;
238
+ var navItem = new of . oNavItem ( navItemName ) ;
275
239
276
240
//add the navItem and navSubItem
277
241
navItem . navSubItems . push ( navSubItem ) ;
@@ -344,6 +308,12 @@ var plnode = function(grunt){
344
308
} ,
345
309
build : function ( ) {
346
310
build ( ) ;
311
+ } ,
312
+ help : function ( ) {
313
+ help ( ) ;
314
+ } ,
315
+ build_patterns_only : function ( ) {
316
+ grunt . log . ok ( 'only_patterns argument not yet implemented' ) ;
347
317
}
348
318
} ;
349
319
@@ -352,14 +322,28 @@ var plnode = function(grunt){
352
322
module . exports = plnode ;
353
323
354
324
module . exports = function ( grunt ) {
355
- grunt . registerTask ( 'patternlab' , 'create design systems with atomic design' , function ( v ) {
325
+ grunt . registerTask ( 'patternlab' , 'create design systems with atomic design' , function ( arg ) {
356
326
357
327
var pl = plnode ( grunt ) ;
358
328
359
- if ( v && v === 'v' ) {
360
- pl . version ( ) ;
361
- } else {
329
+ if ( arguments . length === 0 ) {
362
330
pl . build ( ) ;
331
+ }
332
+
333
+ if ( arg && arg === 'v' ) {
334
+ pl . version ( ) ;
335
+ }
336
+
337
+ if ( arg && arg === "only_patterns" ) {
338
+ pl . build_patterns_only ( ) ;
339
+ }
340
+
341
+ if ( arg && arg === "help" ) {
342
+ pl . help ( ) ;
343
+ }
344
+
345
+ if ( arg && ( arg !== "v" && arg !== "only_patterns" ) ) {
346
+ pl . help ( ) ;
363
347
}
364
348
365
349
} ) ;
0 commit comments