flannel 0.2.10 → 0.2.11

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/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 2
4
- :patch: 10
4
+ :patch: 11
5
5
  :build:
data/flannel.gemspec CHANGED
@@ -5,13 +5,14 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{flannel}
8
- s.version = "0.2.10"
8
+ s.version = "0.2.11"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jamal Hansen"]
12
- s.date = %q{2010-02-23}
12
+ s.date = %q{2010-02-24}
13
+ s.default_executable = %q{quilt-it}
13
14
  s.email = %q{jamal.hansen@gmail.com}
14
- s.executables = ["quilt-it~", "quilt-it"]
15
+ s.executables = ["quilt-it"]
15
16
  s.extra_rdoc_files = [
16
17
  "LICENSE",
17
18
  "README.rdoc"
@@ -62,6 +63,7 @@ Gem::Specification.new do |s|
62
63
  "test/base_block_html_generation_test.rb",
63
64
  "test/base_block_test.rb",
64
65
  "test/block_cutter_test.rb",
66
+ "test/block_parser_styles_test.rb",
65
67
  "test/block_parser_test.rb",
66
68
  "test/feed_parser_test.rb",
67
69
  "test/file_cache_test.rb",
@@ -73,7 +75,7 @@ Gem::Specification.new do |s|
73
75
  s.rdoc_options = ["--charset=UTF-8"]
74
76
  s.require_paths = ["lib"]
75
77
  s.rubyforge_project = %q{flannel}
76
- s.rubygems_version = %q{1.3.5}
78
+ s.rubygems_version = %q{1.3.6}
77
79
  s.summary = %q{A soft comfortable worn in markup language for Ruby}
78
80
  s.test_files = [
79
81
  "test/html_formatter_test.rb",
@@ -81,6 +83,7 @@ Gem::Specification.new do |s|
81
83
  "test/test_helper.rb",
82
84
  "test/file_cache_test.rb",
83
85
  "test/base_block_test.rb",
86
+ "test/block_parser_styles_test.rb",
84
87
  "test/block_parser_test.rb",
85
88
  "test/feed_parser_test.rb",
86
89
  "test/flannel_test.rb",
@@ -16,7 +16,7 @@ grammar Block
16
16
  end
17
17
 
18
18
  rule block_header
19
- block_start block_type block_id parent_id? attribute_list? [\n]* {
19
+ block_start block_type block_id? parent_id? attribute_list? [\n]* {
20
20
  def content
21
21
  elements.map{ |element| element.respond_to?(:content) ? element.content : nil}.compact
22
22
  end
@@ -40,7 +40,7 @@ grammar Block
40
40
  end
41
41
 
42
42
  rule block_type
43
- ( paragraph / feed / preformatted / list / header ) {
43
+ ( paragraph / feed / preformatted / list / header / blockquote ) {
44
44
  def content
45
45
  [:block_type, text_value.to_sym ]
46
46
  end
@@ -79,7 +79,9 @@ grammar Block
79
79
  "header_six" { def content; text_value; end }
80
80
  end
81
81
 
82
-
82
+ rule blockquote
83
+ "blockquote" { def content; text_value; end }
84
+ end
83
85
 
84
86
  rule feed
85
87
  "feed" { def content; text_value; end }
@@ -18,6 +18,16 @@ class BlockCutterTest < Test::Unit::TestCase
18
18
  assert_equal "baz", blocks[1].id
19
19
 
20
20
  end
21
+
22
+ should "accept a block without an id" do
23
+ markup = ":paragraph\n some text"
24
+
25
+ blocks = @block_cutter.cut markup
26
+ assert_equal 1, blocks.length
27
+
28
+ assert_equal :paragraph, blocks[0].type
29
+ assert_nil blocks[0].id
30
+ end
21
31
 
22
32
  should "not split preformatted text based on blank lines" do
23
33
  markup = ":preformatted my_preformatted\n foo\n\nbar\n"
@@ -52,5 +62,23 @@ class BlockCutterTest < Test::Unit::TestCase
52
62
  blocks = @block_cutter.cut markup
53
63
  assert_equal :feed, blocks[0].type
54
64
  end
65
+
66
+ should "parse a paragraph with a simple wiki link" do
67
+ markup = ":paragraph\n-ravioli>"
68
+
69
+ blocks = @block_cutter.cut markup
70
+ assert_equal :paragraph, blocks[0].type
71
+ assert_nil blocks[0].id
72
+ assert_equal '-ravioli>', blocks[0].text
73
+ end
74
+
75
+ should "parse a simple paragraph" do
76
+ markup = ":paragraph\nbar bar\n"
77
+
78
+ blocks = @block_cutter.cut markup
79
+ assert_equal :paragraph, blocks[0].type
80
+ assert_nil blocks[0].id
81
+ assert_equal "bar bar", blocks[0].text
82
+ end
55
83
  end
56
84
  end
@@ -0,0 +1,75 @@
1
+ require 'test_helper'
2
+
3
+ class BlockParserStylesTest < Test::Unit::TestCase
4
+ def setup
5
+ @parser = BlockParser.new
6
+ end
7
+
8
+ def test_paragraph
9
+ doc = @parser.parse(":paragraph\ntext")
10
+
11
+ assert_doc doc, :paragraph, nil, "text"
12
+ end
13
+
14
+ def test_list
15
+ doc = @parser.parse(":list\ntext")
16
+
17
+ assert_doc doc, :list, nil, "text"
18
+ end
19
+
20
+ def test_feed
21
+ doc = @parser.parse(":feed\ntext")
22
+
23
+ assert_doc doc, :feed, nil, "text"
24
+ end
25
+
26
+ def test_blockquote
27
+ doc = @parser.parse(":blockquote\ntext")
28
+
29
+ assert_doc doc, :blockquote, nil, "text"
30
+ end
31
+
32
+ def test_preformatted
33
+ doc = @parser.parse(":preformatted\ntext")
34
+
35
+ assert_doc doc, :preformatted, nil, "text"
36
+ end
37
+
38
+ def test_header_one
39
+ doc = @parser.parse(":header_one\ntext")
40
+
41
+ assert_doc doc, :header_one, nil, "text"
42
+ end
43
+
44
+ def test_header_two
45
+ doc = @parser.parse(":header_two\ntext")
46
+
47
+ assert_doc doc, :header_two, nil, "text"
48
+ end
49
+
50
+ def test_header_three
51
+ doc = @parser.parse(":header_three\ntext")
52
+
53
+ assert_doc doc, :header_three, nil, "text"
54
+ end
55
+
56
+ def test_header_four
57
+ doc = @parser.parse(":header_four\ntext")
58
+
59
+ assert_doc doc, :header_four, nil, "text"
60
+ end
61
+
62
+ def test_header_five
63
+ doc = @parser.parse(":header_five\ntext")
64
+
65
+ assert_doc doc, :header_five, nil, "text"
66
+ end
67
+
68
+ def test_header_six
69
+ doc = @parser.parse(":header_six\ntext")
70
+
71
+ assert_doc doc, :header_six, nil, "text"
72
+ end
73
+
74
+ end
75
+
@@ -16,6 +16,12 @@ class BlockParserTest < Test::Unit::TestCase
16
16
  assert_doc doc, :paragraph, "wonki", "text"
17
17
  end
18
18
 
19
+ def test_parser_returns_simple_block_without_id
20
+ doc = @parser.parse(":paragraph\ntext")
21
+
22
+ assert_doc doc, :paragraph, nil, "text"
23
+ end
24
+
19
25
  def test_parser_returns_block_with_dashed_block_id
20
26
  doc = @parser.parse(":paragraph wonki-donki\ntext")
21
27
 
@@ -5,19 +5,19 @@ class FileCacheTest < Test::Unit::TestCase
5
5
  context "Creating File cache" do
6
6
  should "require a location" do
7
7
  begin
8
- cache = Flannel::FileCache.new
9
- assert_fail "should have raised ArgumentError"
8
+ cache = Flannel::FileCache.new
9
+ assert_fail "should have raised ArgumentError"
10
10
  rescue ArgumentError => e
11
- assert true
11
+ assert true
12
12
  end
13
13
  end
14
14
 
15
15
  should "require a valid location" do
16
16
  begin
17
- cache = Flannel::FileCache.new "foo/bar"
18
- assert_fail "should have raised Flannel::CacheLocationDoesNotExistError"
17
+ cache = Flannel::FileCache.new "foo/bar"
18
+ assert_fail "should have raised Flannel::CacheLocationDoesNotExistError"
19
19
  rescue Flannel::CacheLocationDoesNotExistError => e
20
- assert true
20
+ assert true
21
21
  end
22
22
  end
23
23
  end
@@ -29,10 +29,10 @@ class FileCacheTest < Test::Unit::TestCase
29
29
 
30
30
  should "be private" do
31
31
  begin
32
- key = @cache.generate_key "http://example.com"
33
- assert_fail "generate_key should be private"
32
+ key = @cache.generate_key "http://example.com"
33
+ assert_fail "generate_key should be private"
34
34
  rescue NoMethodError => e
35
- assert true
35
+ assert true
36
36
  end
37
37
  end
38
38
 
data/test/flannel_test.rb CHANGED
@@ -17,6 +17,12 @@ class FlannelTest < Test::Unit::TestCase
17
17
  end
18
18
 
19
19
  context "basic behavior" do
20
+
21
+ should "parse a block without an id" do
22
+ markup = ":paragraph\n this is my paragraph"
23
+ assert_equal "<p>this is my paragraph</p>", Flannel.quilt(markup)
24
+ end
25
+
20
26
  should "strip and convert underscores to pre tags" do
21
27
  markup = ":preformatted foo\nfoo\n\n bar\n"
22
28
  assert_equal "<pre id='foo'>foo\n\n bar\n</pre>", Flannel.quilt(markup)
@@ -53,4 +59,13 @@ class FlannelTest < Test::Unit::TestCase
53
59
  assert_equal result, Flannel.quilt(markup)
54
60
  end
55
61
  end
62
+
63
+ context "bug fixes" do
64
+ should "parse a simple paragraph" do
65
+ markup = ":paragraph\nbar bar\n"
66
+ result = "<p>bar bar</p>"
67
+
68
+ assert_equal result, Flannel.quilt(markup)
69
+ end
70
+ end
56
71
  end
@@ -12,72 +12,72 @@ class HtmlFormatterTest < Test::Unit::TestCase
12
12
 
13
13
  context "subdirectories" do
14
14
  should "handle subdirectories and not display directory info" do
15
- result = @formatter.do("I think it -cheese/tastes good>.", :paragraph)
16
- assert_equal '<p>I think it <a href="cheese/tastes-good">tastes good</a>.</p>', result
15
+ result = @formatter.do("I think it -cheese/tastes good>.", :paragraph)
16
+ assert_equal '<p>I think it <a href="cheese/tastes-good">tastes good</a>.</p>', result
17
17
  end
18
18
  end
19
19
 
20
20
  context "blockquotes" do
21
21
  should "wrap a blockquoted block in blockquotes" do
22
- result = @formatter.do("Ruby is #1", :blockquote)
23
- assert_equal '<blockquote>Ruby is #1</blockquote>', result
22
+ result = @formatter.do("Ruby is #1", :blockquote)
23
+ assert_equal '<blockquote>Ruby is #1</blockquote>', result
24
24
  end
25
25
  end
26
26
 
27
27
  context "links" do
28
28
  should "output the link" do
29
- assert_equal '<p><a href="cheese">cheese</a></p>', @formatter.do("-cheese>", :paragraph)
29
+ assert_equal '<p><a href="cheese">cheese</a></p>', @formatter.do("-cheese>", :paragraph)
30
30
  end
31
31
 
32
32
  should "hyphenate words" do
33
- result = @formatter.do("-cheese is good>", :paragraph)
34
- assert_equal '<p><a href="cheese-is-good">cheese is good</a></p>', result
33
+ result = @formatter.do("-cheese is good>", :paragraph)
34
+ assert_equal '<p><a href="cheese-is-good">cheese is good</a></p>', result
35
35
  end
36
36
 
37
37
  should "replace text surrounded by - and > with a wiki link" do
38
- result = @formatter.do("red, -green>, refactor", :paragraph)
39
- assert_equal '<p>red, <a href="green">green</a>, refactor</p>',result
38
+ result = @formatter.do("red, -green>, refactor", :paragraph)
39
+ assert_equal '<p>red, <a href="green">green</a>, refactor</p>',result
40
40
  end
41
41
 
42
42
  should "not replace text surrounded by - and > with a wiki link if spaced" do
43
- result = @formatter.do("red, - green >, refactor", :paragraph)
44
- assert_equal '<p>red, - green >, refactor</p>', result
43
+ result = @formatter.do("red, - green >, refactor", :paragraph)
44
+ assert_equal '<p>red, - green >, refactor</p>', result
45
45
  end
46
46
 
47
47
  should "not replace text surrounded by - and > with a wiki link if spaced on right" do
48
- result = @formatter.do("red, -green >, refactor", :paragraph)
49
- assert_equal '<p>red, -green >, refactor</p>', result
48
+ result = @formatter.do("red, -green >, refactor", :paragraph)
49
+ assert_equal '<p>red, -green >, refactor</p>', result
50
50
  end
51
51
 
52
52
  should "not replace surrounded by - and > with a wiki link if spaced on left" do
53
- result = @formatter.do("red, - green>, refactor", :paragraph)
54
- assert_equal '<p>red, - green>, refactor</p>', result
53
+ result = @formatter.do("red, - green>, refactor", :paragraph)
54
+ assert_equal '<p>red, - green>, refactor</p>', result
55
55
  end
56
56
  end
57
57
 
58
58
  context "preformatted text" do
59
59
  should "html escape preformatted text" do
60
- result = @formatter.do("<p>& foo</p>", :preformatted)
61
- assert_equal "<pre>&lt;p&gt;&amp; foo&lt;/p&gt;</pre>", result
60
+ result = @formatter.do("<p>& foo</p>", :preformatted)
61
+ assert_equal "<pre>&lt;p&gt;&amp; foo&lt;/p&gt;</pre>", result
62
62
  end
63
63
  end
64
64
 
65
65
  context "making permalinks" do
66
66
  should "replace spaces with dashes" do
67
- assert_equal "get-the-box", @formatter.permalink("get the box")
67
+ assert_equal "get-the-box", @formatter.permalink("get the box")
68
68
  end
69
69
 
70
70
  should "replace multiple spaces with single dashes" do
71
- assert_equal "get-the-box", @formatter.permalink("get the box")
71
+ assert_equal "get-the-box", @formatter.permalink("get the box")
72
72
  end
73
73
 
74
74
  should "replace odd characters with dashes" do
75
- assert_equal "get-the-box", @formatter.permalink("get the @#)(* box")
75
+ assert_equal "get-the-box", @formatter.permalink("get the @#)(* box")
76
76
  end
77
77
 
78
78
  should "not be greedy in matching" do
79
- result = @formatter.do "a -foo> and a -bar>.", :paragraph
80
- assert_equal '<p>a <a href="foo">foo</a> and a <a href="bar">bar</a>.</p>', result
79
+ result = @formatter.do "a -foo> and a -bar>.", :paragraph
80
+ assert_equal '<p>a <a href="foo">foo</a> and a <a href="bar">bar</a>.</p>', result
81
81
  end
82
82
  end
83
83
  end
data/test/test_helper.rb CHANGED
@@ -40,10 +40,12 @@ class Test::Unit::TestCase
40
40
  assert_equal :block_type, type[0]
41
41
  assert_equal expected_type, type[1]
42
42
 
43
- id = header.shift
44
- assert_equal 2, id.length
45
- assert_equal :block_id, id[0]
46
- assert_equal expected_id, id[1]
43
+ if expected_id
44
+ id = header.shift
45
+ assert_equal 2, id.length
46
+ assert_equal :block_id, id[0]
47
+ assert_equal expected_id, id[1]
48
+ end
47
49
 
48
50
  if expected_parent_id
49
51
  parent_id = header.shift
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flannel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.10
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 11
9
+ version: 0.2.11
5
10
  platform: ruby
6
11
  authors:
7
12
  - Jamal Hansen
@@ -9,53 +14,60 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-02-23 00:00:00 -06:00
13
- default_executable:
17
+ date: 2010-02-24 00:00:00 -06:00
18
+ default_executable: quilt-it
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: treetop
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :runtime
31
+ version_requirements: *id001
25
32
  - !ruby/object:Gem::Dependency
26
33
  name: polyglot
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
39
+ segments:
40
+ - 0
33
41
  version: "0"
34
- version:
42
+ type: :runtime
43
+ version_requirements: *id002
35
44
  - !ruby/object:Gem::Dependency
36
45
  name: shoulda
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
46
+ prerelease: false
47
+ requirement: &id003 !ruby/object:Gem::Requirement
40
48
  requirements:
41
49
  - - ">="
42
50
  - !ruby/object:Gem::Version
51
+ segments:
52
+ - 0
43
53
  version: "0"
44
- version:
54
+ type: :development
55
+ version_requirements: *id003
45
56
  - !ruby/object:Gem::Dependency
46
57
  name: mocha
47
- type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
58
+ prerelease: false
59
+ requirement: &id004 !ruby/object:Gem::Requirement
50
60
  requirements:
51
61
  - - ">="
52
62
  - !ruby/object:Gem::Version
63
+ segments:
64
+ - 0
53
65
  version: "0"
54
- version:
66
+ type: :development
67
+ version_requirements: *id004
55
68
  description:
56
69
  email: jamal.hansen@gmail.com
57
70
  executables:
58
- - quilt-it~
59
71
  - quilt-it
60
72
  extensions: []
61
73
 
@@ -108,6 +120,7 @@ files:
108
120
  - test/base_block_html_generation_test.rb
109
121
  - test/base_block_test.rb
110
122
  - test/block_cutter_test.rb
123
+ - test/block_parser_styles_test.rb
111
124
  - test/block_parser_test.rb
112
125
  - test/feed_parser_test.rb
113
126
  - test/file_cache_test.rb
@@ -127,18 +140,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
127
140
  requirements:
128
141
  - - ">="
129
142
  - !ruby/object:Gem::Version
143
+ segments:
144
+ - 0
130
145
  version: "0"
131
- version:
132
146
  required_rubygems_version: !ruby/object:Gem::Requirement
133
147
  requirements:
134
148
  - - ">="
135
149
  - !ruby/object:Gem::Version
150
+ segments:
151
+ - 0
136
152
  version: "0"
137
- version:
138
153
  requirements: []
139
154
 
140
155
  rubyforge_project: flannel
141
- rubygems_version: 1.3.5
156
+ rubygems_version: 1.3.6
142
157
  signing_key:
143
158
  specification_version: 3
144
159
  summary: A soft comfortable worn in markup language for Ruby
@@ -148,6 +163,7 @@ test_files:
148
163
  - test/test_helper.rb
149
164
  - test/file_cache_test.rb
150
165
  - test/base_block_test.rb
166
+ - test/block_parser_styles_test.rb
151
167
  - test/block_parser_test.rb
152
168
  - test/feed_parser_test.rb
153
169
  - test/flannel_test.rb