acts_as_markup 1.3.4 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []