typedown 0.0.1 → 0.0.2
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/Rakefile +7 -0
- data/VERSION +1 -1
- data/lib/typedown.rb +1 -4
- data/lib/typedown/document.rb +1 -1
- data/lib/typedown/section.rb +69 -0
- data/test/helper.rb +10 -0
- data/test/test_document.rb +16 -0
- data/test/test_section.rb +29 -0
- data/typedown.gemspec +8 -5
- metadata +10 -7
- data/test/test_helper.rb +0 -3
- data/test/test_typedown.rb +0 -11
data/Rakefile
CHANGED
@@ -22,3 +22,10 @@ rescue LoadError
|
|
22
22
|
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
23
23
|
end
|
24
24
|
|
25
|
+
require 'rake/testtask'
|
26
|
+
Rake::TestTask.new(:test) do |test|
|
27
|
+
test.libs << 'lib' << 'test'
|
28
|
+
test.pattern = 'test/**/test_*.rb'
|
29
|
+
test.verbose = true
|
30
|
+
end
|
31
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/typedown.rb
CHANGED
data/lib/typedown/document.rb
CHANGED
@@ -0,0 +1,69 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Typedown
|
4
|
+
class Section < String
|
5
|
+
def initialize title, body
|
6
|
+
@title = (title || "").strip
|
7
|
+
@body = ""
|
8
|
+
@sections = []
|
9
|
+
if body
|
10
|
+
@body, @sections = sectionize(body)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def dummy?
|
15
|
+
(@title.empty?) && @body.empty? && subsections.length == 1
|
16
|
+
end
|
17
|
+
|
18
|
+
def title
|
19
|
+
@title
|
20
|
+
end
|
21
|
+
|
22
|
+
def body
|
23
|
+
b = Document.new @body
|
24
|
+
b << "\n\n"
|
25
|
+
subsections.each do |s|
|
26
|
+
b << s.doc
|
27
|
+
end
|
28
|
+
b
|
29
|
+
end
|
30
|
+
|
31
|
+
def doc
|
32
|
+
d = Document.new "! #{title}\n\n"
|
33
|
+
d << body.gsub(/^(!+ )/, '!\0')
|
34
|
+
d
|
35
|
+
end
|
36
|
+
|
37
|
+
def subsections
|
38
|
+
@sections
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.sectionize body, title = nil
|
42
|
+
s = nil
|
43
|
+
if title
|
44
|
+
s = Section.new title, body
|
45
|
+
else
|
46
|
+
s = Section.new "", body
|
47
|
+
s.dummy? ? s.subsections[0] : s
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def sectionize v
|
54
|
+
body, rest = v.split(/^! /, 2)
|
55
|
+
sections = []
|
56
|
+
|
57
|
+
if rest
|
58
|
+
rest.strip.split(/^! /).each do |s|
|
59
|
+
title, rest = s.split(/$/, 2)
|
60
|
+
rest.gsub!(/^!(!+ )/, "\\1")
|
61
|
+
|
62
|
+
sections << Section.new(title.strip, rest)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
[ body.strip, sections ]
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestDocument < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@doc = File.read("test/data/example.tpd")
|
6
|
+
end
|
7
|
+
|
8
|
+
def teardown
|
9
|
+
end
|
10
|
+
|
11
|
+
should "parse with no exceptions" do
|
12
|
+
assert_nothing_raised do
|
13
|
+
Typedown::Document.new @doc
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestSection < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@doc = File.read("test/data/example.tpd")
|
6
|
+
end
|
7
|
+
|
8
|
+
def teardown
|
9
|
+
end
|
10
|
+
|
11
|
+
should "parse with no exceptions" do
|
12
|
+
assert_nothing_raised do
|
13
|
+
s = Typedown::Section.new "Mail subject", @doc
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
should "reassemble doc with no exceptions using new" do
|
18
|
+
assert_nothing_raised do
|
19
|
+
s = Typedown::Section.new "Mail subject", @doc
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
should "reassemble doc with no exceptions using self.sectionize" do
|
24
|
+
assert_nothing_raised do
|
25
|
+
s = Typedown::Section.sectionize @doc, "Mail subject"
|
26
|
+
puts "\n\n", s.doc
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/typedown.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{typedown}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["wrimle"]
|
@@ -26,12 +26,14 @@ Gem::Specification.new do |s|
|
|
26
26
|
"bin/typedown",
|
27
27
|
"lib/typedown.rb",
|
28
28
|
"lib/typedown/document.rb",
|
29
|
+
"lib/typedown/section.rb",
|
29
30
|
"script/console",
|
30
31
|
"script/destroy",
|
31
32
|
"script/generate",
|
32
33
|
"test/data/example.tpd",
|
33
|
-
"test/
|
34
|
-
"test/
|
34
|
+
"test/helper.rb",
|
35
|
+
"test/test_document.rb",
|
36
|
+
"test/test_section.rb",
|
35
37
|
"typedown.gemspec"
|
36
38
|
]
|
37
39
|
s.homepage = %q{http://github.com/wrimle/typedown}
|
@@ -40,8 +42,9 @@ Gem::Specification.new do |s|
|
|
40
42
|
s.rubygems_version = %q{1.3.7}
|
41
43
|
s.summary = %q{A markdown dialect optimized for fast typing on mobile devices}
|
42
44
|
s.test_files = [
|
43
|
-
"test/
|
44
|
-
"test/
|
45
|
+
"test/test_document.rb",
|
46
|
+
"test/helper.rb",
|
47
|
+
"test/test_section.rb"
|
45
48
|
]
|
46
49
|
|
47
50
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: typedown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- wrimle
|
@@ -51,12 +51,14 @@ files:
|
|
51
51
|
- bin/typedown
|
52
52
|
- lib/typedown.rb
|
53
53
|
- lib/typedown/document.rb
|
54
|
+
- lib/typedown/section.rb
|
54
55
|
- script/console
|
55
56
|
- script/destroy
|
56
57
|
- script/generate
|
57
58
|
- test/data/example.tpd
|
58
|
-
- test/
|
59
|
-
- test/
|
59
|
+
- test/helper.rb
|
60
|
+
- test/test_document.rb
|
61
|
+
- test/test_section.rb
|
60
62
|
- typedown.gemspec
|
61
63
|
has_rdoc: true
|
62
64
|
homepage: http://github.com/wrimle/typedown
|
@@ -93,5 +95,6 @@ signing_key:
|
|
93
95
|
specification_version: 3
|
94
96
|
summary: A markdown dialect optimized for fast typing on mobile devices
|
95
97
|
test_files:
|
96
|
-
- test/
|
97
|
-
- test/
|
98
|
+
- test/test_document.rb
|
99
|
+
- test/helper.rb
|
100
|
+
- test/test_section.rb
|
data/test/test_helper.rb
DELETED