Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

code_rippa

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

code_rippa - rubygems Package Compare versions

Comparing version
0.0.5
to
0.0.6
+4
.travis.yml
language: ruby
rvm:
- 1.9.2
- 1.9.3

Sorry, the diff of this file is not supported yet

require 'uv'
require 'find'
require 'code_rippa/uv_overrides'
require 'code_rippa/version'
require 'ansi/progressbar'
require 'rainbow'
include ANSI
YAML::ENGINE.yamler = 'syck'
module CodeRippa
@@supported_syntax = nil
@@supported_ext = nil
# Parses the given directory, and writes the output file (out.tex)
# into the current directory.
#
# dir_path - The directory path
# syntax - The syntax to perform parsing/syntax highlighting.
# Note the the syntax should be supported by code_rippa.
# excluded_exts - An Array of extensions to ignore during parsing.
#
# Examples
#
# rip_dir("~/code/ruby/some_folder", "space_cadet", "ruby", [])
#
# Returns nothing.
def self.rip_dir(dir_path, theme, syntax, excluded_exts = [])
pbar = Progressbar.new("Rippin'".color(:blue), Dir["**/*"].length)
counter = 0
outfile = File.open('out.tex', 'w')
outfile.write preamble theme
Find.find dir_path do |path|
depth = path.to_s.count('/')
if File.basename(path)[0] == ?. or File.basename(path) == "out.tex"
Find.prune
else
begin
is_rippable = rippable?(path, syntax, excluded_exts)
if is_rippable
outfile.write "\\textcolor{white}{\\textbf{\\texttt{#{path.gsub('_','\_').gsub('%','\%')}}}}\\\\\n"
outfile.write "\\textcolor{white}{\\rule{\\linewidth}{1.0mm}}\\\\\n"
end
if bookmarkable?(path, syntax, excluded_exts)
outfile.write "\\pdfbookmark[#{depth-2}]{#{File.basename(path).gsub('_','\_').gsub('%','\%')}}{#{counter}}\n"
end
if is_rippable
outfile.write Uv.parse(File.read(path), 'latex', syntax, true, theme)
outfile.write "\\clearpage\n"
end
rescue Exception => e
puts e
end
counter += 1
end
pbar.inc
end
outfile.write endtag
pbar.finish
msg = "Completed successfully.\n".color(:green)
msg << "Output file written to: "
msg << "#{File.expand_path(outfile)}\n".color(:yellow)
msg << "Now run "
msg << "pdflatex #{File.expand_path(outfile)} ".color(:red)
msg << "** TWICE ** to generate PDF."
puts msg
outfile.close
end
private
# Returns True if path should be ripped as part of the output TEX file.
#
# path - The file. (directories will return false.)
# syntax - The syntax to perform parsing/syntax highlighting.
# Note the the syntax should be supported by code_rippa.
# excluded_exts - An Array of extensions to ignore during parsing.
#
#
# Examples
#
# rippable?("hello.rb", "ruby", [])
# # => true
#
# rippable?("~/code/", "ruby", [])
# # => false
#
# rippable?("hello.rb", "ruby", ["rb", "html"])
# # => false
#
# rippable?("hello.klingon", "klingon", [])
# # => false
#
# Returns true if path should be ripped.
def self.rippable?(path, syntax, excluded_exts)
if FileTest.directory?(path)
false
else
src_ext = File.extname(path)[1..-1]
if excluded_exts.include? src_ext
false
elsif supported_exts.include?(src_ext)
true
else
false
end
end
end
def self.heading_color(theme)
f = YAML.load(File.read("#{Uv.render_path}/latex/#{theme}.render"))
/([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/.match(f['listing']['begin'].split('\\')[2]).to_s
end
end

Sorry, the diff of this file is not supported yet

\documentclass[a4paper,landscape]{article}
\pagestyle{empty}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{longtable}
\usepackage[left=0cm,top=0.2cm,right=0cm,bottom=0.2cm,nohead,nofoot]{geometry}
\usepackage[T1]{fontenc}
\usepackage[scaled]{beramono}
\usepackage[bookmarksopen,bookmarksdepth=20]{hyperref}
\definecolor{pgcolor}{HTML}{090A1B}
\definecolor{headingcolor}{HTML}{F8F8F8}
\pagecolor{pgcolor}
\begin{document}
\setlength\LTleft\parindent
\setlength\LTright\fill
\setlength{\LTpre}{-10pt}
\pdfbookmark[6]{ruby\_proj}{0}
\pdfbookmark[7]{folder\_1}{1}
\textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/1.rb}}}\\
\textcolor{white}{\rule{\linewidth}{1.0mm}}\\
\pdfbookmark[8]{1.rb}{2}
\newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
\newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
\begin{longtable}{NC}
\texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}first}}}\\
\texttt{ 2 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}first\hspace{1ex}file\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
\end{longtable}
\clearpage
\textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/2.rb}}}\\
\textcolor{white}{\rule{\linewidth}{1.0mm}}\\
\pdfbookmark[8]{2.rb}{3}
\newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
\newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
\begin{longtable}{NC}
\texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}second}}}\\
\texttt{ 2 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}[{\color[HTML]{0A9CFF}1},{\color[HTML]{0A9CFF}2},{\color[HTML]{0A9CFF}3},{\color[HTML]{0A9CFF}4},{\color[HTML]{0A9CFF}5},{\color[HTML]{0A9CFF}6}].{\color[HTML]{6FD3FF}each}\hspace{1ex}{\color[HTML]{FF3854}do\hspace{1ex}}|{\color[HTML]{588AFF}i}|}}\\
\texttt{ 3 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}\hspace{1ex}\hspace{1ex}puts\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}i{\color[HTML]{D972DE}\}}}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 4 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 5 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
\end{longtable}
\clearpage
\textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/3.rb}}}\\
\textcolor{white}{\rule{\linewidth}{1.0mm}}\\
\pdfbookmark[8]{3.rb}{4}
\newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
\newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
\begin{longtable}{NC}
\texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}third}}}\\
\texttt{ 2 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}Polly\hspace{1ex}put\hspace{1ex}the\hspace{1ex}kettle\hspace{1ex}on\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
\end{longtable}
\clearpage
\pdfbookmark[8]{folder\_2}{5}
\textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/folder\_2/4.rb}}}\\
\textcolor{white}{\rule{\linewidth}{1.0mm}}\\
\pdfbookmark[9]{4.rb}{6}
\newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
\newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
\begin{longtable}{NC}
\texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}fourth}}}\\
\texttt{ 2 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}Nothing\hspace{1ex}interesting\hspace{1ex}here\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
\end{longtable}
\clearpage
\textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/folder\_2/5.rb}}}\\
\textcolor{white}{\rule{\linewidth}{1.0mm}}\\
\pdfbookmark[9]{5.rb}{7}
\newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
\newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
\begin{longtable}{NC}
\texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}fifth}}}\\
\texttt{ 2 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}yee-har\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
\end{longtable}
\clearpage
\end{document}
\documentclass[a4paper,landscape]{article}
\pagestyle{empty}
\usepackage{xcolor}
\usepackage{colortbl}
\usepackage{longtable}
\usepackage[left=0cm,top=0.2cm,right=0cm,bottom=0.2cm,nohead,nofoot]{geometry}
\usepackage[T1]{fontenc}
\usepackage[scaled]{beramono}
\usepackage[bookmarksopen,bookmarksdepth=20]{hyperref}
\definecolor{pgcolor}{HTML}{090A1B}
\definecolor{headingcolor}{HTML}{F8F8F8}
\pagecolor{pgcolor}
\begin{document}
\setlength\LTleft\parindent
\setlength\LTright\fill
\setlength{\LTpre}{-10pt}
\textcolor{headingcolor}{\textbf{\texttt{test/fixtures/hello.rb}}}\\
\textcolor{headingcolor}{\rule{\linewidth}{1.0mm}}\\
\newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
\newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
\begin{longtable}{NC}
\texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}require}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}uv\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}}}\\
\texttt{ 2 }&\mbox{\texttt{ {\color[HTML]{FF3854}require}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}find\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}}}\\
\texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}require}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}code\_rippa/uv\_overrides\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}}}\\
\texttt{ 4 }&\mbox{\texttt{ {\color[HTML]{FF3854}require}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}code\_rippa/version\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}}}\\
\texttt{ 5 }&\mbox{\texttt{ {\color[HTML]{FF3854}require}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}ansi/progressbar\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}}}\\
\texttt{ 6 }&\mbox{\texttt{ {\color[HTML]{FF3854}require}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}rainbow\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}}}\\
\texttt{ 7 }&\mbox{\texttt{ {\color[HTML]{FF3854}include}\hspace{1ex}{\color[HTML]{588AFF}ANSI}}}\\
\texttt{ 8 }&\mbox{\texttt{ }}\\
\texttt{ 9 }&\mbox{\texttt{ }}\\
\texttt{ 10 }&\mbox{\texttt{ {\color[HTML]{588AFF}YAML}::{\color[HTML]{6FD3FF}ENGINE}.{\color[HTML]{6FD3FF}yamler}\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}syck\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}}}\\
\texttt{ 11 }&\mbox{\texttt{ }}\\
\texttt{ 12 }&\mbox{\texttt{ {\color[HTML]{FF3854}module}\hspace{1ex}{\underline{CodeRippa}}}}\\
\texttt{ 13 }&\mbox{\texttt{ \hspace{3ex}}}\\
\texttt{ 14 }&\mbox{\texttt{ \hspace{3ex}{\color[HTML]{588AFF}{\color[HTML]{588AFF}@@}supported\_syntax}\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{0A9CFF}nil}}}\\
\texttt{ 15 }&\mbox{\texttt{ \hspace{3ex}{\color[HTML]{588AFF}{\color[HTML]{588AFF}@@}supported\_ext}\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{0A9CFF}nil}}}\\
\texttt{ 16 }&\mbox{\texttt{ }}\\
\texttt{ 17 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}Parses\hspace{1ex}the\hspace{1ex}given\hspace{1ex}directory,\hspace{1ex}and\hspace{1ex}writes\hspace{1ex}the\hspace{1ex}output\hspace{1ex}file\hspace{1ex}(out.tex)}}}}\\
\texttt{ 18 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}into\hspace{1ex}the\hspace{1ex}current\hspace{1ex}directory.}}}}\\
\texttt{ 19 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}}}}}\\
\texttt{ 20 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}dir\_path\hspace{3ex}\hspace{3ex}\hspace{3ex}-\hspace{1ex}The\hspace{1ex}directory\hspace{1ex}path}}}}\\
\texttt{ 21 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}syntax\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}-\hspace{1ex}The\hspace{1ex}syntax\hspace{1ex}to\hspace{1ex}perform\hspace{1ex}parsing/syntax\hspace{1ex}highlighting.\hspace{1ex}}}}}\\
\texttt{ 22 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}Note\hspace{1ex}the\hspace{1ex}the\hspace{1ex}syntax\hspace{1ex}should\hspace{1ex}be\hspace{1ex}supported\hspace{1ex}by\hspace{1ex}code\_rippa.}}}}\\
\texttt{ 23 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}excluded\_exts\hspace{1ex}-\hspace{1ex}An\hspace{1ex}Array\hspace{1ex}of\hspace{1ex}extensions\hspace{1ex}to\hspace{1ex}ignore\hspace{1ex}during\hspace{1ex}parsing.\hspace{1ex}}}}}\\
\texttt{ 24 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}}}}}\\
\texttt{ 25 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}Examples}}}}\\
\texttt{ 26 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 27 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}rip\_dir(''\textasciitilde\hspace{1ex}/code/ruby/some\_folder'',\hspace{1ex}''space\_cadet'',\hspace{1ex}''ruby'',\hspace{1ex}[])}}}}\\
\texttt{ 28 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 29 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}Returns\hspace{1ex}nothing.}}}}\\
\texttt{ 30 }&\mbox{\texttt{ \hspace{3ex}{\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}self.rip\_dir}({\color[HTML]{588AFF}dir\_path{\color[HTML]{588AFF},}\hspace{1ex}theme{\color[HTML]{588AFF},}\hspace{1ex}syntax{\color[HTML]{588AFF},}\hspace{1ex}excluded\_exts\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{588AFF}[}{\color[HTML]{588AFF}]}})}}\\
\texttt{ 31 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}pbar\hspace{3ex}\hspace{3ex}\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{00FFBC}Progressbar}.{\color[HTML]{6FD3FF}new}(\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}Rippin'\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}.{\color[HTML]{6FD3FF}color}({\color[HTML]{0A9CFF}{\color[HTML]{0A9CFF}:}blue}),\hspace{1ex}{\color[HTML]{00FFBC}Dir}[\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}**/*\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}].{\color[HTML]{6FD3FF}length})}}\\
\texttt{ 32 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}counter\hspace{3ex}\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{0A9CFF}0}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}}}\\
\texttt{ 33 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}outfile\hspace{3ex}\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{00FFBC}File}.{\color[HTML]{6FD3FF}open}(\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}out.tex\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}},\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}w\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}})\hspace{1ex}}}\\
\texttt{ 34 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
\texttt{ 35 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}preamble\hspace{1ex}theme}}\\
\texttt{ 36 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{1ex}{\color[HTML]{00FFBC}Find}.{\color[HTML]{6FD3FF}find}\hspace{1ex}dir\_path\hspace{1ex}{\color[HTML]{FF3854}do\hspace{1ex}}|{\color[HTML]{588AFF}path}|}}\\
\texttt{ 37 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}depth\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}path.{\color[HTML]{6FD3FF}to\_s}.{\color[HTML]{6FD3FF}count}(\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}/\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}})}}\\
\texttt{ 38 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}{\color[HTML]{00FFBC}File}.{\color[HTML]{6FD3FF}basename}(path)[{\color[HTML]{0A9CFF}0}]\hspace{1ex}{\color[HTML]{FF3854}==}\hspace{1ex}{\color[HTML]{0A9CFF}?.}\hspace{1ex}{\color[HTML]{FF3854}or}\hspace{1ex}{\color[HTML]{00FFBC}File}.{\color[HTML]{6FD3FF}basename}(path)\hspace{1ex}{\color[HTML]{FF3854}==}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}out.tex\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 39 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{00FFBC}Find}.{\color[HTML]{6FD3FF}prune}}}\\
\texttt{ 40 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}else}}}\\
\texttt{ 41 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}begin}}}\\
\texttt{ 42 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}is\_rippable\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{6FD3FF}rippable?}(path,\hspace{1ex}syntax,\hspace{1ex}excluded\_exts)}}\\
\texttt{ 43 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}is\_rippable}}\\
\texttt{ 44 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}{\color[HTML]{D972DE}$\backslash$$\backslash$}textcolor\{white\}\{{\color[HTML]{D972DE}$\backslash$$\backslash$}textbf\{{\color[HTML]{D972DE}$\backslash$$\backslash$}texttt\{{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}path{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}gsub}}{\color[HTML]{D972DE}(}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}\_\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE},}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}$\backslash$\_\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE})}{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}gsub}}{\color[HTML]{D972DE}(}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}\%\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE},}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}$\backslash$\%\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE})}{\color[HTML]{D972DE}\}}}\}\}\}{\color[HTML]{D972DE}$\backslash$$\backslash$}{\color[HTML]{D972DE}$\backslash$$\backslash$}{\color[HTML]{D972DE}$\backslash$n}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 45 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}{\color[HTML]{D972DE}$\backslash$$\backslash$}textcolor\{white\}\{{\color[HTML]{D972DE}$\backslash$$\backslash$}rule\{{\color[HTML]{D972DE}$\backslash$$\backslash$}linewidth\}\{1.0mm\}\}{\color[HTML]{D972DE}$\backslash$$\backslash$}{\color[HTML]{D972DE}$\backslash$$\backslash$}{\color[HTML]{D972DE}$\backslash$n}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 46 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 47 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}}}\\
\texttt{ 48 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}{\color[HTML]{6FD3FF}bookmarkable?}(path,\hspace{1ex}syntax,\hspace{1ex}excluded\_exts)\hspace{3ex}\hspace{3ex}}}\\
\texttt{ 49 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}{\color[HTML]{D972DE}$\backslash$$\backslash$}pdfbookmark[{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}depth{\color[HTML]{FF3854}-}{\color[HTML]{D972DE}2}{\color[HTML]{D972DE}\}}}]\{{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}{\color[HTML]{00FFBC}File}{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}basename}}{\color[HTML]{D972DE}(}path{\color[HTML]{D972DE})}{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}gsub}}{\color[HTML]{D972DE}(}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}\_\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE},}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}$\backslash$\_\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE})}{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}gsub}}{\color[HTML]{D972DE}(}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}\%\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE},}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}$\backslash$\%\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}{\color[HTML]{D972DE})}{\color[HTML]{D972DE}\}}}\}\{{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}counter{\color[HTML]{D972DE}\}}}\}{\color[HTML]{D972DE}$\backslash$n}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 50 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 51 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}}}\\
\texttt{ 52 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}is\_rippable}}\\
\texttt{ 53 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}{\color[HTML]{00FFBC}Uv}.{\color[HTML]{6FD3FF}parse}({\color[HTML]{00FFBC}File}.{\color[HTML]{6FD3FF}read}(path),\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}latex\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}},\hspace{1ex}syntax,\hspace{1ex}{\color[HTML]{0A9CFF}true},\hspace{1ex}theme)\hspace{1ex}}}\\
\texttt{ 54 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}{\color[HTML]{D972DE}$\backslash$$\backslash$}clearpage{\color[HTML]{D972DE}$\backslash$n}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 55 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 56 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}rescue}\hspace{1ex}{\color[HTML]{588AFF}Exception}\hspace{1ex}=>\hspace{1ex}e}}\\
\texttt{ 57 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}puts\hspace{1ex}e}}\\
\texttt{ 58 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 59 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}counter\hspace{1ex}{\color[HTML]{FF3854}+=}\hspace{1ex}{\color[HTML]{0A9CFF}1}}}\\
\texttt{ 60 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 61 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}pbar.{\color[HTML]{6FD3FF}inc}}}\\
\texttt{ 62 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 63 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
\texttt{ 64 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}endtag}}\\
\texttt{ 65 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}pbar.{\color[HTML]{6FD3FF}finish}}}\\
\texttt{ 66 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
\texttt{ 67 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}msg\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{3ex}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}Completed\hspace{1ex}successfully.{\color[HTML]{D972DE}$\backslash$n}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}.{\color[HTML]{6FD3FF}color}({\color[HTML]{0A9CFF}{\color[HTML]{0A9CFF}:}green})}}\\
\texttt{ 68 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}msg\hspace{1ex}{\color[HTML]{FF3854}<<}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}Output\hspace{1ex}file\hspace{1ex}written\hspace{1ex}to:\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 69 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}msg\hspace{1ex}{\color[HTML]{FF3854}<<}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}{\color[HTML]{00FFBC}File}{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}expand\_path}}{\color[HTML]{D972DE}(}outfile{\color[HTML]{D972DE})}{\color[HTML]{D972DE}\}}}{\color[HTML]{D972DE}$\backslash$n}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}.{\color[HTML]{6FD3FF}color}({\color[HTML]{0A9CFF}{\color[HTML]{0A9CFF}:}yellow})}}\\
\texttt{ 70 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}msg\hspace{1ex}{\color[HTML]{FF3854}<<}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}Now\hspace{1ex}run\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 71 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}msg\hspace{1ex}{\color[HTML]{FF3854}<<}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}pdflatex\hspace{1ex}{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}{\color[HTML]{00FFBC}File}{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}expand\_path}}{\color[HTML]{D972DE}(}outfile{\color[HTML]{D972DE})}{\color[HTML]{D972DE}\}}}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}.{\color[HTML]{6FD3FF}color}({\color[HTML]{0A9CFF}{\color[HTML]{0A9CFF}:}red})}}\\
\texttt{ 72 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}msg\hspace{1ex}{\color[HTML]{FF3854}<<}\hspace{1ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}**\hspace{1ex}TWICE\hspace{1ex}**\hspace{1ex}to\hspace{1ex}generate\hspace{1ex}PDF.\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}}}\\
\texttt{ 73 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}puts\hspace{1ex}msg}}\\
\texttt{ 74 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
\texttt{ 75 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}close}}}\\
\texttt{ 76 }&\mbox{\texttt{ \hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 77 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}}}\\
\texttt{ 78 }&\mbox{\texttt{ \hspace{3ex}{\color[HTML]{FF3854}private}\hspace{1ex}}}\\
\texttt{ 79 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
\texttt{ 80 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}Returns\hspace{1ex}True\hspace{1ex}if\hspace{1ex}path\hspace{1ex}should\hspace{1ex}be\hspace{1ex}ripped\hspace{1ex}as\hspace{1ex}part\hspace{1ex}of\hspace{1ex}the\hspace{1ex}output\hspace{1ex}TEX\hspace{1ex}file.\hspace{1ex}}}}}\\
\texttt{ 81 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 82 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}path\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}-\hspace{1ex}The\hspace{1ex}file.\hspace{1ex}(directories\hspace{1ex}will\hspace{1ex}return\hspace{1ex}false.)}}}}\\
\texttt{ 83 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}syntax\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}-\hspace{1ex}The\hspace{1ex}syntax\hspace{1ex}to\hspace{1ex}perform\hspace{1ex}parsing/syntax\hspace{1ex}highlighting.\hspace{1ex}}}}}\\
\texttt{ 84 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}Note\hspace{1ex}the\hspace{1ex}the\hspace{1ex}syntax\hspace{1ex}should\hspace{1ex}be\hspace{1ex}supported\hspace{1ex}by\hspace{1ex}code\_rippa.}}}}\\
\texttt{ 85 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}excluded\_exts\hspace{1ex}-\hspace{1ex}An\hspace{1ex}Array\hspace{1ex}of\hspace{1ex}extensions\hspace{1ex}to\hspace{1ex}ignore\hspace{1ex}during\hspace{1ex}parsing.}}}}\\
\texttt{ 86 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 87 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 88 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}Examples}}}}\\
\texttt{ 89 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 90 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}rippable?(''hello.rb'',\hspace{1ex}''ruby'',\hspace{1ex}[])\hspace{1ex}}}}}\\
\texttt{ 91 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}\#\hspace{1ex}=>\hspace{1ex}true\hspace{1ex}}}}}\\
\texttt{ 92 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 93 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}rippable?(''\textasciitilde\hspace{1ex}/code/'',\hspace{1ex}''ruby'',\hspace{1ex}[])\hspace{1ex}}}}}\\
\texttt{ 94 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}\#\hspace{1ex}=>\hspace{1ex}false}}}}\\
\texttt{ 95 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 96 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}rippable?(''hello.rb'',\hspace{1ex}''ruby'',\hspace{1ex}[''rb'',\hspace{1ex}''html''])\hspace{1ex}}}}}\\
\texttt{ 97 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}\#\hspace{1ex}=>\hspace{1ex}false}}}}\\
\texttt{ 98 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 99 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}rippable?(''hello.klingon'',\hspace{1ex}''klingon'',\hspace{1ex}[])\hspace{1ex}}}}}\\
\texttt{ 100 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{3ex}\hspace{3ex}\#\hspace{1ex}=>\hspace{1ex}false}}}}\\
\texttt{ 101 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}}}}}\\
\texttt{ 102 }&\mbox{\texttt{ \setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\hspace{3ex}\hspace{3ex}\setlength{\fboxsep}{0ex}\colorbox[HTML]{000000}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{C050C2}\textit{\#}}\hspace{1ex}Returns\hspace{1ex}true\hspace{1ex}if\hspace{1ex}path\hspace{1ex}should\hspace{1ex}be\hspace{1ex}ripped.}}}}\\
\texttt{ 103 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}self.rippable?}({\color[HTML]{588AFF}path{\color[HTML]{588AFF},}\hspace{1ex}syntax{\color[HTML]{588AFF},}\hspace{1ex}excluded\_exts})}}\\
\texttt{ 104 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}{\color[HTML]{00FFBC}FileTest}.{\color[HTML]{6FD3FF}directory?}(path)}}\\
\texttt{ 105 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}false}}}\\
\texttt{ 106 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}else}}}\\
\texttt{ 107 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}src\_ext\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{00FFBC}File}.{\color[HTML]{6FD3FF}extname}(path)[{\color[HTML]{0A9CFF}1}..{\color[HTML]{FF3854}-}{\color[HTML]{0A9CFF}1}]}}\\
\texttt{ 108 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}excluded\_exts.{\color[HTML]{6FD3FF}include?}\hspace{1ex}src\_ext}}\\
\texttt{ 109 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}false}}}\\
\texttt{ 110 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}elsif}\hspace{1ex}supported\_exts.{\color[HTML]{6FD3FF}include?}(src\_ext)}}\\
\texttt{ 111 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}true}}}\\
\texttt{ 112 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}else}}}\\
\texttt{ 113 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}false}}}\\
\texttt{ 114 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 115 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 116 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 117 }&\mbox{\texttt{ }}\\
\texttt{ 118 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}self.heading\_color}({\color[HTML]{588AFF}theme})}}\\
\texttt{ 119 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}f\hspace{1ex}{\color[HTML]{FF3854}=}\hspace{1ex}{\color[HTML]{588AFF}YAML}.{\color[HTML]{6FD3FF}load}({\color[HTML]{00FFBC}File}.{\color[HTML]{6FD3FF}read}(\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}{\color[HTML]{00FFBC}Uv}{\color[HTML]{D972DE}{\color[HTML]{D972DE}.}{\color[HTML]{6FD3FF}render\_path}}{\color[HTML]{D972DE}\}}}/latex/{\color[HTML]{D972DE}{\color[HTML]{D972DE}\#\{}theme{\color[HTML]{D972DE}\}}}.render\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}''}}))\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}}}\\
\texttt{ 120 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{E9C062}{\color[HTML]{E9C062}/}}{\color[HTML]{E9C062}{\color[HTML]{E9C062}{\color[HTML]{E9C062}(}{\color[HTML]{E9C062}{\color[HTML]{E9C062}[}A-Fa-f0-9{\color[HTML]{E9C062}]}}{\color[HTML]{CF7D34}{\color[HTML]{CF7D34}\{}6{\color[HTML]{CF7D34}\}}}|{\color[HTML]{E9C062}{\color[HTML]{E9C062}[}A-Fa-f0-9{\color[HTML]{E9C062}]}}{\color[HTML]{CF7D34}{\color[HTML]{CF7D34}\{}3{\color[HTML]{CF7D34}\}}}{\color[HTML]{E9C062})}}}{\color[HTML]{E9C062}{\color[HTML]{E9C062}/}}.{\color[HTML]{6FD3FF}match}(f[\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}listing\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}][\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}begin\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}}].{\color[HTML]{6FD3FF}split}(\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}{\color[HTML]{D972DE}$\backslash$$\backslash$}\setlength{\fboxsep}{0ex}\colorbox[HTML]{0F2421}{\rule[-0.5ex]{0pt}{2.0ex}\color[HTML]{8FFF58}'}})[{\color[HTML]{0A9CFF}2}]).{\color[HTML]{6FD3FF}to\_s}}}\\
\texttt{ 121 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
\texttt{ 122 }&\mbox{\texttt{ }}\\
\texttt{ 123 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
\end{longtable}
\end{document}
def first
"first file"
end
def second
[1,2,3,4,5,6].each do |i|
puts "#{i}"
end
end
def third
"Polly put the kettle on"
end
def fourth
"Nothing interesting here"
end
require 'minitest/autorun'
require 'code_rippa'
describe CodeRippa do
def fixtures_path
File.expand_path("../fixtures", __FILE__)
end
it "should return a heading color for every syntax file" do
Uv.themes.each do |theme|
assert_equal 6, CodeRippa.heading_color(theme).length
end
end
it "should return a page color for every syntax file" do
Uv.themes.each do |theme|
assert_equal 6, CodeRippa.page_color(theme).length
end
end
it "page color should not be the same as the heading color" do
Uv.themes.each do |theme|
refute_equal CodeRippa.heading_color(theme), CodeRippa.page_color(theme)
end
end
describe ".rippable?" do
it "should parse a file with an extension that is supported" do
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.rb", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.c", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.cpp", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.m", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.s", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.txt", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.haml", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.json", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.py", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.sh", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.groovy", 'moc', [])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.php", 'moc', [])
end
it "should not parse a file with an extension that isn't supported" do
assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.vark", 'moc', [])
assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.psd", 'moc', [])
assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.ai", 'moc', [])
assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.scala", 'moc', [])
end
it "should not parse a directory" do
assert_equal false, CodeRippa.rippable?("#{fixtures_path}/", 'moc', [])
end
it "should not parse a file that has an excluded extension" do
assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.rb", 'moc', ['rb'])
assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.c", 'moc', ['c'])
assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.cpp", 'moc', ['rb'])
end
end
describe ".bookmarkable?" do
it "should bookmark a directory" do
assert_equal true, CodeRippa.bookmarkable?("#{fixtures_path}/", 'moc', [])
end
it "should not bookmark a file that has an excluded extension" do
assert_equal false, CodeRippa.bookmarkable?("#{fixtures_path}/hello.rb", 'moc', ['rb'])
assert_equal false, CodeRippa.bookmarkable?("#{fixtures_path}/hello.c", 'moc', ['c'])
assert_equal true, CodeRippa.bookmarkable?("#{fixtures_path}/hello.cpp", 'moc', ['rb'])
end
end
end
require 'minitest/autorun'
require 'code_rippa'
describe CodeRippa do
def fixtures_path
File.join(File.expand_path(File.open(".")), "test", "fixtures")
end
before do
Dir.chdir("#{fixtures_path}")
end
after do
File.delete(File.expand_path("out.tex"))
Dir.chdir("../..")
end
describe ".rip_file" do
it "should rip a file that is supported" do
puts File.expand_path(File.open("."))
CodeRippa.rip_file(File.join("#{File.expand_path(File.open("."))}", "hello.rb"), "moc", "ruby")
f1 = File.open("out.tex")
f2 = File.open("rip_file.tex")
assert (f1.size - f2.size).abs < 300
end
end
describe ".rip_dir" do
it "should rip a directory that is supported" do
CodeRippa.rip_dir("ruby_proj/", "moc", "ruby")
f1 = File.open("out.tex")
f2 = File.open("rip_dir.tex")
assert (f1.size - f2.size).abs < 300
end
end
end
+4
-3
# -*- encoding: utf-8 -*-
require File.expand_path('../lib/code_rippa/version', __FILE__)
require File.expand_path('../lib/code_rippa/uv_overrides', __FILE__)

@@ -15,5 +14,5 @@ Gem::Specification.new do |gem|

gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
# gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
gem.test_files = gem.files.grep(%r{^(test)/})
gem.name = "code_rippa"
gem.require_paths = ["lib"]
gem.require_paths = ["lib", "lib/syntax", "lib/render"]
gem.version = CodeRippa::VERSION

@@ -24,2 +23,4 @@ gem.required_ruby_version = '>= 1.9.0'

gem.add_dependency "spox-ultraviolet", "~> 0.10.5"
gem.add_development_dependency "rake"
gem.add_development_dependency "minitest"
end

@@ -1,2 +0,1 @@

require 'uv'
require 'find'

@@ -45,3 +44,3 @@ require 'code_rippa/uv_overrides'

msg << "Now run "
msg << "pdflatex #{File.expand_path(outfile)} ".color(:red)
msg << "pdflatex -interaction=batchmode #{File.expand_path(outfile)} ".color(:red)
msg << "** TWICE ** to generate PDF."

@@ -109,3 +108,3 @@ puts msg

msg << "Now run "
msg << "pdflatex #{File.expand_path(outfile)} ".color(:red)
msg << "pdflatex -interaction=batchmode #{File.expand_path(outfile)} ".color(:red)
msg << "** TWICE ** to generate PDF."

@@ -130,4 +129,4 @@ puts msg

#
# Returns an Array of supported languages
def self.supported_syntax
# Returns an Array of supported syntaxes
def self.supported_syntax
if @@supported_syntax

@@ -134,0 +133,0 @@ @@supported_syntax

module CodeRippa
VERSION = "0.0.5"
VERSION = "0.0.6"
end
#!/usr/bin/env rake
require "bundler/gem_tasks"
require 'rake/testtask'
task :default do
end
Rake::TestTask.new do |t|
t.pattern = "test/test_*.rb"
end
+11
-10
# CodeRippa
[![Build Status](https://secure.travis-ci.org/benjamintanweihao/code_rippa.png)](http://travis-ci.org/benjamintanweihao/code_rippa)
CodeRippa takes your source code and turns it into a beautiful PDF file. Currently, it supports 150 languages and 15 themes, all of which are available in TextMate. More syntaxes and themes will be available soon.

@@ -7,12 +9,2 @@

Add this line to your application's Gemfile:
$ gem 'code_rippa'
And then execute:
$ bundle
Or install it yourself as:
$ gem install code_rippa

@@ -93,2 +85,11 @@

### 0.0.6
- Include MiniTest specs
### 0.0.5
- Better performance when parsing.
- Code documentation.
### 0.0.4

@@ -95,0 +96,0 @@

Sorry, the diff of this file is not supported yet