model_formatting 0.2.3.5 → 0.2.3.6

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