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

Software has been updated! A blog — creatively named the Work Log — has been added, as well as a gallery.

  • The Work Log will feature updates to this site and my projects, as well as more general notes about programming, design, and related topics.
  • The Gallery contains samples of my work.

Thank you for visiting and reading our inaugural post. (Ed.: a few posts have been back-dated but this is the first one, I swear.)