js2 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/lib/js2/fs.rb +2 -4
  2. data/lib/js2/js2.js +20 -11
  3. metadata +1 -1
data/lib/js2/fs.rb CHANGED
@@ -9,7 +9,6 @@ class JS2::FS
9
9
  return Dir["#{lookup}/*.#{ext}"].collect { |f| File.expand_path(f) }.reject { |f| f.match(/^\./) }
10
10
  end
11
11
 
12
-
13
12
  def expandPath(file)
14
13
  return File.expand_path(file)
15
14
  end
@@ -27,9 +26,8 @@ class JS2::FS
27
26
  end
28
27
 
29
28
 
30
- def mkdir(file)
31
- dir = File.dirname(file)
32
- FileUtils.mkdir(dir) unless File.directory?(dir)
29
+ def mkdir(dir)
30
+ FileUtils.mkdir(dir) unless File.exists?(dir)
33
31
  end
34
32
 
35
33
  def isFile(dir)
data/lib/js2/js2.js CHANGED
@@ -1107,7 +1107,7 @@ JS2.Class.extend('Updater', {
1107
1107
 
1108
1108
 
1109
1109
  JS2.Class.extend('Config', {
1110
- "CLI_REGEX":/^-(r|i|f)(:?=(\w+))$/,
1110
+ "CLI_REGEX":/^-(r|i|f)(=(\w+))$/,
1111
1111
  "optsLookup":{
1112
1112
  'n': 'non-recursive',
1113
1113
  'i': 'interval',
@@ -1133,7 +1133,7 @@ JS2.Class.extend('Config', {
1133
1133
  var opt = argv.shift();
1134
1134
  var m = opt.match(this.CLI_REGEX);
1135
1135
  if (m) {
1136
- this[this.optsLookup[m[0]]] = m[1] || true;
1136
+ this[this.optsLookup[m[1]]] = m[3] || true;
1137
1137
  } else if (! this.command) {
1138
1138
  this.command = opt;
1139
1139
  } else {
@@ -1142,21 +1142,22 @@ JS2.Class.extend('Config', {
1142
1142
  }
1143
1143
  }
1144
1144
 
1145
+ this.recursive = !this['non-recursive'];
1145
1146
  this.interval = parseInt(this.interval);
1146
-
1147
1147
  },
1148
1148
 
1149
1149
  loadConfigFile:function (file) {
1150
1150
  if (this.fs.isFile(file)) {
1151
1151
  try {
1152
- var config = JSON.parse(this.fs.read(file).replace(/\n/g, ''));
1152
+ var config = JSON.parse(this.fs.read(file).replace(/\n\r?/g, ''));
1153
1153
 
1154
- this.format = config.format || this.format;
1155
- this.recursive = config['non-recursive'] ? false : this.recursive;
1154
+ this.format = config.format || this.format;
1156
1155
  this.interval = config['interval'] ? config['interval'] : this.interval;
1157
1156
  this.sourceDir = config['source-dir'] || this.sourceDir;
1158
1157
  this.outDir = config['out-dir'] || this.outDir;
1159
1158
 
1159
+ this['non-recursive'] = config['non-recursive'];
1160
+
1160
1161
  return true;
1161
1162
  } catch(e) {
1162
1163
  console.log(e.toString());
@@ -1193,6 +1194,12 @@ JS2.Class.extend('Commander', {
1193
1194
  this.fs = JS2.fs;
1194
1195
  this.config = new JS2.Config(this.fs, argv);
1195
1196
  this.command = this.config.command;
1197
+
1198
+ switch(this.config.format) {
1199
+ case 'ringo': JS2.DECORATOR = new JS2.RingoDecorator(); break;
1200
+ case 'node': JS2.DECORATOR = new JS2.NodeDecorator(); break;
1201
+ default: JS2.DECORATOR = new JS2.BrowserDecorator(); break;
1202
+ }
1196
1203
  },
1197
1204
 
1198
1205
  cli:function () {
@@ -1221,7 +1228,7 @@ JS2.Class.extend('Commander', {
1221
1228
  },
1222
1229
 
1223
1230
  getUpdater:function () {
1224
- var inDir = this.config.args[0] || this.config.inDir || '.';
1231
+ var inDir = this.config.args[0] || this.config.sourceDir || '.';
1225
1232
  var outDir = this.config.args[1] || this.config.outDir || inDir;
1226
1233
  return new JS2.Updater(this.fs, inDir, outDir, this.config.recursive);
1227
1234
  },
@@ -1245,7 +1252,7 @@ JS2.Class.extend('Commander', {
1245
1252
 
1246
1253
 
1247
1254
 
1248
- JS2.Class.extend('Decorator.Browser', {
1255
+ JS2.Class.extend('BrowserDecorator', {
1249
1256
  file:function (code) {
1250
1257
  return code;
1251
1258
  },
@@ -1255,7 +1262,7 @@ JS2.Class.extend('Decorator.Browser', {
1255
1262
  }
1256
1263
  });
1257
1264
 
1258
- JS2.Class.extend('Decorator.Node', {
1265
+ JS2.Class.extend('NodeDecorator', {
1259
1266
  file:function (code) {
1260
1267
  return "var js2 = require('js2').js2;\nvar JS2 = js2;\n" + code;
1261
1268
  },
@@ -1265,7 +1272,7 @@ JS2.Class.extend('Decorator.Node', {
1265
1272
  }
1266
1273
  });
1267
1274
 
1268
- JS2.Class.extend('Decorator.Ringo', {
1275
+ JS2.Class.extend('RingoDecorator', {
1269
1276
  file:function (code) {
1270
1277
  return "var js2 = require('js2').js2;\nvar JS2 = js2;\n" + code;
1271
1278
  },
@@ -1275,10 +1282,12 @@ JS2.Class.extend('Decorator.Ringo', {
1275
1282
  }
1276
1283
  });
1277
1284
 
1285
+ JS2.DECORATOR = JS2.DECORATOR || new JS2.BrowserDecorator();
1286
+
1278
1287
 
1279
1288
 
1280
1289
  JS2.fs = new JS2.FileSystem(JS2_RUBY_FILE_ADAPTER);
1281
- js2.DECORATOR = new JS2.Decorator.Browser();
1290
+ js2.DECORATOR = new JS2.BrowserDecorator();
1282
1291
  js2.ROOT = root;
1283
1292
 
1284
1293
  return JS2;
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: js2
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.1
5
+ version: 0.3.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jeff Su