Exemple #1
0
    .then(function(lines) {
        var build = this
          , addonVersion = build.version.split('.').join(', ')
          , blenderVersion = build.blender.version.split('.').join(', ')
        ;

        var pre = _.takeWhile(
            lines
          , function(line) {
                return /^bl_info = {$/.test(line) === false;
            }
        );

        var post = _.drop(_.dropWhile(
            _.drop(lines, pre.length)
          , function(line) {
                return /^}$/.test(line) === false;
            }
        ), 1);

        return pre
            .concat([
                "bl_info = {"
              , [ '    "name":'     + '"' + build.blender.name     + '"'
                , '    "author":'   + '"' + build.blender.author   + '"'
                , '    "version":'  + '(' + addonVersion           + ')'
                , '    "blender":'  + '(' + blenderVersion         + ')'
                , '    "category":' + '"' + build.blender.category + '"'
                ].join(',\n')
              , "}"
            ])
            .concat(post)
        ;
    })
	static parseCriterion(input: *) {
		let age = parseInt(input, 10);
		if (isNaN(age)) throw new Error('Invalid age');

		const ageQualifier = _.head(input.match(/Y|M|d|h|m|s/)) || 's';
		age = _.dropWhile(qualifiers, ([qualifier]) => qualifier !== ageQualifier)
			.reduce((a, [, multiplier]) => a * multiplier, age);

		return { op: '<=', age };
	}
Exemple #3
0
export default function evaluate({ getter, data }) {
	if (_.every(getter, val => typeof val === 'string')) {
		return data.getIn(getter)
	}
	else {
		const getters = _.takeWhile(getter, val => _.isArray(val))
		const coalescer = _.dropWhile(getter, val => _.isArray(val))[0]
		const values = getters.map(g => evaluate({
			data,
			getter: g,
		}))

		return coalescer.apply(null, values)
	}
}
Exemple #4
0
    add: function(history, task) {

        var src = history[0];
        var dist = history[history.length - 1];

        src = _.split(src, this.getSeparator(src));
        src = _.dropWhile(src, function(o) { return !(o === 'src'); });
        // drop src category from name of route
        src = _.drop(src);
        src = _.join(src, '/');

        dist = _.split(dist, this.getSeparator(dist));
        dist = _.dropWhile(dist, function(o) { return !(o === 'public'); });
        dist = _.join(dist, '/');

        // todo: for production need another way to give dist
        if (task && task in config.tasks && history[history.length - 1].indexOf(config.tasks[task].publicPath) !== -1) {
            dist = history[history.length - 1];
        }

        if (src && dist) {
            this.map[src] = dist;
        }
    },
Exemple #5
0
// where's span when I need it!
function readUnread(chapters:Array<ChapterAndRead>) {
  var last = lastReadChapter(chapters)

  if (!last) {
    return {read: [], unread: chapters}
  }

  var read = takeWhile(chapters, function(c) {
    return c != last
  }).concat([last])

  var unread = tail(dropWhile(chapters, function(c) {
    return c != last
  }))

  return {read, unread}
}
Exemple #6
0
function parseSection(section){
    // Bűbájos bajok (Terry Pratchett)
    //- Highlight on Page 13 | Loc. 186-1  | Added on Monday, 21 April 14 17:34:53 GMT+02:01
    var lines = section.trim().split(KIDNEL_NEWLINE),
        metaData = lines[1].match(METADATA_PARSER),
        page = metaData[2],
        location = metaData[3],
        locationStart = location ? location.split('-')[0] : undefined,
        time = new Date(metaData[4]);

    return {
        title: lines[0],
        type: metaData[1],
        page: page,
        location: location,
        time: time,
        order: parseInt(_.dropWhile([page, locationStart, time.getTime()], isNaN)[0], 10),
        content: lines.splice(2).join('\n').trim()
    }
}
Exemple #7
0
exports.create = function(comment, tag)
{
	/** @var {Array.<exports.Line>} */
	var lines = _.dropWhile(comment.getLines(), function(/** exports.Line **/line)
	{
		return !_.startsWith(line.getText().toLowerCase(), '@' + tag);
	});

	if(lines.length === 0)
	{
		return [];
	}

	/** @var {Array.<exports.Line>} */
	var body = _.takeWhile(_.rest(lines), function(/** exports.Line **/line)
	{
		return !_.startsWith(line.getText(), '@');
	});

	var name = exports.getName(lines[0]);
	var title = exports.getTitle(lines[0]);

	return [new exports.Tag(comment.getFile(), name, title, lines[0].getNum(), body)];
};
 module.exports = function dropWhile(array, predicate, thisArg) {
     assertArgument(array = toArray(array), 1, 'Arrayable');
     assertArgument(isPredicate(predicate), 2, 'Function | Object | string');
     return _.dropWhile(array, predicate, thisArg);
 };
Exemple #9
0
  uriToPath (uri) {
    let filePath = decodeURI(url.parse(uri).pathname || '')

    if (process.platform === 'win32') {
      filePath = filePath.replace(/\//g, '\\').replace(/^(.+)\|/, '$1:').replace(/\\([A-Z]:\\)/, '$1')
    } else if (!filePath.startsWith('/')) {
      filePath = `/${filePath}`
    }

    return filePath
  },

  heredoc (input) {
    if (input === null) { return null }

    const lines = _.dropWhile(input.split(/\r\n|\n|\r/), line => line.length === 0)
    const indentLength = _.takeWhile(lines[0], char => char === ' ').length
    const truncatedLines = lines.map(line => line.slice(indentLength))

    return truncatedLines.join('\n')
  },

  promisify (target) {
    return (...args) => {
      return new Promise((resolve, reject) => {
        target(...args, (error, data) => { error ? reject(error) : resolve(data) })
      })
    }
  },

  getEditorDetails () {
		],
		evaluate(thing, data) {
			const postTime = thing.getTimestamp();
			if (!postTime) return false;

			const now = new Date();
			return numericalCompare(data.op, now - postTime, data.age);
		},
		pattern: 'x[(Y|M|d|h|m)] — where x is the number of seconds or Y year, M month, h hour, m minute (case sensitive)',
		qualifiers: [['Y', 12], ['M', 30.44], ['d', 24], ['h', 60], ['m', 60], ['s', 1000]],
		parse(input) {
			let age = parseFloat(input, 10);
			if (isNaN(age)) return null;

			const ageQualifier = _.head(input.match(/Y|M|d|h|m|s/)) || 's';
			age = _.dropWhile(this.qualifiers, ([qualifier]): * => qualifier !== ageQualifier)
				.reduce((a, [, multiplier]) => a * multiplier, age);

			return this.defaultTemplate('<=', age);
		},
		fromSelected(thing) {
			let remainder = (new Date() - new Date(thing.getTimestamp()));
			if (isNaN(remainder)) return null;

			let remainderQualifier = '';
			for (const [qualifier, multiplier] of this.qualifiers.slice().reverse()) {
				if (remainder < multiplier) return remainder.toFixed(2) + remainderQualifier;
				remainder /= multiplier;
				remainderQualifier = qualifier;
			}
		},
var referenceBranch = "origin/master";

var restartWithFramework = args.restartWith || '';

var core = ["webdriver-ts", "webdriver-ts-results"].map(f => ["", f]);

var frameworks = [].concat(
  fs.readdirSync('./frameworks/keyed').map(f => ['frameworks/keyed/', f]),
  fs.readdirSync('./frameworks/non-keyed').map(f => ['frameworks/non-keyed/', f]));

var notRestarter = ([_, name]) => !name.startsWith(restartWithFramework || undefined);
var [skippable, buildable] = !restartWithFramework
    ? [[],
       frameworks]
    : [_.takeWhile(frameworks, notRestarter),
       _.dropWhile(frameworks, notRestarter)];

var relevant = args.skipIrrelevant && !_.some(core, isDifferent)
    ? _.filter(buildable, isDifferent)
    : buildable;

_.each(skippable, ([dir,name]) => console.log("*** Skipping " + dir + name));

_.each([].concat(relevant, core), function([dir,name]) {
        let fullname = dir + name;
	if(fs.statSync(fullname).isDirectory() && fs.existsSync(path.join(fullname, "package.json"))) {
          console.log("*** Executing npm install in "+fullname);
            exec('npm install', {
				cwd: fullname,
				stdio: 'inherit'
			});