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


Say "hello" to heretag, a heredoc implementation for JS using template literals. I wrote heretag a few years ago but had't updated it in awhile, so it's my first time writing about it here.

For more information see the README.


Updated heretag to v1.1.7. This update is mostly maintenance work, but brings other changes and improvements.


  • Renamed from hedo to heretag (it sounds better)
  • Updated dependencies
  • Improved performance
  • Improved packaging