markup_parser 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/markup_parser/markdown/class_methods.rb +0 -0
- data/lib/markup_parser/markdown/string_extensions.rb +33 -0
- data/lib/markup_parser/markdown/uv_html_render.rb +7 -0
- data/lib/markup_parser/version.rb +1 -1
- data/specs/markup_parser_spec.rb +81 -0
- data/specs/markup_parsers/default_spec.rb +28 -0
- data/specs/markup_parsers/other_spec.rb +34 -0
- data/specs/markup_parsers/parser_files/README.markdown +2 -0
- data/specs/markup_parsers/parser_files/README.markdown.html +4 -0
- data/specs/markup_parsers/parser_files/README.rdoc +6 -0
- data/specs/markup_parsers/parser_files/README.rdoc.html +11 -0
- metadata +23 -13
File without changes
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Adds classes to String class...
|
2
|
+
class String
|
3
|
+
puts "\n**************\nString Extensions loaded\n**************\n"
|
4
|
+
|
5
|
+
# Corrects the gh code block syntax mistake where one would write '~~~ .ruby'
|
6
|
+
# and the correct code should be '~~~ruby'
|
7
|
+
def correct_gh_code_syntax!
|
8
|
+
self.gsub!(/~~~\s\.([a-zA-Z]*)/, '~~~\1')
|
9
|
+
end
|
10
|
+
|
11
|
+
# Corrects the ol list elements: which only except the syntax: '1. ...'.
|
12
|
+
# Corrected syntaxes: '1)'
|
13
|
+
def correct_ol_list_parenth!
|
14
|
+
self.gsub!(/(\s*)(\d)\)/,'\1\2.')
|
15
|
+
end
|
16
|
+
|
17
|
+
# Converts tabs (\t) to 2 spaces
|
18
|
+
def convert_tabs_to_spaces!
|
19
|
+
self.gsub!(/\t/, " ")
|
20
|
+
end
|
21
|
+
|
22
|
+
# Standardize line endings
|
23
|
+
def standardize_newlines!
|
24
|
+
self.gsub!("\r\n", "\n")
|
25
|
+
self.gsub!("\r", "\n")
|
26
|
+
end
|
27
|
+
|
28
|
+
# Corrects the newlines by stripping the leading whitespace.
|
29
|
+
# NOTE: this is a hack to workaround the strange Gollum editor indentation behavior
|
30
|
+
def sub_newlines!
|
31
|
+
self.gsub!(/([\r\n|\n])[\ ]*(.)/,'\1\2')
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
3
|
+
require 'markup_parser'
|
4
|
+
|
5
|
+
describe MarkupParser do
|
6
|
+
before do
|
7
|
+
create_test_markup_parser
|
8
|
+
MarkupParser.reload_parsers
|
9
|
+
end
|
10
|
+
after do
|
11
|
+
tear_down_test_markup_parser
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "PARSER_PATH" do
|
15
|
+
it "is a string" do
|
16
|
+
MarkupParser::PARSER_PATH.must_be_instance_of String
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "formats" do
|
21
|
+
it "returns all formats" do
|
22
|
+
MarkupParser.formats.must_be_instance_of Array
|
23
|
+
MarkupParser.formats.must_include "test_markup"
|
24
|
+
end
|
25
|
+
it "wont include 'version'" do
|
26
|
+
MarkupParser.formats.wont_include "version"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "parsers" do
|
31
|
+
it "returns all formats" do
|
32
|
+
MarkupParser.parsers.must_be_instance_of Array
|
33
|
+
MarkupParser.parsers.must_include MarkupParser::TestMarkup
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "format_parsers" do
|
38
|
+
it "returns a hash with format {'format': Class}" do
|
39
|
+
MarkupParser.format_parsers.must_be_instance_of Hash
|
40
|
+
MarkupParser.format_parsers['test_markup'].must_equal MarkupParser::TestMarkup
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
|
46
|
+
def create_test_markup_parser
|
47
|
+
test_markup_contents = <<-CONTENT
|
48
|
+
module MarkupParser
|
49
|
+
class TestMarkup < MarkupParser::Default
|
50
|
+
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
# Markup specific Parser invokation
|
55
|
+
def parse(text)
|
56
|
+
text + " was parsed"
|
57
|
+
end
|
58
|
+
|
59
|
+
# Performs my html hotfixes
|
60
|
+
def hot_fixes(text)
|
61
|
+
text = text + " was hotfixed"
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
66
|
+
CONTENT
|
67
|
+
output = %x[
|
68
|
+
cd #{MarkupParser::PARSER_PATH}
|
69
|
+
touch test_markup.rb
|
70
|
+
echo \'#{test_markup_contents}\' > test_markup.rb
|
71
|
+
]
|
72
|
+
#puts output
|
73
|
+
end
|
74
|
+
|
75
|
+
def tear_down_test_markup_parser
|
76
|
+
output = %x[
|
77
|
+
cd #{MarkupParser::PARSER_PATH}
|
78
|
+
rm test_markup.rb
|
79
|
+
]
|
80
|
+
#puts output
|
81
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
|
3
|
+
require 'markup_parser'
|
4
|
+
|
5
|
+
describe MarkupParser::Default do
|
6
|
+
|
7
|
+
class MarkupParser::Default
|
8
|
+
def hot_fixes(text)
|
9
|
+
text + ' hot_fixes'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "initialize" do
|
14
|
+
it "accets 1 argument" do
|
15
|
+
MarkupParser::Default.new('arg1').must_be_instance_of MarkupParser::Default
|
16
|
+
Proc.new {MarkupParser::Default.new('arg1','arg2')}.must_raise ArgumentError
|
17
|
+
end
|
18
|
+
it "calls hot_fixes" do
|
19
|
+
MarkupParser::Default.new('arg1').original_text.must_match "hot_fixes"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
|
24
|
+
it "successfully outputs text" do
|
25
|
+
MarkupParser::Default.new('test text').to_html.must_match /test text/
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
|
3
|
+
require 'markup_parser'
|
4
|
+
|
5
|
+
describe "other markup_parsers" do #'specs/markup_parsers/parser_files/README.*'
|
6
|
+
Dir[File.join(File.dirname(__FILE__), 'parser_files','README.*')].each do |readme|
|
7
|
+
next if readme =~ /html$/
|
8
|
+
format = readme.split('/').last.gsub(/^README\./, '')
|
9
|
+
|
10
|
+
define_method "#{format}_spec" do
|
11
|
+
source = File.read(readme)
|
12
|
+
|
13
|
+
expected_file = "#{readme}.html"
|
14
|
+
expected = File.read(expected_file)
|
15
|
+
parser_class = MarkupParser.format_parsers[format]
|
16
|
+
actual = parser_class.new(File.read(readme))
|
17
|
+
|
18
|
+
if source != expected
|
19
|
+
source.wont_equal actual, "#{format} did not render anything"
|
20
|
+
end
|
21
|
+
|
22
|
+
diff = IO.popen("diff -u - #{expected_file}", 'r+') do |f|
|
23
|
+
f.write actual
|
24
|
+
f.close_write
|
25
|
+
f.read
|
26
|
+
end
|
27
|
+
|
28
|
+
actual.must_equal expected, <<-message
|
29
|
+
#{File.basename expected_file}'s contents don't match command output:
|
30
|
+
#{diff}
|
31
|
+
message
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<ul><li>
|
2
|
+
<p>One</p>
|
3
|
+
</li><li>
|
4
|
+
<p>Two</p>
|
5
|
+
</li></ul>
|
6
|
+
|
7
|
+
<p>This is an <a href="http://github.com">absolute link</a>. So is this: <a
|
8
|
+
href="http://github.com">github.com</a></p>
|
9
|
+
|
10
|
+
<p>This is a <a href="rawr.html">relative link</a>. So is this: <a
|
11
|
+
href="rawr.html">rawr.html</a></p>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: markup_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-09-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: redcarpet
|
16
|
-
requirement: &
|
16
|
+
requirement: &70189660941240 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.0.0b5
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70189660941240
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: nokogiri
|
27
|
-
requirement: &
|
27
|
+
requirement: &70189660940820 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70189660940820
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: uv
|
38
|
-
requirement: &
|
38
|
+
requirement: &70189660940340 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70189660940340
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: rdoc
|
49
|
-
requirement: &
|
49
|
+
requirement: &70189660939580 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70189660939580
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rake
|
60
|
-
requirement: &
|
60
|
+
requirement: &70189660939000 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70189660939000
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: minitest
|
71
|
-
requirement: &
|
71
|
+
requirement: &70189660938400 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70189660938400
|
80
80
|
description: ! 'Standardized markup parsers to use a single format: an object. Instantiate
|
81
81
|
a specific markup class with text to output formated Html. Allows for easy code
|
82
82
|
block highlighting using a Proc; defaults to Uv (ruby Ultraviolet)'
|
@@ -93,9 +93,19 @@ files:
|
|
93
93
|
- lib/markup_parser/default.rb
|
94
94
|
- lib/markup_parser/html.rb
|
95
95
|
- lib/markup_parser/markdown.rb
|
96
|
+
- lib/markup_parser/markdown/class_methods.rb
|
97
|
+
- lib/markup_parser/markdown/string_extensions.rb
|
98
|
+
- lib/markup_parser/markdown/uv_html_render.rb
|
96
99
|
- lib/markup_parser/rdoc.rb
|
97
100
|
- lib/markup_parser/version.rb
|
98
101
|
- markup_parser.gemspec
|
102
|
+
- specs/markup_parser_spec.rb
|
103
|
+
- specs/markup_parsers/default_spec.rb
|
104
|
+
- specs/markup_parsers/other_spec.rb
|
105
|
+
- specs/markup_parsers/parser_files/README.markdown
|
106
|
+
- specs/markup_parsers/parser_files/README.markdown.html
|
107
|
+
- specs/markup_parsers/parser_files/README.rdoc
|
108
|
+
- specs/markup_parsers/parser_files/README.rdoc.html
|
99
109
|
homepage: https://github.com/chaffeqa/markup_parser
|
100
110
|
licenses: []
|
101
111
|
post_install_message:
|