model_formatting 0.2.3.18 → 0.2.3.18.1

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