model_formatting 0.2.3.16 → 0.2.3.18
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 +1 -1
- data/lib/model_formatting.rb +2 -2
- data/test/formatting_test.rb +15 -0
- data/test/model_formatting_test.rb +0 -5
- metadata +31 -30
- data/lib/redcarpet_custom.rb +0 -27
data/Rakefile
CHANGED
data/lib/model_formatting.rb
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
require 'cgi'
|
|
2
2
|
require 'active_support' # NilClass#blank?
|
|
3
|
-
require 'redcarpet_custom'
|
|
4
3
|
module ModelFormatting
|
|
5
4
|
class Part < Array
|
|
6
5
|
attr_reader :format
|
|
@@ -191,7 +190,8 @@ module ModelFormatting
|
|
|
191
190
|
begin
|
|
192
191
|
require 'redcarpet'
|
|
193
192
|
def self.process_markdown(text)
|
|
194
|
-
|
|
193
|
+
renderer = Redcarpet::Render::HTML.new(:with_toc_data => true)
|
|
194
|
+
markdown = Redcarpet::Markdown.new(renderer,
|
|
195
195
|
:no_intra_emphasis => true,
|
|
196
196
|
:tables => true,
|
|
197
197
|
:fenced_code_blocks => true,
|
data/test/formatting_test.rb
CHANGED
|
@@ -62,6 +62,21 @@ module ModelFormatting
|
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
+
class SimpleWithToc < Base
|
|
66
|
+
formats :body do
|
|
67
|
+
white_list.allowed_attributes << 'id'
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
context "SimpleWithToc with formatting" do
|
|
72
|
+
it "creates anchors for titles" do
|
|
73
|
+
record = Simple.new
|
|
74
|
+
record.body = "# Title\n\nFoo."
|
|
75
|
+
record.save
|
|
76
|
+
record.formatted_body.should ==%(<div><h1 id="toc_0">Title</h1>\n<p>Foo.</p></div>)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
65
80
|
class BaseWithAfter < Base
|
|
66
81
|
formats :body do
|
|
67
82
|
after { |format, text, options| text }
|
|
@@ -7,11 +7,6 @@ class ModelFormattingTest < Test::Unit::TestCase
|
|
|
7
7
|
parts.first.class.should == ModelFormatting::FormattedPart
|
|
8
8
|
parts.first.should == 'foo'
|
|
9
9
|
end
|
|
10
|
-
|
|
11
|
-
it "generates TOC titles" do
|
|
12
|
-
ModelFormatting.process(:html, "# title one\n\n# title two\n\n## title one").should == \
|
|
13
|
-
"<div><a name=\"title-one\" class=\"anchor\" href=\"#title-one\" id=\n\"title-one\"></a>\n<h1 id=\"title-one\">title one</h1>\n<a name=\"title-two\" class=\"anchor\" href=\"#title-two\" id=\n\"title-two\"></a>\n<h1 id=\"title-two\">title two</h1>\n<a name=\"title-one_1\" class=\"anchor\" href=\"#title-one_1\" id=\n\"title-one_1\"></a>\n<h2 id=\"title-one_1\">title one</h2></div>"
|
|
14
|
-
end
|
|
15
10
|
|
|
16
11
|
it "parses empty code block into array of single CodeBlock" do
|
|
17
12
|
parts = ModelFormatting.parse_text_parts(nil, nil, "@@@ foo\n@@@")
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: model_formatting
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 119
|
|
5
5
|
prerelease:
|
|
6
6
|
segments:
|
|
7
7
|
- 0
|
|
8
8
|
- 2
|
|
9
9
|
- 3
|
|
10
|
-
-
|
|
11
|
-
version: 0.2.3.
|
|
10
|
+
- 18
|
|
11
|
+
version: 0.2.3.18
|
|
12
12
|
platform: ruby
|
|
13
13
|
authors:
|
|
14
14
|
- ENTP
|
|
@@ -16,10 +16,11 @@ autorequire:
|
|
|
16
16
|
bindir: bin
|
|
17
17
|
cert_chain: []
|
|
18
18
|
|
|
19
|
-
date: 2013-04-
|
|
19
|
+
date: 2013-04-22 00:00:00 -07:00
|
|
20
|
+
default_executable:
|
|
20
21
|
dependencies:
|
|
21
22
|
- !ruby/object:Gem::Dependency
|
|
22
|
-
|
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
|
23
24
|
none: false
|
|
24
25
|
requirements:
|
|
25
26
|
- - ~>
|
|
@@ -30,12 +31,12 @@ dependencies:
|
|
|
30
31
|
- 1
|
|
31
32
|
- 3
|
|
32
33
|
version: 1.1.3
|
|
33
|
-
|
|
34
|
-
prerelease: false
|
|
34
|
+
version_requirements: *id001
|
|
35
35
|
name: rack
|
|
36
|
+
prerelease: false
|
|
36
37
|
type: :runtime
|
|
37
38
|
- !ruby/object:Gem::Dependency
|
|
38
|
-
|
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
|
39
40
|
none: false
|
|
40
41
|
requirements:
|
|
41
42
|
- - ~>
|
|
@@ -45,12 +46,12 @@ dependencies:
|
|
|
45
46
|
- 2
|
|
46
47
|
- 2
|
|
47
48
|
version: "2.2"
|
|
48
|
-
|
|
49
|
-
prerelease: false
|
|
49
|
+
version_requirements: *id002
|
|
50
50
|
name: redcarpet
|
|
51
|
+
prerelease: false
|
|
51
52
|
type: :runtime
|
|
52
53
|
- !ruby/object:Gem::Dependency
|
|
53
|
-
|
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
|
54
55
|
none: false
|
|
55
56
|
requirements:
|
|
56
57
|
- - ~>
|
|
@@ -61,12 +62,12 @@ dependencies:
|
|
|
61
62
|
- 3
|
|
62
63
|
- 15
|
|
63
64
|
version: 2.3.15
|
|
64
|
-
|
|
65
|
-
prerelease: false
|
|
65
|
+
version_requirements: *id003
|
|
66
66
|
name: actionpack
|
|
67
|
+
prerelease: false
|
|
67
68
|
type: :runtime
|
|
68
69
|
- !ruby/object:Gem::Dependency
|
|
69
|
-
|
|
70
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
|
70
71
|
none: false
|
|
71
72
|
requirements:
|
|
72
73
|
- - ~>
|
|
@@ -77,12 +78,12 @@ dependencies:
|
|
|
77
78
|
- 3
|
|
78
79
|
- 15
|
|
79
80
|
version: 2.3.15
|
|
80
|
-
|
|
81
|
-
prerelease: false
|
|
81
|
+
version_requirements: *id004
|
|
82
82
|
name: activerecord
|
|
83
|
+
prerelease: false
|
|
83
84
|
type: :runtime
|
|
84
85
|
- !ruby/object:Gem::Dependency
|
|
85
|
-
|
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
|
86
87
|
none: false
|
|
87
88
|
requirements:
|
|
88
89
|
- - ~>
|
|
@@ -93,12 +94,12 @@ dependencies:
|
|
|
93
94
|
- 3
|
|
94
95
|
- 15
|
|
95
96
|
version: 2.3.15
|
|
96
|
-
|
|
97
|
-
prerelease: false
|
|
97
|
+
version_requirements: *id005
|
|
98
98
|
name: activesupport
|
|
99
|
+
prerelease: false
|
|
99
100
|
type: :runtime
|
|
100
101
|
- !ruby/object:Gem::Dependency
|
|
101
|
-
|
|
102
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
|
102
103
|
none: false
|
|
103
104
|
requirements:
|
|
104
105
|
- - ~>
|
|
@@ -109,12 +110,12 @@ dependencies:
|
|
|
109
110
|
- 1
|
|
110
111
|
- 2
|
|
111
112
|
version: 0.1.2
|
|
112
|
-
|
|
113
|
-
prerelease: false
|
|
113
|
+
version_requirements: *id006
|
|
114
114
|
name: tidy_ffi
|
|
115
|
+
prerelease: false
|
|
115
116
|
type: :runtime
|
|
116
117
|
- !ruby/object:Gem::Dependency
|
|
117
|
-
|
|
118
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
|
118
119
|
none: false
|
|
119
120
|
requirements:
|
|
120
121
|
- - ~>
|
|
@@ -125,12 +126,12 @@ dependencies:
|
|
|
125
126
|
- 5
|
|
126
127
|
- 5
|
|
127
128
|
version: 0.5.5
|
|
128
|
-
|
|
129
|
-
prerelease: false
|
|
129
|
+
version_requirements: *id007
|
|
130
130
|
name: jeremymcanally-context
|
|
131
|
+
prerelease: false
|
|
131
132
|
type: :development
|
|
132
133
|
- !ruby/object:Gem::Dependency
|
|
133
|
-
|
|
134
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
|
134
135
|
none: false
|
|
135
136
|
requirements:
|
|
136
137
|
- - ~>
|
|
@@ -141,9 +142,9 @@ dependencies:
|
|
|
141
142
|
- 1
|
|
142
143
|
- 0
|
|
143
144
|
version: 0.1.0
|
|
144
|
-
|
|
145
|
-
prerelease: false
|
|
145
|
+
version_requirements: *id008
|
|
146
146
|
name: jeremymcanally-matchy
|
|
147
|
+
prerelease: false
|
|
147
148
|
type: :development
|
|
148
149
|
description:
|
|
149
150
|
email: company@entp.com
|
|
@@ -163,12 +164,12 @@ files:
|
|
|
163
164
|
- lib/model_formatting/init.rb
|
|
164
165
|
- lib/model_formatting/instance_methods.rb
|
|
165
166
|
- lib/model_formatting.rb
|
|
166
|
-
- lib/redcarpet_custom.rb
|
|
167
167
|
- rails/init.rb
|
|
168
168
|
- test/fixtures/mkd-extraction.txt
|
|
169
169
|
- test/formatting_test.rb
|
|
170
170
|
- test/model_formatting_test.rb
|
|
171
171
|
- test/test_helper.rb
|
|
172
|
+
has_rdoc: true
|
|
172
173
|
homepage: http://github.com/entp
|
|
173
174
|
licenses: []
|
|
174
175
|
|
|
@@ -198,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
198
199
|
requirements: []
|
|
199
200
|
|
|
200
201
|
rubyforge_project:
|
|
201
|
-
rubygems_version: 1.
|
|
202
|
+
rubygems_version: 1.6.2
|
|
202
203
|
signing_key:
|
|
203
204
|
specification_version: 3
|
|
204
205
|
summary: Automatically format model attributes using redcarpet (markdown) and Tender/Lighthouse extensions.
|
data/lib/redcarpet_custom.rb
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
require 'redcarpet'
|
|
2
|
-
module Redcarpet::Render
|
|
3
|
-
class Custom < HTML
|
|
4
|
-
# include Redcarpet::Render::HTML
|
|
5
|
-
def header(title, level)
|
|
6
|
-
@headers ||= []
|
|
7
|
-
# you can use this permalink style: 1-foo-bar with the level in it
|
|
8
|
-
# permalink = "#{level}-#{title.gsub(/\W+/, "-")}"
|
|
9
|
-
|
|
10
|
-
# .. or just use title. you might like a better regex here, too
|
|
11
|
-
permalink = title.gsub(/\W+/, "-")
|
|
12
|
-
|
|
13
|
-
# for extra credit: implement this as its own method
|
|
14
|
-
if @headers.include?(permalink)
|
|
15
|
-
permalink += "_1"
|
|
16
|
-
# my brain hurts
|
|
17
|
-
loop do
|
|
18
|
-
break if !@headers.include?(permalink)
|
|
19
|
-
# generate titles like foo-bar_1, foo-bar_2
|
|
20
|
-
permalink.gsub!(/\_(\d+)$/, "_#{$1.to_i + 1}")
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
@headers << permalink
|
|
24
|
-
%(\n<a name="#{permalink}" class="anchor" href="##{permalink}"><span class="anchor-icon"></span></a><h#{level} id=\"#{permalink}\">#{title}</h#{level}>\n)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|