codemerger 0.2.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -4,3 +4,5 @@ pkg/*
4
4
  .redcar/*
5
5
  *.swo
6
6
  *.swp
7
+ output/*
8
+ coverage/*
data/.rvmrc ADDED
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
+ # development environment upon cd'ing into the directory
5
+
6
+ # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
7
+ environment_id="ruby-1.9.2-p180"
8
+
9
+ #
10
+ # First we attempt to load the desired environment directly from the environment
11
+ # file. This is very fast and efficient compared to running through the entire
12
+ # CLI and selector. If you want feedback on which environment was used then
13
+ # insert the word 'use' after --create as this triggers verbose mode.
14
+ #
15
+ if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
16
+ && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
17
+ then
18
+ \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
19
+
20
+ if [[ -s ".rvm/hooks/after_use" ]]
21
+ then
22
+ . ".rvm/hooks/after_use"
23
+ fi
24
+ else
25
+ # If the environment file has not yet been created, use the RVM CLI to select.
26
+ if ! rvm --create use "$environment_id"
27
+ then
28
+ echo "Failed to create RVM environment ''."
29
+ fi
30
+ fi
31
+
32
+ #
33
+ # If you use an RVM gemset file to install a list of gems (*.gems), you can have
34
+ # it be automatically loaded. Uncomment the following and adjust the filename if
35
+ # necessary.
36
+ #
37
+ # filename=".gems"
38
+ # if [[ -s "$filename" ]] ; then
39
+ # rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
40
+ # fi
41
+
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source "http://rubygems.org"
2
-
2
+ gem 'rake'
3
3
  # Specify your gem's dependencies in codemerger.gemspec
4
4
  gemspec
@@ -1,19 +1,27 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codemerger (0.0.1)
5
- maruku
4
+ codemerger (0.3.2)
5
+ albino (= 1.3.3)
6
+ redcarpet (= 2.0.0b3)
6
7
 
7
8
  GEM
8
9
  remote: http://rubygems.org/
9
10
  specs:
10
- maruku (0.6.0)
11
- syntax (>= 1.0.0)
12
- syntax (1.0.0)
11
+ albino (1.3.3)
12
+ posix-spawn (>= 0.3.6)
13
+ posix-spawn (0.3.6)
14
+ rake (0.9.2)
15
+ redcarpet (2.0.0b3)
16
+ simplecov (0.4.2)
17
+ simplecov-html (~> 0.4.4)
18
+ simplecov-html (0.4.4)
13
19
 
14
20
  PLATFORMS
21
+ ruby
15
22
  x86-mingw32
16
23
 
17
24
  DEPENDENCIES
18
25
  codemerger!
19
- maruku
26
+ rake
27
+ simplecov
@@ -1,53 +1,53 @@
1
- This gem is used to help writing technical posts for wordpress.
2
-
3
- To use this GEM I usually create a new directory for the post or post group project, then I create a Gemfile like this:
4
-
1
+ This gem is used to help writing technical posts for wordpress.
2
+
3
+ To use this GEM I usually create a new directory for the post or post group project, then I create a Gemfile like this:
4
+
5
5
  source "http://rubygems.org"
6
6
  group :rake do
7
7
  gem "codemerger", "0.1.0", :require => "codemerger/rake_tasks"
8
8
  end
9
-
10
- After that I create a Rakefile like this:
11
-
9
+
10
+ After that I create a Rakefile like this:
11
+
12
12
  require "rubygems"
13
13
  require "bundler/setup"
14
14
  Bundler.require :rake
15
15
 
16
- Then just start creating the post file in the root directory, the project supports .html or .markdown files for the posts.
17
- Inside this file, when I want to include a source sample, I create another file for the sample, and then I include it into the main post file with a code like this:
18
-
19
- {{full/path/to/the/file.rb}}
20
-
21
- When the post is ready I run teh rake task:
22
-
23
- rake codemerger:merge
24
-
25
- After that, the file I was writting is processed, a new file is created into the output directory and the sample source files are included with a code like this:
26
-
27
- <b>{{full/path/to/the/file.rb}}</b>
28
- <pre line="1" lang="ruby">
29
- ruby code
30
- </pre>
31
-
32
- This snippet is then copied and pasted to a post into my wordpress blog, and the code gets colored using the plugin wp-syntax, and the output can be turned into PDF with the plugin wp-mpdf.
33
-
34
- Today this gem supports source files in the following languages:
35
-
36
- * Ruby (including Rakefile and Gemfile)
37
- * Java
38
- * YAML
39
- * HTML
40
- * XML
41
- * Scala
42
- * CSS
43
- * Javascript
44
- * Bash
45
- * Batch
46
-
47
- All other files are configured as "text".
48
-
49
- For the next steps I'm planning to write more automated tests, refactor the language support code out, today it is a switch statement to convert from a file extension to a name supported by wp-syntax/Geshi and add support for templates and direct conversion of the source samples to colored HTML.
50
-
51
- All these changes are simple, but besides the automated tests, I do not need any of the other right now, if you think they will be usefull for you, send me a message, file an enhancement request or fork, implement and send me a pull request.
52
-
16
+ Then just start creating the post file in the root directory, the project supports .html or .markdown files for the posts.
17
+ Inside this file, when I want to include a source sample, I create another file for the sample, and then I include it into the main post file with a code like this:
18
+
19
+ {{full/path/to/the/file.rb}}
20
+
21
+ When the post is ready I run teh rake task:
22
+
23
+ rake codemerger:merge
24
+
25
+ After that, the file I was writting is processed, a new file is created into the output directory and the sample source files are included with a code like this:
26
+
27
+ <b>{{full/path/to/the/file.rb}}</b>
28
+ <pre line="1" lang="ruby">
29
+ ruby code
30
+ </pre>
31
+
32
+ This snippet is then copied and pasted to a post into my wordpress blog, and the code gets colored using the plugin wp-syntax, and the output can be turned into PDF with the plugin wp-mpdf.
33
+
34
+ Today this gem supports source files in the following languages:
35
+
36
+ * Ruby (including Rakefile and Gemfile)
37
+ * Java
38
+ * YAML
39
+ * HTML
40
+ * XML
41
+ * Scala
42
+ * CSS
43
+ * Javascript
44
+ * Bash
45
+ * Batch
46
+
47
+ All other files are configured as "text".
48
+
49
+ For the next steps I'm planning to write more automated tests, refactor the language support code out, today it is a switch statement to convert from a file extension to a name supported by wp-syntax/Geshi and add support for templates and direct conversion of the source samples to colored HTML.
50
+
51
+ All these changes are simple, but besides the automated tests, I do not need any of the other right now, if you think they will be usefull for you, send me a message, file an enhancement request or fork, implement and send me a pull request.
52
+
53
53
  Any testing or comments will be of great value, today, I think only I'm using this GEM.
data/Rakefile CHANGED
@@ -1,5 +1,9 @@
1
+ require 'simplecov'
1
2
  require 'bundler'
2
- task :fake do
3
-
4
- end
3
+ require 'rake/testtask'
4
+ SimpleCov.start
5
+ require 'codemerger'
5
6
  Bundler::GemHelper.install_tasks :name => 'codemerger'
7
+ Rake::TestTask.new do |t|
8
+ t.pattern = "test/*_spec.rb"
9
+ end
@@ -11,25 +11,27 @@ Gem::Specification.new do |s|
11
11
  s.homepage = "https://github.com/urubatan/codemerger"
12
12
  s.summary = %q{Used to create blog posts and tecnical articles that need code samples, the code samples will be taken from the actual source code file instead of a copy paste approach}
13
13
  s.description = %q{This gem is used to help writing technical posts for wordpress.
14
- The output is copied and pasted to a post into my wordpress blog, and the code gets colored using the plugin wp-syntax, and the output can be turned into PDF with the plugin wp-mpdf.
15
-
16
- Today this gem supports source files in the following languages:
17
-
18
- * Ruby (including Rakefile and Gemfile)
19
- * Java
20
- * YAML
21
- * HTML
22
- * XML
23
- * Scala
24
- * CSS
25
- * Javascript
26
- * Bash
27
- * Batch
28
-
14
+ The output is copied and pasted to a post into my wordpress blog, and the code gets colored using the plugin wp-syntax, and the output can be turned into PDF with the plugin wp-mpdf.
15
+
16
+ Today this gem supports source files in the following languages:
17
+
18
+ * Ruby (including Rakefile and Gemfile)
19
+ * Java
20
+ * YAML
21
+ * HTML
22
+ * XML
23
+ * Scala
24
+ * CSS
25
+ * Javascript
26
+ * Bash
27
+ * Batch
28
+
29
29
  All other files are configured as "text".}
30
30
 
31
31
  s.rubyforge_project = "codemerger"
32
- s.add_dependency 'maruku'
32
+ s.add_dependency 'redcarpet', '2.0.0b3'
33
+ s.add_dependency "albino", "1.3.3"
34
+ s.add_development_dependency 'simplecov'
33
35
 
34
36
  s.files = `git ls-files`.split("\n")
35
37
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -1,3 +1,2 @@
1
- module Codemerger
2
- # Your code goes here...
3
- end
1
+ require 'codemerger/version'
2
+ require 'codemerger/merger'
@@ -0,0 +1,126 @@
1
+ require 'fileutils'
2
+ require 'redcarpet'
3
+ require 'albino'
4
+
5
+ module Codemerger
6
+ class HTMLwithAlbino < Redcarpet::Render::HTML
7
+ include Redcarpet::Render::SmartyPants
8
+ def code(code, language)
9
+ if language
10
+ Albino.new(code, language).colorize({O:"linenos=table,encoding=utf-8"})
11
+ else
12
+ %Q{<pre><code>#{code}</code></pre>}
13
+ end
14
+ end
15
+ def block_html(raw_html)
16
+ @markdown ||= Redcarpet::Markdown.new(HTMLwithAlbino.new,
17
+ :autolink => true, :space_after_headers => true, :superscript => true,
18
+ :fenced_code_blocks => true, :tables => true, :no_intra_emphasis => true)
19
+ m,tag,attrs,content = *(raw_html.match(/<([a-z]+)(.*?)>(.*)<\/\1>/m))
20
+ result = @markdown.render(content)
21
+ %Q{<#{tag}#{attrs}>
22
+ #{result}
23
+ </#{tag}>
24
+ }
25
+ end
26
+ def block_code(code, language)
27
+ if language
28
+ Albino.new(code, language).colorize({O:"linenos=table,encoding=utf-8"})
29
+ else
30
+ %Q{<pre><code>#{code}</code></pre>}
31
+ end
32
+ end
33
+ end
34
+ class Merger
35
+ attr_reader :markdown
36
+ def initialize(dir_name)
37
+ @dir_name = dir_name
38
+ end
39
+ def clean_dirs
40
+ FileUtils.rm_rf 'output'
41
+ FileUtils.mkdir_p 'output'
42
+ FileUtils.mkdir_p "output/#{@dir_name}" if @dir_name != '.'
43
+ end
44
+ def get_language_str(ext)
45
+ case ext
46
+ when ".yml"; "yaml"
47
+ when ".xml"; "xml"
48
+ when ".html"; "xml"
49
+ when ".rb"; "ruby"
50
+ when ".java"; "java"
51
+ when ".scala"; "scala"
52
+ when ".erb"; "erb"
53
+ when ".xsl"; "xslt"
54
+ when ".css"; "css"
55
+ when ".scss"; "scss"
56
+ when ".coffee"; "coffeescript"
57
+ when ".js"; "javascript"
58
+ when ".sh"; "bash"
59
+ when ".bat"; "batch"
60
+ when ".xhtml"; "xml"
61
+ when nil; "ruby"
62
+ else; "text"
63
+ end
64
+ end
65
+ def sanitize(fname)
66
+ fname.gsub(/.*?:/, "")
67
+ end
68
+ def read_contents(fname)
69
+ if fname =~ /.+:/
70
+ `git cat-file blob #{fname}`
71
+ else
72
+ IO.readlines(fname).join('')
73
+ end
74
+ end
75
+ def build_html_merged_file_content(f_name)
76
+ ext = f_name[/(\.[a-zA-Z]+)/]
77
+ lang_str = get_language_str(ext)
78
+ %Q{
79
+ <b>#{sanitize(f_name)}</b>
80
+ <pre line="1" lang="#{lang_str}">
81
+ #{read_contents(f_name)}
82
+ </pre>
83
+ }
84
+ end
85
+ def build_md_merged_file_content(f_name)
86
+ ext = f_name[/(\.[a-zA-Z]+)/]
87
+ lang_str = get_language_str(ext)
88
+ %Q{_#{sanitize(f_name)}_
89
+
90
+ ```#{lang_str}
91
+ #{read_contents(f_name)}
92
+ ```
93
+ }
94
+ end
95
+ def process_files
96
+ in_files = Dir.glob("#{@dir_name}/*.{markdown,md,html}")
97
+ in_files.sort.each do |file|
98
+ in_lines = IO.readlines(file).join('')
99
+ is_markdown = (file =~ /markdown$/) || (file =~ /md$/)
100
+ out_fname = file[/^.*\./]
101
+ out_f = File.new("output/#{out_fname}html", 'w')
102
+ if is_markdown
103
+ in_lines.gsub!(/(\{\{[\/a-zA-Z0-9:_]+(?>\.[a-z:_A-Z0-9]{2,}){0,3}\}\})/) do |f_name_match|
104
+ puts "Merging #{f_name_match}"
105
+ f_name = f_name_match[2..-3]
106
+ build_md_merged_file_content(f_name)
107
+ end
108
+ out_f << processMarkdown(in_lines)
109
+ else
110
+ out_f << in_lines.gsub(/(\{\{[\/a-zA-Z0-9_]+(?>\.[a-zA-Z0-9]{2,}){0,3}\}\})/) do |f_name_match|
111
+ puts "Merging #{f_name_match}"
112
+ f_name = f_name_match[2..-3]
113
+ build_html_merged_file_content(f_name)
114
+ end
115
+ end
116
+ end
117
+ end
118
+ def processMarkdown(text)
119
+ @markdown ||= Redcarpet::Markdown.new(HTMLwithAlbino.new,
120
+ :autolink => true, :space_after_headers => true, :superscript => true,
121
+ :fenced_code_blocks => true, :tables => true, :no_intra_emphasis => true)
122
+ result = @markdown.render(text)
123
+ result
124
+ end
125
+ end
126
+ end
@@ -1,43 +1,9 @@
1
+ require 'codemerger'
1
2
  namespace "codemerger" do
2
3
  desc "Merge all the markdown files and the source files to create the output/post.html file"
3
4
  task :merge do
4
- require 'fileutils'
5
- FileUtils.rm_rf 'output'
6
- FileUtils.mkdir_p 'output'
7
- in_files = Dir.glob("*.{markdown,html}")
8
- in_files.sort.each do |file|
9
- in_lines = IO.readlines(file).join('')
10
- in_lines = Maruku.new(in_lines).to_html if file =~ /markdown$/
11
- out_fname = file[/^.*\./]
12
- out_f = File.new("output/#{out_fname}html", 'w')
13
- out_f << in_lines.gsub(/(\{\{[\/a-zA-Z0-9_]+(?>\.[a-zA-Z0-9]{2,}){0,3}\}\})/) do |f_name_match|
14
- f_name = f_name_match[2..-3]
15
- ext = f_name[/(\.[a-zA-Z]+)/]
16
- lang_str = case ext
17
- when ".yml"; "lang=\"yaml\""
18
- when ".xml"; "lang=\"xml\""
19
- when ".html"; "lang=\"xml\""
20
- when ".rb"; "lang=\"ruby\""
21
- when ".java"; "lang=\"java\""
22
- when ".scala"; "lang=\"scala\""
23
- when ".erb"; "lang=\"ruby\""
24
- when ".xsl"; "lang=\"xml\""
25
- when ".css"; "lang=\"css\""
26
- when ".js"; "lang=\"javascript\""
27
- when ".sh"; "lang=\"bash\""
28
- when ".bat"; "lang=\"batch\""
29
- when ".xhtml"; "lang=\"xml\""
30
- when nil; "lang=\"ruby\""
31
- else; "lang=\"text\""
32
- end
33
-
34
- <<_EOF_
35
- <b>#{f_name}</b>
36
- <pre line="1" #{lang_str}>
37
- #{IO.readlines(f_name).join('')}
38
- </pre>
39
- _EOF_
40
- end
41
- end
5
+ @merger = Codemerger::Merger.new '.'
6
+ @merger.clean_dirs
7
+ @merger.process_files
42
8
  end
43
9
  end
@@ -1,3 +1,3 @@
1
1
  module Codemerger
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.2"
3
3
  end
@@ -0,0 +1,53 @@
1
+ require 'minitest/autorun'
2
+ require 'codemerger'
3
+
4
+ describe Codemerger::Merger do
5
+ def setup
6
+ @merger = Codemerger::Merger.new 'test'
7
+ end
8
+ it "should return the correct language string" do
9
+ @merger.get_language_str(".yml").must_equal "yaml"
10
+ @merger.get_language_str(".xml").must_equal "xml"
11
+ @merger.get_language_str(".html").must_equal "xml"
12
+ @merger.get_language_str(".rb").must_equal "ruby"
13
+ @merger.get_language_str(".java").must_equal "java"
14
+ @merger.get_language_str(".scala").must_equal "scala"
15
+ @merger.get_language_str(".erb").must_equal "erb"
16
+ @merger.get_language_str(".xsl").must_equal "xslt"
17
+ @merger.get_language_str(".css").must_equal "css"
18
+ @merger.get_language_str(".js").must_equal "javascript"
19
+ @merger.get_language_str(".sh").must_equal "bash"
20
+ @merger.get_language_str(".bat").must_equal "batch"
21
+ @merger.get_language_str(".xhtml").must_equal "xml"
22
+ @merger.get_language_str(nil).must_equal "ruby"
23
+ @merger.get_language_str("niaaa").must_equal "text"
24
+ @merger.get_language_str(".coffee").must_equal "coffeescript"
25
+ @merger.get_language_str(".scss").must_equal "scss"
26
+ end
27
+ it "should delete and re-create the output directory" do
28
+ FileUtils.mkdir_p 'output'
29
+ out_f = File.new("output/temp.txt", 'w')
30
+ out_f << "content"
31
+ out_f.close
32
+ @merger.clean_dirs
33
+ File.exists?("output/temp.txt").must_equal false
34
+ end
35
+ it "should return the correctly formated output for an embedded file" do
36
+ expected = %Q{
37
+ <b>test/sample.rb</b>
38
+ <pre line="1" lang="ruby">
39
+ def sample
40
+ println "sample"
41
+ end
42
+ </pre>
43
+ }
44
+ actual = @merger.build_html_merged_file_content('test/sample.rb')
45
+ expected.must_equal actual
46
+ end
47
+ it "should process HTML and Markdown files" do
48
+ @merger.process_files
49
+ File.exists?("output/test/test.html").must_equal true
50
+ File.exists?("output/test/test2.html").must_equal true
51
+ puts File.new("output/test/test2.html").read
52
+ end
53
+ end
@@ -0,0 +1,3 @@
1
+ def sample
2
+ println "sample"
3
+ end
@@ -0,0 +1 @@
1
+ {{test/sample.rb}}
@@ -0,0 +1,9 @@
1
+ {{test/sample.rb}}
2
+
3
+ ````ruby
4
+ def a(b)
5
+ puts b
6
+ end
7
+ ````
8
+
9
+ Bloco colorido?
@@ -0,0 +1,8 @@
1
+ require 'minitest/autorun'
2
+ require 'codemerger/version'
3
+
4
+ describe Codemerger do
5
+ it "should return the correct version number" do
6
+ "0.2.2".must_equal Codemerger::VERSION
7
+ end
8
+ end
metadata CHANGED
@@ -1,28 +1,50 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codemerger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
5
- prerelease: !!null
4
+ version: 0.3.2
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Rodrigo Urubatan
9
- autorequire: !!null
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-02-20 00:00:00.000000000 -03:00
13
- default_executable: !!null
12
+ date: 2011-10-10 00:00:00.000000000 -03:00
13
+ default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- name: maruku
17
- requirement: &19950852 !ruby/object:Gem::Requirement
16
+ name: redcarpet
17
+ requirement: &2157414700 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - =
21
+ - !ruby/object:Gem::Version
22
+ version: 2.0.0b3
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *2157414700
26
+ - !ruby/object:Gem::Dependency
27
+ name: albino
28
+ requirement: &2157413920 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - =
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.3
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *2157413920
37
+ - !ruby/object:Gem::Dependency
38
+ name: simplecov
39
+ requirement: &2157413100 !ruby/object:Gem::Requirement
18
40
  none: false
19
41
  requirements:
20
42
  - - ! '>='
21
43
  - !ruby/object:Gem::Version
22
44
  version: '0'
23
- type: :runtime
45
+ type: :development
24
46
  prerelease: false
25
- version_requirements: *19950852
47
+ version_requirements: *2157413100
26
48
  description: ! "This gem is used to help writing technical posts for wordpress.\n
27
49
  \ The output is copied and pasted to a post into my wordpress blog, and the code
28
50
  gets colored using the plugin wp-syntax, and the output can be turned into PDF with
@@ -38,18 +60,25 @@ files:
38
60
  - .Gemfile.swp
39
61
  - .codemerger.gemspec.swp
40
62
  - .gitignore
63
+ - .rvmrc
41
64
  - Gemfile
42
65
  - Gemfile.lock
43
66
  - README.markdown
44
67
  - Rakefile
45
68
  - codemerger.gemspec
46
69
  - lib/codemerger.rb
70
+ - lib/codemerger/merger.rb
47
71
  - lib/codemerger/rake_tasks.rb
48
72
  - lib/codemerger/version.rb
73
+ - test/merger_spec.rb
74
+ - test/sample.rb
75
+ - test/test.html
76
+ - test/test2.markdown
77
+ - test/version_spec.rb
49
78
  has_rdoc: true
50
79
  homepage: https://github.com/urubatan/codemerger
51
80
  licenses: []
52
- post_install_message: !!null
81
+ post_install_message:
53
82
  rdoc_options: []
54
83
  require_paths:
55
84
  - lib
@@ -59,18 +88,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
59
88
  - - ! '>='
60
89
  - !ruby/object:Gem::Version
61
90
  version: '0'
91
+ segments:
92
+ - 0
93
+ hash: -2316311512102027505
62
94
  required_rubygems_version: !ruby/object:Gem::Requirement
63
95
  none: false
64
96
  requirements:
65
97
  - - ! '>='
66
98
  - !ruby/object:Gem::Version
67
99
  version: '0'
100
+ segments:
101
+ - 0
102
+ hash: -2316311512102027505
68
103
  requirements: []
69
104
  rubyforge_project: codemerger
70
- rubygems_version: 1.5.0
71
- signing_key: !!null
105
+ rubygems_version: 1.6.2
106
+ signing_key:
72
107
  specification_version: 3
73
108
  summary: Used to create blog posts and tecnical articles that need code samples, the
74
109
  code samples will be taken from the actual source code file instead of a copy paste
75
110
  approach
76
- test_files: []
111
+ test_files:
112
+ - test/merger_spec.rb
113
+ - test/sample.rb
114
+ - test/test.html
115
+ - test/test2.markdown
116
+ - test/version_spec.rb