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 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