model_formatting 0.2.3.18 → 0.2.3.18.1

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.18"
6
+ s.version = "0.2.3.18.1"
7
7
  s.author = "ENTP"
8
8
  s.email = "company@entp.com"
9
9
  s.homepage = "http://github.com/entp"
@@ -1,5 +1,6 @@
1
1
  require 'cgi'
2
2
  require 'active_support' # NilClass#blank?
3
+ require 'redcarpet_custom'
3
4
  module ModelFormatting
4
5
  class Part < Array
5
6
  attr_reader :format
@@ -190,8 +191,7 @@ module ModelFormatting
190
191
  begin
191
192
  require 'redcarpet'
192
193
  def self.process_markdown(text)
193
- renderer = Redcarpet::Render::HTML.new(:with_toc_data => true)
194
- markdown = Redcarpet::Markdown.new(renderer,
194
+ markdown = Redcarpet::Markdown.new(Redcarpet::Render::Custom,
195
195
  :no_intra_emphasis => true,
196
196
  :tables => true,
197
197
  :fenced_code_blocks => true,
@@ -0,0 +1,27 @@
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
@@ -62,21 +62,6 @@ 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
-
80
65
  class BaseWithAfter < Base
81
66
  formats :body do
82
67
  after { |format, text, options| text }
@@ -7,6 +7,11 @@ 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
10
15
 
11
16
  it "parses empty code block into array of single CodeBlock" do
12
17
  parts = ModelFormatting.parse_text_parts(nil, nil, "@@@ foo\n@@@")
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: model_formatting
3
3
  version: !ruby/object:Gem::Version
4
- hash: 119
4
+ hash: 205
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 2
9
9
  - 3
10
10
  - 18
11
- version: 0.2.3.18
11
+ - 1
12
+ version: 0.2.3.18.1
12
13
  platform: ruby
13
14
  authors:
14
15
  - ENTP
@@ -16,11 +17,10 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2013-04-22 00:00:00 -07:00
20
- default_executable:
20
+ date: 2013-04-24 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
- requirement: &id001 !ruby/object:Gem::Requirement
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
24
  none: false
25
25
  requirements:
26
26
  - - ~>
@@ -31,12 +31,12 @@ dependencies:
31
31
  - 1
32
32
  - 3
33
33
  version: 1.1.3
34
- version_requirements: *id001
35
- name: rack
34
+ requirement: *id001
36
35
  prerelease: false
36
+ name: rack
37
37
  type: :runtime
38
38
  - !ruby/object:Gem::Dependency
39
- requirement: &id002 !ruby/object:Gem::Requirement
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -46,12 +46,12 @@ dependencies:
46
46
  - 2
47
47
  - 2
48
48
  version: "2.2"
49
- version_requirements: *id002
50
- name: redcarpet
49
+ requirement: *id002
51
50
  prerelease: false
51
+ name: redcarpet
52
52
  type: :runtime
53
53
  - !ruby/object:Gem::Dependency
54
- requirement: &id003 !ruby/object:Gem::Requirement
54
+ version_requirements: &id003 !ruby/object:Gem::Requirement
55
55
  none: false
56
56
  requirements:
57
57
  - - ~>
@@ -62,12 +62,12 @@ dependencies:
62
62
  - 3
63
63
  - 15
64
64
  version: 2.3.15
65
- version_requirements: *id003
66
- name: actionpack
65
+ requirement: *id003
67
66
  prerelease: false
67
+ name: actionpack
68
68
  type: :runtime
69
69
  - !ruby/object:Gem::Dependency
70
- requirement: &id004 !ruby/object:Gem::Requirement
70
+ version_requirements: &id004 !ruby/object:Gem::Requirement
71
71
  none: false
72
72
  requirements:
73
73
  - - ~>
@@ -78,12 +78,12 @@ dependencies:
78
78
  - 3
79
79
  - 15
80
80
  version: 2.3.15
81
- version_requirements: *id004
82
- name: activerecord
81
+ requirement: *id004
83
82
  prerelease: false
83
+ name: activerecord
84
84
  type: :runtime
85
85
  - !ruby/object:Gem::Dependency
86
- requirement: &id005 !ruby/object:Gem::Requirement
86
+ version_requirements: &id005 !ruby/object:Gem::Requirement
87
87
  none: false
88
88
  requirements:
89
89
  - - ~>
@@ -94,12 +94,12 @@ dependencies:
94
94
  - 3
95
95
  - 15
96
96
  version: 2.3.15
97
- version_requirements: *id005
98
- name: activesupport
97
+ requirement: *id005
99
98
  prerelease: false
99
+ name: activesupport
100
100
  type: :runtime
101
101
  - !ruby/object:Gem::Dependency
102
- requirement: &id006 !ruby/object:Gem::Requirement
102
+ version_requirements: &id006 !ruby/object:Gem::Requirement
103
103
  none: false
104
104
  requirements:
105
105
  - - ~>
@@ -110,12 +110,12 @@ dependencies:
110
110
  - 1
111
111
  - 2
112
112
  version: 0.1.2
113
- version_requirements: *id006
114
- name: tidy_ffi
113
+ requirement: *id006
115
114
  prerelease: false
115
+ name: tidy_ffi
116
116
  type: :runtime
117
117
  - !ruby/object:Gem::Dependency
118
- requirement: &id007 !ruby/object:Gem::Requirement
118
+ version_requirements: &id007 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - ~>
@@ -126,12 +126,12 @@ dependencies:
126
126
  - 5
127
127
  - 5
128
128
  version: 0.5.5
129
- version_requirements: *id007
130
- name: jeremymcanally-context
129
+ requirement: *id007
131
130
  prerelease: false
131
+ name: jeremymcanally-context
132
132
  type: :development
133
133
  - !ruby/object:Gem::Dependency
134
- requirement: &id008 !ruby/object:Gem::Requirement
134
+ version_requirements: &id008 !ruby/object:Gem::Requirement
135
135
  none: false
136
136
  requirements:
137
137
  - - ~>
@@ -142,9 +142,9 @@ dependencies:
142
142
  - 1
143
143
  - 0
144
144
  version: 0.1.0
145
- version_requirements: *id008
146
- name: jeremymcanally-matchy
145
+ requirement: *id008
147
146
  prerelease: false
147
+ name: jeremymcanally-matchy
148
148
  type: :development
149
149
  description:
150
150
  email: company@entp.com
@@ -164,12 +164,12 @@ files:
164
164
  - lib/model_formatting/init.rb
165
165
  - lib/model_formatting/instance_methods.rb
166
166
  - lib/model_formatting.rb
167
+ - lib/redcarpet_custom.rb
167
168
  - rails/init.rb
168
169
  - test/fixtures/mkd-extraction.txt
169
170
  - test/formatting_test.rb
170
171
  - test/model_formatting_test.rb
171
172
  - test/test_helper.rb
172
- has_rdoc: true
173
173
  homepage: http://github.com/entp
174
174
  licenses: []
175
175
 
@@ -199,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
199
  requirements: []
200
200
 
201
201
  rubyforge_project:
202
- rubygems_version: 1.6.2
202
+ rubygems_version: 1.8.24
203
203
  signing_key:
204
204
  specification_version: 3
205
205
  summary: Automatically format model attributes using redcarpet (markdown) and Tender/Lighthouse extensions.