model_formatting 0.2.3.5 → 0.2.3.6

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.5"
6
+ s.version = "0.2.3.6"
7
7
  s.author = "ENTP"
8
8
  s.email = "company@entp.com"
9
9
  s.homepage = "http://github.com/entp"
@@ -2,12 +2,13 @@ module ModelFormatting
2
2
  module InstanceMethods
3
3
  protected
4
4
  def format_content_with_model_formatting
5
- self.class.model_formatting_attributes.each do |original, formatted|
5
+ model_formatting_attributes.each do |original, formatted|
6
6
  text = send(original)
7
7
  data = \
8
8
  if text.blank?
9
9
  ''
10
10
  else
11
+ text.strip!
11
12
  options = {:white_list => model_formatting_white_list,
12
13
  :before => model_formatting_before_callback,
13
14
  :after => model_formatting_after_callback}
@@ -139,11 +139,11 @@ module ModelFormatting
139
139
  parts.each { |p| p.compact! }
140
140
  end
141
141
 
142
- def self.extract_tag(text, *tag_names)
142
+ def self.extract_regex(text, *regexes)
143
143
  # Extract pre blocks
144
144
  extractions = {}
145
- tag_names.each do |tag_name|
146
- text.gsub!(%r{<#{tag_name}[^>]*>.*?</#{tag_name}>}m) do |match|
145
+ regexes.each do |regex|
146
+ text.gsub!(regex) do |match|
147
147
  md5 = Digest::MD5.hexdigest(match)
148
148
  extractions[md5] ||= []
149
149
  extractions[md5] << match
@@ -166,6 +166,16 @@ module ModelFormatting
166
166
  text
167
167
  end
168
168
 
169
+ def self.tag_name_to_regex(name)
170
+ %r{<#{name}[^>]*>.*?</#{name}>}m
171
+ end
172
+
173
+ def self.extract_tag(text, *tag_names)
174
+ extract_regex text, *tag_names.map { |n| tag_name_to_regex(n) } do |text|
175
+ yield text
176
+ end
177
+ end
178
+
169
179
  def self.gfm(text)
170
180
  extract_tag(text, :pre) do |txt|
171
181
  # prevent foo_bar_baz from ending up with an italic word in the middle
@@ -49,9 +49,9 @@ module ModelFormatting
49
49
 
50
50
  it "preserves leading spaces in code blocks" do
51
51
  record = Simple.new
52
- record.body = " code\n more code\n\nnot code\n\n"
52
+ record.body = "this\n\n code\n more code\n\nnot code\n\n"
53
53
  record.save
54
- record.formatted_body.should == %(<div><pre>\n<code>code\nmore code</code>\n</pre>\n<p>not code</p></div>)
54
+ record.formatted_body.should == %(<div><p>this</p>\n<pre>\n<code>code\nmore code</code>\n</pre>\n<p>not code</p></div>)
55
55
  end
56
56
 
57
57
  it "converts unicode characters to html entities" do
metadata CHANGED
@@ -1,145 +1,100 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: model_formatting
3
- version: !ruby/object:Gem::Version
4
- hash: 89
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.3.6
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 3
10
- - 5
11
- version: 0.2.3.5
12
6
  platform: ruby
13
- authors:
7
+ authors:
14
8
  - ENTP
15
9
  autorequire:
16
10
  bindir: bin
17
11
  cert_chain: []
18
-
19
- date: 2011-11-16 00:00:00 -08:00
20
- default_executable:
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-23 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
23
15
  name: rdiscount
24
- prerelease: false
25
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70351531284240 !ruby/object:Gem::Requirement
26
17
  none: false
27
- requirements:
18
+ requirements:
28
19
  - - ~>
29
- - !ruby/object:Gem::Version
30
- hash: 5
31
- segments:
32
- - 1
33
- - 6
34
- - 5
20
+ - !ruby/object:Gem::Version
35
21
  version: 1.6.5
36
22
  type: :runtime
37
- version_requirements: *id001
38
- - !ruby/object:Gem::Dependency
39
- name: actionpack
40
23
  prerelease: false
41
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70351531284240
25
+ - !ruby/object:Gem::Dependency
26
+ name: actionpack
27
+ requirement: &70351531283600 !ruby/object:Gem::Requirement
42
28
  none: false
43
- requirements:
29
+ requirements:
44
30
  - - ~>
45
- - !ruby/object:Gem::Version
46
- hash: 17
47
- segments:
48
- - 2
49
- - 3
50
- - 9
31
+ - !ruby/object:Gem::Version
51
32
  version: 2.3.9
52
33
  type: :runtime
53
- version_requirements: *id002
54
- - !ruby/object:Gem::Dependency
55
- name: activerecord
56
34
  prerelease: false
57
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70351531283600
36
+ - !ruby/object:Gem::Dependency
37
+ name: activerecord
38
+ requirement: &70351531282680 !ruby/object:Gem::Requirement
58
39
  none: false
59
- requirements:
40
+ requirements:
60
41
  - - ~>
61
- - !ruby/object:Gem::Version
62
- hash: 17
63
- segments:
64
- - 2
65
- - 3
66
- - 9
42
+ - !ruby/object:Gem::Version
67
43
  version: 2.3.9
68
44
  type: :runtime
69
- version_requirements: *id003
70
- - !ruby/object:Gem::Dependency
71
- name: activesupport
72
45
  prerelease: false
73
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *70351531282680
47
+ - !ruby/object:Gem::Dependency
48
+ name: activesupport
49
+ requirement: &70351531281480 !ruby/object:Gem::Requirement
74
50
  none: false
75
- requirements:
51
+ requirements:
76
52
  - - ~>
77
- - !ruby/object:Gem::Version
78
- hash: 17
79
- segments:
80
- - 2
81
- - 3
82
- - 9
53
+ - !ruby/object:Gem::Version
83
54
  version: 2.3.9
84
55
  type: :runtime
85
- version_requirements: *id004
86
- - !ruby/object:Gem::Dependency
87
- name: tidy_ffi
88
56
  prerelease: false
89
- requirement: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *70351531281480
58
+ - !ruby/object:Gem::Dependency
59
+ name: tidy_ffi
60
+ requirement: &70351531280900 !ruby/object:Gem::Requirement
90
61
  none: false
91
- requirements:
62
+ requirements:
92
63
  - - ~>
93
- - !ruby/object:Gem::Version
94
- hash: 31
95
- segments:
96
- - 0
97
- - 1
98
- - 2
64
+ - !ruby/object:Gem::Version
99
65
  version: 0.1.2
100
66
  type: :runtime
101
- version_requirements: *id005
102
- - !ruby/object:Gem::Dependency
103
- name: jeremymcanally-context
104
67
  prerelease: false
105
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *70351531280900
69
+ - !ruby/object:Gem::Dependency
70
+ name: jeremymcanally-context
71
+ requirement: &70351531280100 !ruby/object:Gem::Requirement
106
72
  none: false
107
- requirements:
108
- - - "="
109
- - !ruby/object:Gem::Version
110
- hash: 1
111
- segments:
112
- - 0
113
- - 5
114
- - 5
73
+ requirements:
74
+ - - =
75
+ - !ruby/object:Gem::Version
115
76
  version: 0.5.5
116
77
  type: :development
117
- version_requirements: *id006
118
- - !ruby/object:Gem::Dependency
119
- name: jeremymcanally-matchy
120
78
  prerelease: false
121
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *70351531280100
80
+ - !ruby/object:Gem::Dependency
81
+ name: jeremymcanally-matchy
82
+ requirement: &70351531279540 !ruby/object:Gem::Requirement
122
83
  none: false
123
- requirements:
84
+ requirements:
124
85
  - - ~>
125
- - !ruby/object:Gem::Version
126
- hash: 27
127
- segments:
128
- - 0
129
- - 1
130
- - 0
86
+ - !ruby/object:Gem::Version
131
87
  version: 0.1.0
132
88
  type: :development
133
- version_requirements: *id007
89
+ prerelease: false
90
+ version_requirements: *70351531279540
134
91
  description:
135
92
  email: company@entp.com
136
93
  executables: []
137
-
138
94
  extensions: []
139
-
140
- extra_rdoc_files:
95
+ extra_rdoc_files:
141
96
  - README
142
- files:
97
+ files:
143
98
  - Gemfile
144
99
  - Gemfile.lock
145
100
  - Rakefile
@@ -154,39 +109,29 @@ files:
154
109
  - test/formatting_test.rb
155
110
  - test/model_formatting_test.rb
156
111
  - test/test_helper.rb
157
- has_rdoc: true
158
112
  homepage: http://github.com/entp
159
113
  licenses: []
160
-
161
114
  post_install_message:
162
115
  rdoc_options: []
163
-
164
- require_paths:
116
+ require_paths:
165
117
  - lib
166
- required_ruby_version: !ruby/object:Gem::Requirement
118
+ required_ruby_version: !ruby/object:Gem::Requirement
167
119
  none: false
168
- requirements:
169
- - - ">="
170
- - !ruby/object:Gem::Version
171
- hash: 3
172
- segments:
173
- - 0
174
- version: "0"
175
- required_rubygems_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ! '>='
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
176
125
  none: false
177
- requirements:
178
- - - ">="
179
- - !ruby/object:Gem::Version
180
- hash: 3
181
- segments:
182
- - 0
183
- version: "0"
126
+ requirements:
127
+ - - ! '>='
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
184
130
  requirements: []
185
-
186
131
  rubyforge_project:
187
- rubygems_version: 1.4.1
132
+ rubygems_version: 1.8.10
188
133
  signing_key:
189
134
  specification_version: 3
190
- summary: Automatically format model attributes using rdiscount and Tender/Lighthouse extensions.
135
+ summary: Automatically format model attributes using rdiscount and Tender/Lighthouse
136
+ extensions.
191
137
  test_files: []
192
-