code_rippa 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.2
4
+ - 1.9.3
data/README.md CHANGED
@@ -1,19 +1,11 @@
1
1
  # CodeRippa
2
2
 
3
+ [![Build Status](https://secure.travis-ci.org/benjamintanweihao/code_rippa.png)](http://travis-ci.org/benjamintanweihao/code_rippa)
4
+
3
5
  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.
4
6
 
5
7
  ## Installation
6
8
 
7
- Add this line to your application's Gemfile:
8
-
9
- $ gem 'code_rippa'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself as:
16
-
17
9
  $ gem install code_rippa
18
10
 
19
11
  ## Usage
@@ -89,6 +81,15 @@ Currently this gem is in its infancy. Any bug reports and feature requests are v
89
81
 
90
82
  ## Changelog
91
83
 
84
+ ### 0.0.6
85
+
86
+ - Include MiniTest specs
87
+
88
+ ### 0.0.5
89
+
90
+ - Better performance when parsing.
91
+ - Code documentation.
92
+
92
93
  ### 0.0.4
93
94
 
94
95
  - Removed dependency on Linguist.
data/Rakefile CHANGED
@@ -1,2 +1,10 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+ require 'rake/testtask'
4
+
5
+ task :default do
6
+ end
7
+
8
+ Rake::TestTask.new do |t|
9
+ t.pattern = "test/test_*.rb"
10
+ end
@@ -15,14 +15,20 @@ option_parser = OptionParser.new do |opts|
15
15
 
16
16
  Parses input_file or directory and outputs a file named out.tex.
17
17
  It expects both the syntax and theme to be specified.
18
-
18
+
19
+ To see all syntaxes, type:
20
+ code_rippa -n
21
+
22
+ And to see all themes, type:
23
+ code_rippa -l
24
+
19
25
  Example:
20
26
 
21
27
  code_rippa -s ruby -t amy path_to_file.rb
22
28
 
23
29
  Renders the contents of path_to_file.rb into out.tex.
24
30
 
25
- Then run `pdflatex out.tex` to generate the PDF output.
31
+ Then run `pdflatex -interaction=batchmode out.tex` to generate the PDF output.
26
32
 
27
33
  "-s" and "-t" are mandatory. The rest are optional.
28
34
 
@@ -33,7 +39,7 @@ END
33
39
  if CodeRippa.supported_syntax.include? syntax
34
40
  options[:syntax] = syntax
35
41
  else
36
- raise ArgumentError, "syntax for #{syntax} not found. Use -s to see the list of available syntax."
42
+ raise ArgumentError, "syntax for #{syntax} not found. Use -n to see the list of available syntax."
37
43
  end
38
44
  end
39
45
 
@@ -46,7 +52,7 @@ END
46
52
  end
47
53
 
48
54
  opts.on('-n', '--list-syntax', 'List all available syntax') do
49
- puts CodeRippa.supported_syntax.join("\n")
55
+ puts CodeRippa.supported_syntax.join("\n")
50
56
  exit 0
51
57
  end
52
58
 
@@ -1,6 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require File.expand_path('../lib/code_rippa/version', __FILE__)
3
- require File.expand_path('../lib/code_rippa/uv_overrides', __FILE__)
4
3
 
5
4
  Gem::Specification.new do |gem|
6
5
  gem.authors = ["Benjamin Tan Wei Hao"]
@@ -12,12 +11,14 @@ Gem::Specification.new do |gem|
12
11
  gem.has_rdoc = false
13
12
  gem.files = `git ls-files`.split($\)
14
13
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
- # gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
+ gem.test_files = gem.files.grep(%r{^(test)/})
16
15
  gem.name = "code_rippa"
17
- gem.require_paths = ["lib"]
16
+ gem.require_paths = ["lib", "lib/syntax", "lib/render"]
18
17
  gem.version = CodeRippa::VERSION
19
18
  gem.required_ruby_version = '>= 1.9.0'
20
19
  gem.add_dependency "rainbow"
21
20
  gem.add_dependency "ansi"
22
21
  gem.add_dependency "spox-ultraviolet", "~> 0.10.5"
22
+ gem.add_development_dependency "rake"
23
+ gem.add_development_dependency "minitest"
23
24
  end
@@ -1,4 +1,3 @@
1
- require 'uv'
2
1
  require 'find'
3
2
  require 'code_rippa/uv_overrides'
4
3
  require 'code_rippa/version'
@@ -42,7 +41,7 @@ module CodeRippa
42
41
  msg << "Output file written to: "
43
42
  msg << "#{File.expand_path(outfile)}\n".color(:yellow)
44
43
  msg << "Now run "
45
- msg << "pdflatex #{File.expand_path(outfile)} ".color(:red)
44
+ msg << "pdflatex -interaction=batchmode #{File.expand_path(outfile)} ".color(:red)
46
45
  msg << "** TWICE ** to generate PDF."
47
46
  puts msg
48
47
  outfile.close
@@ -105,7 +104,7 @@ module CodeRippa
105
104
  msg << "Output file written to: "
106
105
  msg << "#{File.expand_path(outfile)}\n".color(:yellow)
107
106
  msg << "Now run "
108
- msg << "pdflatex #{File.expand_path(outfile)} ".color(:red)
107
+ msg << "pdflatex -interaction=batchmode #{File.expand_path(outfile)} ".color(:red)
109
108
  msg << "** TWICE ** to generate PDF."
110
109
  puts msg
111
110
 
@@ -125,8 +124,8 @@ module CodeRippa
125
124
  # supported_syntax
126
125
  # # => ['ruby','prolog']
127
126
  #
128
- # Returns an Array of supported languages
129
- def self.supported_syntax
127
+ # Returns an Array of supported syntaxes
128
+ def self.supported_syntax
130
129
  if @@supported_syntax
131
130
  @@supported_syntax
132
131
  else
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: C
3
+ fileTypes:
4
+ - c
5
+ - h
6
+ scopeName: source.c
7
+ uuid: 1BA75B32-707C-11D9-A928-000D93589AF6
8
+ foldingStartMarker: "(?x)\n\
9
+ \t\t /\\*\\*(?!\\*)\n\
10
+ \t\t|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))\n\
11
+ \t"
12
+ patterns:
13
+ - name: comment.block.c
14
+ captures:
15
+ "0":
16
+ name: punctuation.definition.comment.c
17
+ begin: /\*
18
+ end: \*/
19
+ - name: comment.line.double-slash.c
20
+ captures:
21
+ "1":
22
+ name: punctuation.definition.comment.c
23
+ match: (//).*$\n?
24
+ - name: keyword.control.c
25
+ match: \b(abstract|as|base|break|case|catch|checked|const|continue|default|delegate|do|else|event|explicit|extern|false|finally|fixed|for|foreach|goto|if|implicit|in|internal|is|lock|namespace|new|null|operator|out|override|params|private|protected|public|readonly|ref|return|sealed|sizeof|stackalloc|static|switch|this|throw|true|try|typeof|unckecked|unsafe|using|virtual|volatile|void|while)\b
26
+ - name: storage.type.c
27
+ match: \b(bool|byte|char|class|decimal|double|enum|float|int|nterface|long|object|sbyte|short|string|struct|uint|ulong|ushort)\b
28
+ - name: constant.numeric.c
29
+ match: \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\b
30
+ - name: string.quoted.double.c
31
+ endCaptures:
32
+ "0":
33
+ name: punctuation.definition.string.end.c
34
+ begin: "\""
35
+ beginCaptures:
36
+ "0":
37
+ name: punctuation.definition.string.begin.c
38
+ end: "\""
39
+ patterns:
40
+ - name: constant.character.escape.c#
41
+ match: \\.
42
+ - name: string.quoted.single.c#
43
+ endCaptures:
44
+ "0":
45
+ name: punctuation.definition.string.end.c
46
+ begin: "'"
47
+ beginCaptures:
48
+ "0":
49
+ name: punctuation.definition.string.begin.c
50
+ end: "'"
51
+ patterns:
52
+ - name: constant.character.escape.c
53
+ match: \\.
54
+ - name: meta.preprocessor.c
55
+ captures:
56
+ "2":
57
+ name: keyword.control.import.c
58
+ match: ^(#)\s*(if|else|elif|endif|define|undef|warning|error|line|region|endregion)\b
59
+ foldingStopMarker: (?<!\*)\*\*/|^\s*\}
60
+ keyEquivalent: ^~C
@@ -1,3 +1,3 @@
1
1
  module CodeRippa
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -0,0 +1,123 @@
1
+ require 'uv'
2
+ require 'find'
3
+ require 'code_rippa/uv_overrides'
4
+ require 'code_rippa/version'
5
+ require 'ansi/progressbar'
6
+ require 'rainbow'
7
+ include ANSI
8
+
9
+
10
+ YAML::ENGINE.yamler = 'syck'
11
+
12
+ module CodeRippa
13
+
14
+ @@supported_syntax = nil
15
+ @@supported_ext = nil
16
+
17
+ # Parses the given directory, and writes the output file (out.tex)
18
+ # into the current directory.
19
+ #
20
+ # dir_path - The directory path
21
+ # syntax - The syntax to perform parsing/syntax highlighting.
22
+ # Note the the syntax should be supported by code_rippa.
23
+ # excluded_exts - An Array of extensions to ignore during parsing.
24
+ #
25
+ # Examples
26
+ #
27
+ # rip_dir("~/code/ruby/some_folder", "space_cadet", "ruby", [])
28
+ #
29
+ # Returns nothing.
30
+ def self.rip_dir(dir_path, theme, syntax, excluded_exts = [])
31
+ pbar = Progressbar.new("Rippin'".color(:blue), Dir["**/*"].length)
32
+ counter = 0
33
+ outfile = File.open('out.tex', 'w')
34
+
35
+ outfile.write preamble theme
36
+ Find.find dir_path do |path|
37
+ depth = path.to_s.count('/')
38
+ if File.basename(path)[0] == ?. or File.basename(path) == "out.tex"
39
+ Find.prune
40
+ else
41
+ begin
42
+ is_rippable = rippable?(path, syntax, excluded_exts)
43
+ if is_rippable
44
+ outfile.write "\\textcolor{white}{\\textbf{\\texttt{#{path.gsub('_','\_').gsub('%','\%')}}}}\\\\\n"
45
+ outfile.write "\\textcolor{white}{\\rule{\\linewidth}{1.0mm}}\\\\\n"
46
+ end
47
+
48
+ if bookmarkable?(path, syntax, excluded_exts)
49
+ outfile.write "\\pdfbookmark[#{depth-2}]{#{File.basename(path).gsub('_','\_').gsub('%','\%')}}{#{counter}}\n"
50
+ end
51
+
52
+ if is_rippable
53
+ outfile.write Uv.parse(File.read(path), 'latex', syntax, true, theme)
54
+ outfile.write "\\clearpage\n"
55
+ end
56
+ rescue Exception => e
57
+ puts e
58
+ end
59
+ counter += 1
60
+ end
61
+ pbar.inc
62
+ end
63
+
64
+ outfile.write endtag
65
+ pbar.finish
66
+
67
+ msg = "Completed successfully.\n".color(:green)
68
+ msg << "Output file written to: "
69
+ msg << "#{File.expand_path(outfile)}\n".color(:yellow)
70
+ msg << "Now run "
71
+ msg << "pdflatex #{File.expand_path(outfile)} ".color(:red)
72
+ msg << "** TWICE ** to generate PDF."
73
+ puts msg
74
+
75
+ outfile.close
76
+ end
77
+
78
+ private
79
+
80
+ # Returns True if path should be ripped as part of the output TEX file.
81
+ #
82
+ # path - The file. (directories will return false.)
83
+ # syntax - The syntax to perform parsing/syntax highlighting.
84
+ # Note the the syntax should be supported by code_rippa.
85
+ # excluded_exts - An Array of extensions to ignore during parsing.
86
+ #
87
+ #
88
+ # Examples
89
+ #
90
+ # rippable?("hello.rb", "ruby", [])
91
+ # # => true
92
+ #
93
+ # rippable?("~/code/", "ruby", [])
94
+ # # => false
95
+ #
96
+ # rippable?("hello.rb", "ruby", ["rb", "html"])
97
+ # # => false
98
+ #
99
+ # rippable?("hello.klingon", "klingon", [])
100
+ # # => false
101
+ #
102
+ # Returns true if path should be ripped.
103
+ def self.rippable?(path, syntax, excluded_exts)
104
+ if FileTest.directory?(path)
105
+ false
106
+ else
107
+ src_ext = File.extname(path)[1..-1]
108
+ if excluded_exts.include? src_ext
109
+ false
110
+ elsif supported_exts.include?(src_ext)
111
+ true
112
+ else
113
+ false
114
+ end
115
+ end
116
+ end
117
+
118
+ def self.heading_color(theme)
119
+ f = YAML.load(File.read("#{Uv.render_path}/latex/#{theme}.render"))
120
+ /([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})/.match(f['listing']['begin'].split('\\')[2]).to_s
121
+ end
122
+
123
+ end
Binary file
@@ -0,0 +1,77 @@
1
+ \documentclass[a4paper,landscape]{article}
2
+ \pagestyle{empty}
3
+ \usepackage{xcolor}
4
+ \usepackage{colortbl}
5
+ \usepackage{longtable}
6
+ \usepackage[left=0cm,top=0.2cm,right=0cm,bottom=0.2cm,nohead,nofoot]{geometry}
7
+ \usepackage[T1]{fontenc}
8
+ \usepackage[scaled]{beramono}
9
+ \usepackage[bookmarksopen,bookmarksdepth=20]{hyperref}
10
+ \definecolor{pgcolor}{HTML}{090A1B}
11
+ \definecolor{headingcolor}{HTML}{F8F8F8}
12
+ \pagecolor{pgcolor}
13
+ \begin{document}
14
+ \setlength\LTleft\parindent
15
+ \setlength\LTright\fill
16
+ \setlength{\LTpre}{-10pt}
17
+ \pdfbookmark[6]{ruby\_proj}{0}
18
+ \pdfbookmark[7]{folder\_1}{1}
19
+ \textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/1.rb}}}\\
20
+ \textcolor{white}{\rule{\linewidth}{1.0mm}}\\
21
+ \pdfbookmark[8]{1.rb}{2}
22
+ \newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
23
+ \newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
24
+ \begin{longtable}{NC}
25
+ \texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}first}}}\\
26
+ \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}''}}}}\\
27
+ \texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
28
+ \end{longtable}
29
+ \clearpage
30
+ \textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/2.rb}}}\\
31
+ \textcolor{white}{\rule{\linewidth}{1.0mm}}\\
32
+ \pdfbookmark[8]{2.rb}{3}
33
+ \newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
34
+ \newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
35
+ \begin{longtable}{NC}
36
+ \texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}second}}}\\
37
+ \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}|}}\\
38
+ \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}''}}}}\\
39
+ \texttt{ 4 }&\mbox{\texttt{ \hspace{1ex}\hspace{1ex}{\color[HTML]{FF3854}end}}}\\
40
+ \texttt{ 5 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
41
+ \end{longtable}
42
+ \clearpage
43
+ \textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/3.rb}}}\\
44
+ \textcolor{white}{\rule{\linewidth}{1.0mm}}\\
45
+ \pdfbookmark[8]{3.rb}{4}
46
+ \newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
47
+ \newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
48
+ \begin{longtable}{NC}
49
+ \texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}third}}}\\
50
+ \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}''}}}}\\
51
+ \texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
52
+ \end{longtable}
53
+ \clearpage
54
+ \pdfbookmark[8]{folder\_2}{5}
55
+ \textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/folder\_2/4.rb}}}\\
56
+ \textcolor{white}{\rule{\linewidth}{1.0mm}}\\
57
+ \pdfbookmark[9]{4.rb}{6}
58
+ \newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
59
+ \newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
60
+ \begin{longtable}{NC}
61
+ \texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}fourth}}}\\
62
+ \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}''}}}}\\
63
+ \texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
64
+ \end{longtable}
65
+ \clearpage
66
+ \textcolor{white}{\textbf{\texttt{/Users/rambo/code/ruby/code\_rippa/test/fixtures/ruby\_proj/folder\_1/folder\_2/5.rb}}}\\
67
+ \textcolor{white}{\rule{\linewidth}{1.0mm}}\\
68
+ \pdfbookmark[9]{5.rb}{7}
69
+ \newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
70
+ \newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
71
+ \begin{longtable}{NC}
72
+ \texttt{ 1 }&\mbox{\texttt{ {\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}fifth}}}\\
73
+ \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}''}}}}\\
74
+ \texttt{ 3 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
75
+ \end{longtable}
76
+ \clearpage
77
+ \end{document}
@@ -0,0 +1,146 @@
1
+ \documentclass[a4paper,landscape]{article}
2
+ \pagestyle{empty}
3
+ \usepackage{xcolor}
4
+ \usepackage{colortbl}
5
+ \usepackage{longtable}
6
+ \usepackage[left=0cm,top=0.2cm,right=0cm,bottom=0.2cm,nohead,nofoot]{geometry}
7
+ \usepackage[T1]{fontenc}
8
+ \usepackage[scaled]{beramono}
9
+ \usepackage[bookmarksopen,bookmarksdepth=20]{hyperref}
10
+ \definecolor{pgcolor}{HTML}{090A1B}
11
+ \definecolor{headingcolor}{HTML}{F8F8F8}
12
+ \pagecolor{pgcolor}
13
+ \begin{document}
14
+ \setlength\LTleft\parindent
15
+ \setlength\LTright\fill
16
+ \setlength{\LTpre}{-10pt}
17
+ \textcolor{headingcolor}{\textbf{\texttt{test/fixtures/hello.rb}}}\\
18
+ \textcolor{headingcolor}{\rule{\linewidth}{1.0mm}}\\
19
+ \newcolumntype{C}{>{\color[HTML]{F8F8F8}\columncolor[HTML]{090A1B}}l}
20
+ \newcolumntype{N}{>{\color[HTML]{7D7D7D}\columncolor[HTML]{000000}}l}
21
+ \begin{longtable}{NC}
22
+ \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}'}}}}\\
23
+ \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}'}}}}\\
24
+ \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}'}}}}\\
25
+ \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}'}}}}\\
26
+ \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}'}}}}\\
27
+ \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}'}}}}\\
28
+ \texttt{ 7 }&\mbox{\texttt{ {\color[HTML]{FF3854}include}\hspace{1ex}{\color[HTML]{588AFF}ANSI}}}\\
29
+ \texttt{ 8 }&\mbox{\texttt{ }}\\
30
+ \texttt{ 9 }&\mbox{\texttt{ }}\\
31
+ \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}'}}}}\\
32
+ \texttt{ 11 }&\mbox{\texttt{ }}\\
33
+ \texttt{ 12 }&\mbox{\texttt{ {\color[HTML]{FF3854}module}\hspace{1ex}{\underline{CodeRippa}}}}\\
34
+ \texttt{ 13 }&\mbox{\texttt{ \hspace{3ex}}}\\
35
+ \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}}}\\
36
+ \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}}}\\
37
+ \texttt{ 16 }&\mbox{\texttt{ }}\\
38
+ \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)}}}}\\
39
+ \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.}}}}\\
40
+ \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}}}}}\\
41
+ \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}}}}\\
42
+ \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}}}}}\\
43
+ \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.}}}}\\
44
+ \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}}}}}\\
45
+ \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}}}}}\\
46
+ \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}}}}\\
47
+ \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{\#}}}}}}\\
48
+ \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}[])}}}}\\
49
+ \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{\#}}}}}}\\
50
+ \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.}}}}\\
51
+ \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}]}})}}\\
52
+ \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})}}\\
53
+ \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}}}\\
54
+ \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}}}\\
55
+ \texttt{ 34 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
56
+ \texttt{ 35 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}preamble\hspace{1ex}theme}}\\
57
+ \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}|}}\\
58
+ \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}'}})}}\\
59
+ \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}''}}}}\\
60
+ \texttt{ 39 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{00FFBC}Find}.{\color[HTML]{6FD3FF}prune}}}\\
61
+ \texttt{ 40 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}else}}}\\
62
+ \texttt{ 41 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}begin}}}\\
63
+ \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)}}\\
64
+ \texttt{ 43 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}is\_rippable}}\\
65
+ \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}''}}}}\\
66
+ \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}''}}}}\\
67
+ \texttt{ 46 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
68
+ \texttt{ 47 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}}}\\
69
+ \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}}}\\
70
+ \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}''}}}}\\
71
+ \texttt{ 50 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
72
+ \texttt{ 51 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}}}\\
73
+ \texttt{ 52 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}if}\hspace{1ex}is\_rippable}}\\
74
+ \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}}}\\
75
+ \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}''}}}}\\
76
+ \texttt{ 55 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
77
+ \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}}\\
78
+ \texttt{ 57 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}puts\hspace{1ex}e}}\\
79
+ \texttt{ 58 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
80
+ \texttt{ 59 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}counter\hspace{1ex}{\color[HTML]{FF3854}+=}\hspace{1ex}{\color[HTML]{0A9CFF}1}}}\\
81
+ \texttt{ 60 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
82
+ \texttt{ 61 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}pbar.{\color[HTML]{6FD3FF}inc}}}\\
83
+ \texttt{ 62 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
84
+ \texttt{ 63 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
85
+ \texttt{ 64 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}write}\hspace{1ex}endtag}}\\
86
+ \texttt{ 65 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}pbar.{\color[HTML]{6FD3FF}finish}}}\\
87
+ \texttt{ 66 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
88
+ \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})}}\\
89
+ \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}''}}}}\\
90
+ \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})}}\\
91
+ \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}''}}}}\\
92
+ \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})}}\\
93
+ \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}''}}}}\\
94
+ \texttt{ 73 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}puts\hspace{1ex}msg}}\\
95
+ \texttt{ 74 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
96
+ \texttt{ 75 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}outfile.{\color[HTML]{6FD3FF}close}}}\\
97
+ \texttt{ 76 }&\mbox{\texttt{ \hspace{3ex}{\color[HTML]{FF3854}end}}}\\
98
+ \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}}}\\
99
+ \texttt{ 78 }&\mbox{\texttt{ \hspace{3ex}{\color[HTML]{FF3854}private}\hspace{1ex}}}\\
100
+ \texttt{ 79 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}}}\\
101
+ \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}}}}}\\
102
+ \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{\#}}}}}}\\
103
+ \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.)}}}}\\
104
+ \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}}}}}\\
105
+ \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.}}}}\\
106
+ \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.}}}}\\
107
+ \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{\#}}}}}}\\
108
+ \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{\#}}}}}}\\
109
+ \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}}}}\\
110
+ \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{\#}}}}}}\\
111
+ \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}}}}}\\
112
+ \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}}}}}\\
113
+ \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{\#}}}}}}\\
114
+ \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}}}}}\\
115
+ \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}}}}\\
116
+ \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{\#}}}}}}\\
117
+ \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}}}}}\\
118
+ \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}}}}\\
119
+ \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{\#}}}}}}\\
120
+ \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}}}}}\\
121
+ \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}}}}\\
122
+ \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{\#}}}}}}\\
123
+ \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.}}}}\\
124
+ \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})}}\\
125
+ \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)}}\\
126
+ \texttt{ 105 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}false}}}\\
127
+ \texttt{ 106 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}else}}}\\
128
+ \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}]}}\\
129
+ \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}}\\
130
+ \texttt{ 109 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}false}}}\\
131
+ \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)}}\\
132
+ \texttt{ 111 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}true}}}\\
133
+ \texttt{ 112 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}else}}}\\
134
+ \texttt{ 113 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{0A9CFF}false}}}\\
135
+ \texttt{ 114 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
136
+ \texttt{ 115 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
137
+ \texttt{ 116 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
138
+ \texttt{ 117 }&\mbox{\texttt{ }}\\
139
+ \texttt{ 118 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}def}\hspace{1ex}{\color[HTML]{6FD3FF}self.heading\_color}({\color[HTML]{588AFF}theme})}}\\
140
+ \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}}}\\
141
+ \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}}}\\
142
+ \texttt{ 121 }&\mbox{\texttt{ \hspace{3ex}\hspace{3ex}{\color[HTML]{FF3854}end}}}\\
143
+ \texttt{ 122 }&\mbox{\texttt{ }}\\
144
+ \texttt{ 123 }&\mbox{\texttt{ {\color[HTML]{FF3854}end}}}\\
145
+ \end{longtable}
146
+ \end{document}
@@ -0,0 +1,3 @@
1
+ def first
2
+ "first file"
3
+ end
@@ -0,0 +1,5 @@
1
+ def second
2
+ [1,2,3,4,5,6].each do |i|
3
+ puts "#{i}"
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ def third
2
+ "Polly put the kettle on"
3
+ end
@@ -0,0 +1,3 @@
1
+ def fourth
2
+ "Nothing interesting here"
3
+ end
@@ -0,0 +1,3 @@
1
+ def fifth
2
+ "yee-har"
3
+ end
@@ -0,0 +1,80 @@
1
+ require 'minitest/autorun'
2
+ require 'code_rippa'
3
+
4
+ describe CodeRippa do
5
+
6
+ def fixtures_path
7
+ File.expand_path("../fixtures", __FILE__)
8
+ end
9
+
10
+ it "should return a heading color for every syntax file" do
11
+ Uv.themes.each do |theme|
12
+ assert_equal 6, CodeRippa.heading_color(theme).length
13
+ end
14
+ end
15
+
16
+ it "should return a page color for every syntax file" do
17
+ Uv.themes.each do |theme|
18
+ assert_equal 6, CodeRippa.page_color(theme).length
19
+ end
20
+ end
21
+
22
+ it "page color should not be the same as the heading color" do
23
+ Uv.themes.each do |theme|
24
+ refute_equal CodeRippa.heading_color(theme), CodeRippa.page_color(theme)
25
+ end
26
+ end
27
+
28
+
29
+ describe ".rippable?" do
30
+
31
+ it "should parse a file with an extension that is supported" do
32
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.rb", 'moc', [])
33
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.c", 'moc', [])
34
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.cpp", 'moc', [])
35
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.m", 'moc', [])
36
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.s", 'moc', [])
37
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.txt", 'moc', [])
38
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.haml", 'moc', [])
39
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.json", 'moc', [])
40
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.py", 'moc', [])
41
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.sh", 'moc', [])
42
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.groovy", 'moc', [])
43
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.php", 'moc', [])
44
+ end
45
+
46
+ it "should not parse a file with an extension that isn't supported" do
47
+ assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.vark", 'moc', [])
48
+ assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.psd", 'moc', [])
49
+ assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.ai", 'moc', [])
50
+ assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.scala", 'moc', [])
51
+ end
52
+
53
+ it "should not parse a directory" do
54
+ assert_equal false, CodeRippa.rippable?("#{fixtures_path}/", 'moc', [])
55
+ end
56
+
57
+ it "should not parse a file that has an excluded extension" do
58
+ assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.rb", 'moc', ['rb'])
59
+ assert_equal false, CodeRippa.rippable?("#{fixtures_path}/hello.c", 'moc', ['c'])
60
+ assert_equal true, CodeRippa.rippable?("#{fixtures_path}/hello.cpp", 'moc', ['rb'])
61
+ end
62
+
63
+ end
64
+
65
+
66
+ describe ".bookmarkable?" do
67
+
68
+ it "should bookmark a directory" do
69
+ assert_equal true, CodeRippa.bookmarkable?("#{fixtures_path}/", 'moc', [])
70
+ end
71
+
72
+ it "should not bookmark a file that has an excluded extension" do
73
+ assert_equal false, CodeRippa.bookmarkable?("#{fixtures_path}/hello.rb", 'moc', ['rb'])
74
+ assert_equal false, CodeRippa.bookmarkable?("#{fixtures_path}/hello.c", 'moc', ['c'])
75
+ assert_equal true, CodeRippa.bookmarkable?("#{fixtures_path}/hello.cpp", 'moc', ['rb'])
76
+ end
77
+
78
+ end
79
+
80
+ end
@@ -0,0 +1,38 @@
1
+ require 'minitest/autorun'
2
+ require 'code_rippa'
3
+
4
+ describe CodeRippa do
5
+
6
+ def fixtures_path
7
+ File.join(File.expand_path(File.open(".")), "test", "fixtures")
8
+ end
9
+
10
+ before do
11
+ Dir.chdir("#{fixtures_path}")
12
+ end
13
+
14
+ after do
15
+ File.delete(File.expand_path("out.tex"))
16
+ Dir.chdir("../..")
17
+ end
18
+
19
+ describe ".rip_file" do
20
+ it "should rip a file that is supported" do
21
+ puts File.expand_path(File.open("."))
22
+ CodeRippa.rip_file(File.join("#{File.expand_path(File.open("."))}", "hello.rb"), "moc", "ruby")
23
+ f1 = File.open("out.tex")
24
+ f2 = File.open("rip_file.tex")
25
+ assert (f1.size - f2.size).abs < 300
26
+ end
27
+ end
28
+
29
+ describe ".rip_dir" do
30
+ it "should rip a directory that is supported" do
31
+ CodeRippa.rip_dir("ruby_proj/", "moc", "ruby")
32
+ f1 = File.open("out.tex")
33
+ f2 = File.open("rip_dir.tex")
34
+ assert (f1.size - f2.size).abs < 300
35
+ end
36
+ end
37
+
38
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_rippa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-30 00:00:00.000000000 Z
12
+ date: 2012-03-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rainbow
@@ -59,6 +59,38 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.10.5
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: minitest
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
62
94
  description: Converts source code into a (bookmarked, themed, and syntax highlighted!)
63
95
  PDF.
64
96
  email:
@@ -69,6 +101,7 @@ extensions: []
69
101
  extra_rdoc_files: []
70
102
  files:
71
103
  - .gitignore
104
+ - .travis.yml
72
105
  - Gemfile
73
106
  - LICENSE
74
107
  - README.md
@@ -116,6 +149,7 @@ files:
116
149
  - lib/code_rippa/syntax/blog_textile.syntax
117
150
  - lib/code_rippa/syntax/build.syntax
118
151
  - lib/code_rippa/syntax/bulletin_board.syntax
152
+ - lib/code_rippa/syntax/c.syntax
119
153
  - lib/code_rippa/syntax/cake.syntax
120
154
  - lib/code_rippa/syntax/camlp4.syntax
121
155
  - lib/code_rippa/syntax/cm.syntax
@@ -248,12 +282,25 @@ files:
248
282
  - lib/code_rippa/syntax/yui_javascript.syntax
249
283
  - lib/code_rippa/uv_overrides.rb
250
284
  - lib/code_rippa/version.rb
285
+ - test/fixtures/hello.rb
286
+ - test/fixtures/octocat.png
287
+ - test/fixtures/rip_dir.tex
288
+ - test/fixtures/rip_file.tex
289
+ - test/fixtures/ruby_proj/folder_1/1.rb
290
+ - test/fixtures/ruby_proj/folder_1/2.rb
291
+ - test/fixtures/ruby_proj/folder_1/3.rb
292
+ - test/fixtures/ruby_proj/folder_1/folder_2/4.rb
293
+ - test/fixtures/ruby_proj/folder_1/folder_2/5.rb
294
+ - test/test_private_methods.rb
295
+ - test/test_public_methods.rb
251
296
  homepage: http://code-rippa.heroku.com
252
297
  licenses: []
253
298
  post_install_message:
254
299
  rdoc_options: []
255
300
  require_paths:
256
301
  - lib
302
+ - lib/syntax
303
+ - lib/render
257
304
  required_ruby_version: !ruby/object:Gem::Requirement
258
305
  none: false
259
306
  requirements:
@@ -274,5 +321,16 @@ specification_version: 3
274
321
  summary: CodeRippa takes your source code and turns it into a beautiful PDF file.
275
322
  Currently, it supports 150 languages and 15 themes, all of which are available in
276
323
  TextMate. More syntaxes and themes will be available soon.
277
- test_files: []
324
+ test_files:
325
+ - test/fixtures/hello.rb
326
+ - test/fixtures/octocat.png
327
+ - test/fixtures/rip_dir.tex
328
+ - test/fixtures/rip_file.tex
329
+ - test/fixtures/ruby_proj/folder_1/1.rb
330
+ - test/fixtures/ruby_proj/folder_1/2.rb
331
+ - test/fixtures/ruby_proj/folder_1/3.rb
332
+ - test/fixtures/ruby_proj/folder_1/folder_2/4.rb
333
+ - test/fixtures/ruby_proj/folder_1/folder_2/5.rb
334
+ - test/test_private_methods.rb
335
+ - test/test_public_methods.rb
278
336
  has_rdoc: false