down. translated.

@spec.get_opts.each do |name, opt| options[name] = opt.value counts[name] = opt.count end @spec.get_args.each do |name, arg| args << arg.value named[name] = arg.value end args.flatten! args += trailing @report =, named, trailing, options, counts) if @report.opt(:help) self.print_usage() end unless @spec.get_args.values.all? {|arg| arg.fulfilled? } raise InterfaceError, "Required argument '#{name.upcase}' was not given." end if @spec.trailing_error && !@report.trailing.empty? raise InterfaceError, "Error: got trailing argument(s): #{trailing.join


I've created and published ๐Ÿ”จ mkv v0.2.0, a small versioning tool I use in my own projects. It may not be of much use to others, but who knows. It's available on npm as @0e9b061f/mkv, published as a scoped package because mkv is taken and this is mostly for my own use. Previously mkv was a script I'd copy-pasted between a few projects. I created this package mostly to make that more maintainable.

mkv updates the version number in package.json, replaces the first line of README with a configurable line which includes the new version number, and selects a series name from series.json, if present. series.json should be an array of strings. The series name changes whenever the major or minor version changes. Selecting the series name relies on version tags in the git repo. They should be formatted like v0.1.0. The "v" is important.

For more information about mkv, see the README.

Related Updates

I've also updated fantasma.js, waxwing.js, ghast.js, heretag and scroll to use the new @0e9b061f/mkv package.