model_formatting 0.2.3.16 → 0.2.3.18

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require 'rake/testtask'
3
3
 
4
4
  spec = Gem::Specification.new do |s|
5
5
  s.name = "model_formatting"
6
- s.version = "0.2.3.16"
6
+ s.version = "0.2.3.18"
7
7
  s.author = "ENTP"
8
8
  s.email = "company@entp.com"
9
9
  s.homepage = "http://github.com/entp"
@@ -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
- markdown = Redcarpet::Markdown.new(Redcarpet::Render::Custom,
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,
@@ -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: 115
4
+ hash: 119
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
9
  - 3
10
- - 16
11
- version: 0.2.3.16
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-24 00:00:00 Z
19
+ date: 2013-04-22 00:00:00 -07:00
20
+ default_executable:
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- requirement: *id001
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
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- requirement: *id002
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
- version_requirements: &id003 !ruby/object:Gem::Requirement
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
- requirement: *id003
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
- version_requirements: &id004 !ruby/object:Gem::Requirement
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
- requirement: *id004
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
- version_requirements: &id005 !ruby/object:Gem::Requirement
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
- requirement: *id005
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
- version_requirements: &id006 !ruby/object:Gem::Requirement
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
- requirement: *id006
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
- version_requirements: &id007 !ruby/object:Gem::Requirement
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
- requirement: *id007
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
- version_requirements: &id008 !ruby/object:Gem::Requirement
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
- requirement: *id008
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.8.24
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.
@@ -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