acts_as_markup 1.3.4 → 1.4.0

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.
@@ -0,0 +1,152 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class ActsAsMediawikiTest < ActsAsMarkupTestCase
4
+ context 'acts_as_mediawiki' do
5
+ setup do
6
+ @wikitext = "== Wikitext Test Text =="
7
+ end
8
+
9
+ context 'using Wikitext' do
10
+ setup do
11
+ ActsAsMarkup.mediawiki_library = :wikitext
12
+ class ::Post < ActiveRecord::Base
13
+ acts_as_mediawiki :body
14
+ end
15
+ @post = Post.create!(:title => 'Blah', :body => @wikitext)
16
+ end
17
+
18
+ should "have a WikitextString object returned for the column value" do
19
+ assert_kind_of WikitextString, @post.body
20
+ end
21
+
22
+ should "return original wikitext text for a `to_s` method call on the column value" do
23
+ assert_equal @wikitext, @post.body.to_s
24
+ end
25
+
26
+ should 'return false for .blank?' do
27
+ assert !@post.body.blank?
28
+ end
29
+
30
+ should "return formated html for a `to_html` method call on the column value" do
31
+ assert_match(/<h2>Wikitext Test Text<\/h2>/, @post.body.to_html)
32
+ end
33
+
34
+ should "underscore spaces in URLs" do
35
+ @post.body = "[[foo bar]]"
36
+ assert_match(/<a href="\/wiki\/foo_bar">foo bar<\/a>/, @post.body.to_html)
37
+ end
38
+
39
+ context "changing value of wikitext field should return new wikitext object" do
40
+ setup do
41
+ @old_body = @post.body
42
+ @post.body = "`@count = 20`"
43
+ end
44
+
45
+ should "still have an WikitextString object but not the same object" do
46
+ assert_kind_of WikitextString, @post.body
47
+ assert_not_same @post.body, @old_body
48
+ end
49
+
50
+ should "return correct text for `to_s`" do
51
+ assert_equal "`@count = 20`", @post.body.to_s
52
+ end
53
+
54
+ should "return correct HTML for the `to_html` method" do
55
+ assert_match(/<p><code>\@count\s\=\s20<\/code><\/p>/, @post.body.to_html)
56
+ end
57
+
58
+ teardown do
59
+ @old_body = nil
60
+ end
61
+ end
62
+
63
+ teardown do
64
+ @post = nil
65
+ Post.delete_all
66
+ end
67
+ end
68
+
69
+ context 'using Wikitext with options' do
70
+ setup do
71
+ ActsAsMarkup.mediawiki_library = :wikitext
72
+ class ::Post
73
+ acts_as_mediawiki :body, :mediawiki_options => [ { :space_to_underscore => false } ]
74
+ end
75
+ @post = Post.new(:title => 'Blah')
76
+ end
77
+
78
+ should "not underscore spaces in URLs because of :space_to_underscore option" do
79
+ @post.body = "[[foo bar]]"
80
+ assert_match(/<a href="\/wiki\/foo%20bar">foo bar<\/a>/, @post.body.to_html)
81
+ end
82
+
83
+ teardown do
84
+ @post = nil
85
+ end
86
+ end
87
+
88
+ context 'using WikiCloth' do
89
+ setup do
90
+ ActsAsMarkup.mediawiki_library = :wikicloth
91
+ class ::Post < ActiveRecord::Base
92
+ acts_as_mediawiki :body
93
+ end
94
+ @post = Post.create!(:title => 'Blah', :body => @wikitext)
95
+ end
96
+
97
+ should "have a WikitextString object returned for the column value" do
98
+ assert_kind_of WikiClothText, @post.body
99
+ end
100
+
101
+ should "return original wikitext text for a `to_s` method call on the column value" do
102
+ assert_equal @wikitext, @post.body.to_s
103
+ end
104
+
105
+ should 'return false for .blank?' do
106
+ assert !@post.body.blank?
107
+ end
108
+
109
+ should "return formated html for a `to_html` method call on the column value" do
110
+ assert_match(/<h2>.*Wikitext Test Text.*<\/h2>/, @post.body.to_html)
111
+ end
112
+
113
+ should "render a link" do
114
+ @post.body = "[http://www.example.com/ Test]"
115
+ assert_match(%r[<a href="http://www.example.com/" target="_blank">Test</a>], @post.body.to_html)
116
+ end
117
+
118
+ context "changing value of wikitext field should return new wikitext object" do
119
+ setup do
120
+ @old_body = @post.body
121
+ @post.body = "'''This is very important'''"
122
+ end
123
+
124
+ should "still have an WikitextString object but not the same object" do
125
+ assert_kind_of WikiClothText, @post.body
126
+ assert_not_same @post.body, @old_body
127
+ end
128
+
129
+ should "return correct text for `to_s`" do
130
+ assert_equal "'''This is very important'''", @post.body.to_s
131
+ end
132
+
133
+ should "return correct HTML for the `to_html` method" do
134
+ assert_match(/<p><b>This is very important<\/b><\/p>/, @post.body.to_html)
135
+ end
136
+
137
+ teardown do
138
+ @old_body = nil
139
+ end
140
+ end
141
+
142
+ teardown do
143
+ @post = nil
144
+ Post.delete_all
145
+ end
146
+ end
147
+
148
+ teardown do
149
+ @wikitext = nil
150
+ end
151
+ end
152
+ end
@@ -23,7 +23,7 @@ class ActsAsRDocTest < ActsAsMarkupTestCase
23
23
  end
24
24
 
25
25
  should "return formated html for a `to_html` method call on the column value" do
26
- assert_match(/<h2>\s*RDoc Test Text\s*<\/h2>/, @post.body.to_html)
26
+ assert_match(/<h2[^>]*>\s*RDoc Test Text\s*<\/h2>/, @post.body.to_html)
27
27
  end
28
28
 
29
29
  context "changing value of RDoc field should return new RDoc object" do
data/test/test_helper.rb CHANGED
@@ -1,13 +1,31 @@
1
- require 'test/unit'
2
1
  require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
3
11
  gem 'sqlite3-ruby'
4
12
  require 'shoulda'
5
13
  require 'active_support'
6
14
  require 'active_support/test_case'
7
- require File.expand_path( File.join(File.dirname(__FILE__), %w[.. lib acts_as_markup]) )
8
- ActiveRecord::Schema.verbose = false
9
15
 
16
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
17
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
18
+
19
+ require 'acts_as_markup'
20
+ require 'acts_as_markup/exts/object'
21
+ require 'acts_as_markup/stringlike'
22
+ require 'acts_as_markup/active_record_extension'
23
+ require 'active_record'
24
+
25
+ ActiveRecord::Schema.verbose = false
26
+ ActiveRecord::Base.send :include, ActsAsMarkup::ActiveRecordExtension
10
27
  ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
28
+ ActsAsMarkup.markdown_library = :rdiscount
11
29
 
12
30
  def setup_db
13
31
  ActiveRecord::Schema.define(:version => 1) do
metadata CHANGED
@@ -1,171 +1,324 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: acts_as_markup
3
- version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
6
- segments:
7
- - 1
8
- - 3
9
- - 4
10
- version: 1.3.4
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.0
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Brian Landau
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2010-09-04 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-17 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: activesupport
16
+ requirement: &2162216420 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2162216420
25
+ - !ruby/object:Gem::Dependency
26
+ name: activerecord
27
+ requirement: &2162215920 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2162215920
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdiscount
38
+ requirement: &2162215440 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2162215440
47
+ - !ruby/object:Gem::Dependency
48
+ name: wikicloth
49
+ requirement: &2162214960 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2162214960
58
+ - !ruby/object:Gem::Dependency
59
+ name: RedCloth
60
+ requirement: &2162214460 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2162214460
69
+ - !ruby/object:Gem::Dependency
70
+ name: shoulda
71
+ requirement: &2162213960 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *2162213960
80
+ - !ruby/object:Gem::Dependency
81
+ name: bundler
82
+ requirement: &2162213460 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 1.0.0
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *2162213460
91
+ - !ruby/object:Gem::Dependency
92
+ name: jeweler
93
+ requirement: &2162212980 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ~>
97
+ - !ruby/object:Gem::Version
98
+ version: 1.6.4
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *2162212980
102
+ - !ruby/object:Gem::Dependency
103
+ name: rcov
104
+ requirement: &2162212480 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *2162212480
113
+ - !ruby/object:Gem::Dependency
114
+ name: sqlite3-ruby
115
+ requirement: &2162211980 !ruby/object:Gem::Requirement
116
+ none: false
117
+ requirements:
118
+ - - ! '>='
119
+ - !ruby/object:Gem::Version
120
+ version: '0'
121
+ type: :development
122
+ prerelease: false
123
+ version_requirements: *2162211980
124
+ - !ruby/object:Gem::Dependency
125
+ name: brianjlandau-sdoc-helpers
126
+ requirement: &2162211420 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ! '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: *2162211420
135
+ - !ruby/object:Gem::Dependency
136
+ name: rpeg-markdown
137
+ requirement: &2162210940 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: *2162210940
146
+ - !ruby/object:Gem::Dependency
147
+ name: rdoc
148
+ requirement: &2162210420 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *2162210420
157
+ - !ruby/object:Gem::Dependency
158
+ name: bluecloth
159
+ requirement: &2162209900 !ruby/object:Gem::Requirement
160
+ none: false
161
+ requirements:
162
+ - - ! '>='
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ type: :development
23
166
  prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
167
+ version_requirements: *2162209900
168
+ - !ruby/object:Gem::Dependency
169
+ name: maruku
170
+ requirement: &2162209420 !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: *2162209420
179
+ - !ruby/object:Gem::Dependency
180
+ name: wikitext
181
+ requirement: &2162208920 !ruby/object:Gem::Requirement
182
+ none: false
183
+ requirements:
184
+ - - ! '>='
185
+ - !ruby/object:Gem::Version
186
+ version: '0'
187
+ type: :development
188
+ prerelease: false
189
+ version_requirements: *2162208920
190
+ - !ruby/object:Gem::Dependency
191
+ name: redcarpet
192
+ requirement: &2162208400 !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: *2162208400
201
+ - !ruby/object:Gem::Dependency
202
+ name: activesupport
203
+ requirement: &2162207880 !ruby/object:Gem::Requirement
25
204
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 7
30
- segments:
31
- - 2
32
- - 3
33
- - 2
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
34
208
  version: 2.3.2
35
209
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: activerecord
39
210
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
211
+ version_requirements: *2162207880
212
+ - !ruby/object:Gem::Dependency
213
+ name: activerecord
214
+ requirement: &2162207360 !ruby/object:Gem::Requirement
41
215
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 7
46
- segments:
47
- - 2
48
- - 3
49
- - 2
216
+ requirements:
217
+ - - ! '>='
218
+ - !ruby/object:Gem::Version
50
219
  version: 2.3.2
51
220
  type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: rdiscount
55
221
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
222
+ version_requirements: *2162207360
223
+ - !ruby/object:Gem::Dependency
224
+ name: rdiscount
225
+ requirement: &2162206780 !ruby/object:Gem::Requirement
57
226
  none: false
58
- requirements:
227
+ requirements:
59
228
  - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 9
62
- segments:
63
- - 1
64
- - 3
65
- version: "1.3"
229
+ - !ruby/object:Gem::Version
230
+ version: '1.3'
66
231
  type: :runtime
67
- version_requirements: *id003
68
- - !ruby/object:Gem::Dependency
69
- name: wikitext
70
232
  prerelease: false
71
- requirement: &id004 !ruby/object:Gem::Requirement
233
+ version_requirements: *2162206780
234
+ - !ruby/object:Gem::Dependency
235
+ name: wikitext
236
+ requirement: &2162206300 !ruby/object:Gem::Requirement
72
237
  none: false
73
- requirements:
238
+ requirements:
74
239
  - - ~>
75
- - !ruby/object:Gem::Version
76
- hash: 3
77
- segments:
78
- - 2
79
- - 0
80
- version: "2.0"
240
+ - !ruby/object:Gem::Version
241
+ version: '2.0'
81
242
  type: :runtime
82
- version_requirements: *id004
83
- - !ruby/object:Gem::Dependency
84
- name: RedCloth
85
243
  prerelease: false
86
- requirement: &id005 !ruby/object:Gem::Requirement
244
+ version_requirements: *2162206300
245
+ - !ruby/object:Gem::Dependency
246
+ name: RedCloth
247
+ requirement: &2162205660 !ruby/object:Gem::Requirement
87
248
  none: false
88
- requirements:
249
+ requirements:
89
250
  - - ~>
90
- - !ruby/object:Gem::Version
91
- hash: 31
92
- segments:
93
- - 4
94
- - 2
95
- version: "4.2"
251
+ - !ruby/object:Gem::Version
252
+ version: '4.2'
96
253
  type: :runtime
97
- version_requirements: *id005
98
- description: Represent ActiveRecord Markdown, Textile, Wiki text, RDoc columns as Markdown, Textile Wikitext, RDoc objects using various external libraries to convert to HTML.
254
+ prerelease: false
255
+ version_requirements: *2162205660
256
+ description: Represent ActiveRecord Markdown, Textile, Wiki text, RDoc columns as
257
+ Markdown, Textile Wikitext, RDoc objects using various external libraries to convert
258
+ to HTML.
99
259
  email: brian.landau@viget.com
100
260
  executables: []
101
-
102
261
  extensions: []
103
-
104
- extra_rdoc_files:
262
+ extra_rdoc_files:
105
263
  - LICENSE
106
264
  - README.rdoc
107
- files:
108
- - .gitignore
265
+ files:
109
266
  - CHANGELOG
267
+ - Gemfile
268
+ - Gemfile.lock
110
269
  - LICENSE
111
270
  - README.rdoc
112
271
  - Rakefile
113
272
  - acts_as_markup.gemspec
114
- - lib/acts/as_markup.rb
115
273
  - lib/acts_as_markup.rb
274
+ - lib/acts_as_markup/active_record_extension.rb
275
+ - lib/acts_as_markup/exts/bluecloth.rb
116
276
  - lib/acts_as_markup/exts/maruku.rb
117
277
  - lib/acts_as_markup/exts/object.rb
118
278
  - lib/acts_as_markup/exts/peg_markdown.rb
119
279
  - lib/acts_as_markup/exts/rdiscount.rb
120
280
  - lib/acts_as_markup/exts/rdoc.rb
281
+ - lib/acts_as_markup/exts/redcarpet.rb
282
+ - lib/acts_as_markup/exts/wikicloth.rb
121
283
  - lib/acts_as_markup/exts/wikitext.rb
284
+ - lib/acts_as_markup/railtie.rb
122
285
  - lib/acts_as_markup/stringlike.rb
286
+ - lib/acts_as_markup/version.rb
123
287
  - tasks/rdoc.rb
124
288
  - tasks/test.rb
125
289
  - test/acts_as_markdown_test.rb
126
290
  - test/acts_as_markup_test.rb
291
+ - test/acts_as_mediawiki_test.rb
127
292
  - test/acts_as_rdoc_test.rb
128
293
  - test/acts_as_textile_test.rb
129
- - test/acts_as_wikitext_test.rb
130
294
  - test/test_helper.rb
131
- has_rdoc: true
132
295
  homepage: http://vigetlabs.github.com/acts_as_markup/
133
- licenses: []
134
-
296
+ licenses:
297
+ - MIT
135
298
  post_install_message:
136
- rdoc_options:
137
- - --charset=UTF-8
138
- require_paths:
299
+ rdoc_options: []
300
+ require_paths:
139
301
  - lib
140
- required_ruby_version: !ruby/object:Gem::Requirement
302
+ required_ruby_version: !ruby/object:Gem::Requirement
141
303
  none: false
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- hash: 3
146
- segments:
304
+ requirements:
305
+ - - ! '>='
306
+ - !ruby/object:Gem::Version
307
+ version: '0'
308
+ segments:
147
309
  - 0
148
- version: "0"
149
- required_rubygems_version: !ruby/object:Gem::Requirement
310
+ hash: -2289890828287220338
311
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
312
  none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- hash: 3
155
- segments:
156
- - 0
157
- version: "0"
313
+ requirements:
314
+ - - ! '>='
315
+ - !ruby/object:Gem::Version
316
+ version: '0'
158
317
  requirements: []
159
-
160
318
  rubyforge_project:
161
- rubygems_version: 1.3.7
319
+ rubygems_version: 1.8.6
162
320
  signing_key:
163
321
  specification_version: 3
164
- summary: Represent ActiveRecord Markdown, Textile, Wiki text, RDoc columns as Markdown, Textile Wikitext, RDoc objects using various external libraries to convert to HTML.
165
- test_files:
166
- - test/acts_as_markdown_test.rb
167
- - test/acts_as_markup_test.rb
168
- - test/acts_as_rdoc_test.rb
169
- - test/acts_as_textile_test.rb
170
- - test/acts_as_wikitext_test.rb
171
- - test/test_helper.rb
322
+ summary: Represent ActiveRecord Markdown, Textile, Wiki text, RDoc columns as Markdown,
323
+ Textile Wikitext, RDoc objects using various external libraries to convert to HTML.
324
+ test_files: []