acts_as_markup 0.1.1 → 0.2.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.
- data/Manifest.txt +1 -0
- data/README.rdoc +20 -0
- data/acts_as_markup.gemspec +3 -3
- data/lib/acts/as_markup.rb +73 -15
- data/lib/acts_as_markup/exts/string.rb +9 -0
- data/lib/acts_as_markup.rb +5 -1
- data/tasks/git.rake +1 -1
- data/test/acts_as_markup_test.rb +264 -0
- data/test/test_helper.rb +7 -0
- metadata +3 -2
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
@@ -13,6 +13,11 @@ Allows you to specify columns of an ActiveRecord model that contain Markdown or
|
|
13
13
|
Textile text. You may then use +to_s+ to get the original markdown or textile
|
14
14
|
text or +to_html+ to get the formated HTML.
|
15
15
|
|
16
|
+
Additionally you can have a model that contains a column that has a column with
|
17
|
+
markup text, and another that defines what language to process it as. If the field
|
18
|
+
is listed as "markdown" or "textile" (case insensitive) it will treat it as such,
|
19
|
+
any other value for markup language will have the value pass through as a normal string.
|
20
|
+
|
16
21
|
This AR extension can use 3 different types of Markdown processing backends:
|
17
22
|
BlueCloth, RDiscount, or Ruby PEG. You specify which one you want to use by setting
|
18
23
|
a config value in your environment.rb file:
|
@@ -32,6 +37,7 @@ By default RDiscount will be used.
|
|
32
37
|
@post = Post.find(:first)
|
33
38
|
@post.body.to_s #=> "## Markdown Headline"
|
34
39
|
@post.body.to_html #=> "<h2> Markdown Headline</h2>"
|
40
|
+
|
35
41
|
|
36
42
|
==== Using +acts_as_textile+:
|
37
43
|
|
@@ -42,6 +48,7 @@ By default RDiscount will be used.
|
|
42
48
|
@post = Post.find(:first)
|
43
49
|
@post.body.to_s #=> "h2. Markdown Headline"
|
44
50
|
@post.body.to_html #=> "<h2>Markdown Headline</h2>"
|
51
|
+
|
45
52
|
|
46
53
|
==== Using +acts_as_markup+:
|
47
54
|
|
@@ -52,6 +59,19 @@ By default RDiscount will be used.
|
|
52
59
|
@post = Post.find(:first)
|
53
60
|
@post.body.to_s #=> "## Markdown Headline"
|
54
61
|
@post.body.to_html #=> "<h2> Markdown Headline</h2>"
|
62
|
+
|
63
|
+
|
64
|
+
==== Using +acts_as_markup+ with +:variable+ language:
|
65
|
+
|
66
|
+
class Post < ActiveRecrod
|
67
|
+
acts_as_markup :language => :variable, :columns => [:body], :language_column => 'markup_language'
|
68
|
+
end
|
69
|
+
|
70
|
+
@post = Post.find(:first)
|
71
|
+
@post.markup_language # => "markdown"
|
72
|
+
@post.body.to_s # => "## Markdown Headline"
|
73
|
+
@post.body.to_html # => "<h2> Markdown Headline</h2>"
|
74
|
+
|
55
75
|
|
56
76
|
== REQUIREMENTS:
|
57
77
|
|
data/acts_as_markup.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{acts_as_markup}
|
3
|
-
s.version = "0.
|
3
|
+
s.version = "0.2.0"
|
4
4
|
|
5
5
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
6
6
|
s.authors = ["Brian Landau"]
|
7
|
-
s.date = %q{2008-08-
|
7
|
+
s.date = %q{2008-08-07}
|
8
8
|
s.description = %q{Represent ActiveRecord Markdown or Textile text columns as Markdown or Textile objects using various external libraries to convert to HTML.}
|
9
9
|
s.email = %q{brian.landau@viget.com}
|
10
10
|
s.extra_rdoc_files = ["LICENSE.txt", "README.rdoc"]
|
11
|
-
s.files = ["History.txt", "LICENSE.txt", "Manifest.txt", "README.rdoc", "Rakefile", "acts_as_markup.gemspec", "lib/acts/as_markup.rb", "lib/acts_as_markup.rb", "lib/acts_as_markup/exts/rdiscount.rb", "tasks/bones.rake", "tasks/gem.rake", "tasks/git.rake", "tasks/manifest.rake", "tasks/post_load.rake", "tasks/rdoc.rake", "tasks/rubyforge.rake", "tasks/setup.rb", "tasks/test.rake", "test/acts_as_markup_test.rb", "test/test_helper.rb"]
|
11
|
+
s.files = ["History.txt", "LICENSE.txt", "Manifest.txt", "README.rdoc", "Rakefile", "acts_as_markup.gemspec", "lib/acts/as_markup.rb", "lib/acts_as_markup.rb", "lib/acts_as_markup/exts/rdiscount.rb", "lib/acts_as_markup/exts/string.rb", "tasks/bones.rake", "tasks/gem.rake", "tasks/git.rake", "tasks/manifest.rake", "tasks/post_load.rake", "tasks/rdoc.rake", "tasks/rubyforge.rake", "tasks/setup.rb", "tasks/test.rake", "test/acts_as_markup_test.rb", "test/test_helper.rb"]
|
12
12
|
s.has_rdoc = true
|
13
13
|
s.homepage = %q{http://viget.rubyforge.com/acts_as_markup}
|
14
14
|
s.rdoc_options = ["--main", "README.rdoc"]
|
data/lib/acts/as_markup.rb
CHANGED
@@ -13,40 +13,98 @@ module ActiveRecord # :nodoc:
|
|
13
13
|
# This allows you to specify columns you want to define as containing
|
14
14
|
# Markdown or Textile content.
|
15
15
|
# Then you can simply call <tt>.to_html</tt> method on the attribute.
|
16
|
-
#
|
17
|
-
#
|
16
|
+
#
|
17
|
+
# You can also specify the language as <tt>:variable</tt> you will then
|
18
|
+
# need to add an additional option of <tt>:language_column</tt>. When
|
19
|
+
# a value is accessed it will create the correct object (Markdown or Textile)
|
20
|
+
# based on the value of the language column. If any value besides markdown or
|
21
|
+
# textile is supplied for the markup language the text will pass through
|
22
|
+
# as a string.
|
23
|
+
#
|
24
|
+
#
|
25
|
+
# ==== Examples
|
26
|
+
#
|
27
|
+
# ===== Using Markdown language
|
28
|
+
#
|
18
29
|
# class Post < ActiveRecrod
|
19
30
|
# acts_as_markup :language => :markdown, :columns => [:body]
|
20
31
|
# end
|
32
|
+
#
|
33
|
+
# @post = Post.find(:first)
|
34
|
+
# @post.body.to_s # => "## Markdown Headline"
|
35
|
+
# @post.body.to_html # => "<h2> Markdown Headline</h2>"
|
36
|
+
#
|
21
37
|
#
|
38
|
+
# ===== Using variable language
|
39
|
+
#
|
40
|
+
# class Post < ActiveRecrod
|
41
|
+
# acts_as_markup :language => :variable, :columns => [:body], :language_column => 'markup_language'
|
42
|
+
# end
|
43
|
+
#
|
22
44
|
# @post = Post.find(:first)
|
23
|
-
# @post.
|
24
|
-
# @post.body.
|
45
|
+
# @post.markup_language # => "markdown"
|
46
|
+
# @post.body.to_s # => "## Markdown Headline"
|
47
|
+
# @post.body.to_html # => "<h2> Markdown Headline</h2>"
|
48
|
+
#
|
25
49
|
#
|
26
50
|
def acts_as_markup(options)
|
27
51
|
case options[:language].to_sym
|
28
52
|
when :markdown
|
29
|
-
|
30
|
-
|
31
|
-
|
53
|
+
if ActsAsMarkup::MARKDOWN_LIBS.keys.include? ActsAsMarkup.markdown_library
|
54
|
+
markdown_library_names = ActsAsMarkup::MARKDOWN_LIBS[ActsAsMarkup.markdown_library]
|
55
|
+
require markdown_library_names[:lib_name]
|
56
|
+
klass = markdown_library_names[:class_name]
|
57
|
+
else
|
58
|
+
raise ActsAsMarkup::UnsportedMarkdownLibrary, "#{ActsAsMarkup.markdown_library} is not currently supported."
|
59
|
+
end
|
32
60
|
when :textile
|
33
61
|
require 'redcloth'
|
34
62
|
klass = 'RedCloth'
|
63
|
+
when :variable
|
64
|
+
if ActsAsMarkup::MARKDOWN_LIBS.keys.include? ActsAsMarkup.markdown_library
|
65
|
+
markdown_library_names = ActsAsMarkup::MARKDOWN_LIBS[ActsAsMarkup.markdown_library]
|
66
|
+
require markdown_library_names[:lib_name]
|
67
|
+
markdown_klass = markdown_library_names[:class_name]
|
68
|
+
else
|
69
|
+
raise ActsAsMarkup::UnsportedMarkdownLibrary, "#{ActsAsMarkup.markdown_library} is not currently supported."
|
70
|
+
end
|
71
|
+
require 'redcloth'
|
72
|
+
textile_klass = 'RedCloth'
|
35
73
|
else
|
36
74
|
raise ActsAsMarkup::UnsportedMarkupLanguage, "#{options[:langauge]} is not a currently supported markup language."
|
37
75
|
end
|
38
76
|
|
39
77
|
options[:columns].each do |col|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if
|
44
|
-
|
78
|
+
unless options[:language].to_sym == :variable
|
79
|
+
class_eval <<-EOV
|
80
|
+
def #{col.to_s}
|
81
|
+
if @#{col.to_s}
|
82
|
+
if !self.#{col.to_s}_changed?
|
83
|
+
return @#{col.to_s}
|
84
|
+
end
|
85
|
+
end
|
86
|
+
@#{col.to_s} = #{klass}.new(self['#{col.to_s}'].to_s)
|
87
|
+
end
|
88
|
+
EOV
|
89
|
+
else
|
90
|
+
class_eval <<-EOV
|
91
|
+
def #{col.to_s}
|
92
|
+
if @#{col.to_s}
|
93
|
+
unless self.#{col.to_s}_changed? || self.#{options[:language_column].to_s}_changed?
|
94
|
+
return @#{col.to_s}
|
95
|
+
end
|
96
|
+
end
|
97
|
+
case self.#{options[:language_column].to_s}
|
98
|
+
when /markdown/i
|
99
|
+
@#{col.to_s} = #{markdown_klass}.new(self['#{col.to_s}'].to_s)
|
100
|
+
when /textile/i
|
101
|
+
@#{col.to_s} = #{textile_klass}.new(self['#{col.to_s}'].to_s)
|
102
|
+
else
|
103
|
+
@#{col.to_s} = self['#{col.to_s}']
|
45
104
|
end
|
46
105
|
end
|
47
|
-
|
48
|
-
|
49
|
-
EOV
|
106
|
+
EOV
|
107
|
+
end
|
50
108
|
end
|
51
109
|
end
|
52
110
|
|
data/lib/acts_as_markup.rb
CHANGED
@@ -2,7 +2,7 @@ require 'active_support'
|
|
2
2
|
|
3
3
|
module ActsAsMarkup
|
4
4
|
# :stopdoc:
|
5
|
-
VERSION = '0.
|
5
|
+
VERSION = '0.2.0'
|
6
6
|
LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
|
7
7
|
PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
|
8
8
|
# :startdoc:
|
@@ -11,6 +11,10 @@ module ActsAsMarkup
|
|
11
11
|
class UnsportedMarkupLanguage < ArgumentError
|
12
12
|
end
|
13
13
|
|
14
|
+
# This exception is raised when an unsupported Markdown library is set to the config value.
|
15
|
+
class UnsportedMarkdownLibrary < ArgumentError
|
16
|
+
end
|
17
|
+
|
14
18
|
DEFAULT_MAKRDOWN_LIB = :rdiscount
|
15
19
|
|
16
20
|
MARKDOWN_LIBS = { :rdiscount => {:class_name => "RDiscount",
|
data/tasks/git.rake
CHANGED
data/test/acts_as_markup_test.rb
CHANGED
@@ -288,6 +288,270 @@ class ActsAsMarkupTest < Test::Unit::TestCase
|
|
288
288
|
end
|
289
289
|
end
|
290
290
|
|
291
|
+
context 'acts_as_markup with variable language' do
|
292
|
+
setup do
|
293
|
+
ActsAsMarkup.markdown_library = ActsAsMarkup::DEFAULT_MAKRDOWN_LIB
|
294
|
+
class ::VariablePost < ActiveRecord::Base
|
295
|
+
acts_as_markup :language => :variable, :columns => [:body], :language_column => :markup_language
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
299
|
+
context "with a Markdown post" do
|
300
|
+
setup do
|
301
|
+
@markdown_text = '## Markdown Test Text'
|
302
|
+
@markdown_post = VariablePost.create!(:title => 'Blah', :body => @markdown_text, :markup_language => 'Markdown')
|
303
|
+
end
|
304
|
+
|
305
|
+
should "have a markup object returned for the column value" do
|
306
|
+
assert_kind_of RDiscount, @markdown_post.body
|
307
|
+
end
|
308
|
+
|
309
|
+
should "return original markup text for a `to_s` method call on the column value" do
|
310
|
+
assert_equal @markdown_text, @markdown_post.body.to_s
|
311
|
+
end
|
312
|
+
|
313
|
+
should "return formated html for a `to_html` method call on the column value" do
|
314
|
+
assert_match(/<h2>\s*Markdown Test Text\s*<\/h2>/, @markdown_post.body.to_html)
|
315
|
+
end
|
316
|
+
|
317
|
+
context "changing value of markup field should return new markup object" do
|
318
|
+
setup do
|
319
|
+
@markdown_old_body = @markdown_post.body
|
320
|
+
@markdown_post.body = "`@count = 20`"
|
321
|
+
end
|
322
|
+
|
323
|
+
should "still have an markup object but not the same object" do
|
324
|
+
assert_not_same @markdown_post.body, @markdown_old_body
|
325
|
+
assert_kind_of RDiscount, @markdown_post.body
|
326
|
+
end
|
327
|
+
|
328
|
+
should "return correct text for `to_s`" do
|
329
|
+
assert_equal "`@count = 20`", @markdown_post.body.to_s
|
330
|
+
end
|
331
|
+
|
332
|
+
should "return correct HTML for the `to_html` method" do
|
333
|
+
assert_match(/<code>\s*\@count\s\=\s20\s*<\/code>/, @markdown_post.body.to_html)
|
334
|
+
end
|
335
|
+
|
336
|
+
teardown do
|
337
|
+
@markdown_old_body = nil
|
338
|
+
end
|
339
|
+
end
|
340
|
+
|
341
|
+
teardown do
|
342
|
+
@markdown_text, @markup_post = nil
|
343
|
+
end
|
344
|
+
end
|
345
|
+
|
346
|
+
context "with a Textile post" do
|
347
|
+
setup do
|
348
|
+
@textile_text = "h2. Textile Test Text"
|
349
|
+
@textile_post = VariablePost.create!(:title => 'Blah', :body => @textile_text, :markup_language => 'Textile')
|
350
|
+
end
|
351
|
+
|
352
|
+
should "have a markup object returned for the column value" do
|
353
|
+
assert_kind_of RedCloth::TextileDoc, @textile_post.body
|
354
|
+
end
|
355
|
+
|
356
|
+
should "return original markup text for a `to_s` method call on the column value" do
|
357
|
+
assert_equal @textile_text, @textile_post.body.to_s
|
358
|
+
end
|
359
|
+
|
360
|
+
should "return formated html for a `to_html` method call on the column value" do
|
361
|
+
assert_match(/<h2>Textile Test Text<\/h2>/, @textile_post.body.to_html)
|
362
|
+
end
|
363
|
+
|
364
|
+
context "changing value of markup field should return new markup object" do
|
365
|
+
setup do
|
366
|
+
@textile_old_body = @textile_post.body
|
367
|
+
@textile_post.body = "@@count = 20@"
|
368
|
+
end
|
369
|
+
|
370
|
+
should "still have an markup object but not the same object" do
|
371
|
+
assert_kind_of RedCloth::TextileDoc, @textile_post.body
|
372
|
+
assert_not_same @textile_post.body, @textile_old_body
|
373
|
+
end
|
374
|
+
|
375
|
+
should "return correct text for `to_s`" do
|
376
|
+
assert_equal "@@count = 20@", @textile_post.body.to_s
|
377
|
+
end
|
378
|
+
|
379
|
+
should "return correct HTML for the `to_html` method" do
|
380
|
+
assert_match(/<code>\@count\s\=\s20<\/code>/, @textile_post.body.to_html)
|
381
|
+
end
|
382
|
+
|
383
|
+
teardown do
|
384
|
+
@textile_old_body = nil
|
385
|
+
end
|
386
|
+
end
|
387
|
+
|
388
|
+
teardown do
|
389
|
+
@textile_text, @textile_post = nil
|
390
|
+
end
|
391
|
+
end
|
392
|
+
|
393
|
+
context "with a plain text post" do
|
394
|
+
setup do
|
395
|
+
@plain_text = "Hahaha!!!"
|
396
|
+
@plain_text_post = VariablePost.create!(:title => 'Blah', :body => @plain_text, :markup_language => 'text')
|
397
|
+
end
|
398
|
+
|
399
|
+
should "have a string object returned for the column value" do
|
400
|
+
assert_kind_of String, @plain_text_post.body
|
401
|
+
end
|
402
|
+
|
403
|
+
should "return the original string with a `to_s` method call on the column value" do
|
404
|
+
assert_equal @plain_text, @plain_text_post.body.to_s
|
405
|
+
end
|
406
|
+
|
407
|
+
should "eturn the original string with a `to_html` method call on the column value" do
|
408
|
+
assert_equal @plain_text, @plain_text_post.body.to_html
|
409
|
+
end
|
410
|
+
|
411
|
+
context "changing value of markup field should return new markup object" do
|
412
|
+
setup do
|
413
|
+
@plaintext_old_body = @plain_text_post.body
|
414
|
+
@plain_text_post.body = "Lorem ipsum dolor sit amet"
|
415
|
+
end
|
416
|
+
|
417
|
+
should "still have an markup object but not the same object" do
|
418
|
+
assert_kind_of String, @plain_text_post.body
|
419
|
+
assert_not_same @plain_text_post.body, @plaintext_old_body
|
420
|
+
end
|
421
|
+
|
422
|
+
should "return correct text for `to_s`" do
|
423
|
+
assert_equal "Lorem ipsum dolor sit amet", @plain_text_post.body.to_s
|
424
|
+
end
|
425
|
+
|
426
|
+
teardown do
|
427
|
+
@textile_old_body = nil
|
428
|
+
end
|
429
|
+
end
|
430
|
+
|
431
|
+
teardown do
|
432
|
+
@textile_text, @textile_post = nil
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
436
|
+
|
437
|
+
teardown do
|
438
|
+
VariablePost.delete_all
|
439
|
+
end
|
440
|
+
end
|
441
|
+
|
442
|
+
context 'with a nil value for the text' do
|
443
|
+
setup do
|
444
|
+
@text = nil
|
445
|
+
end
|
446
|
+
|
447
|
+
context 'with textile' do
|
448
|
+
setup do
|
449
|
+
class ::Post < ActiveRecord::Base
|
450
|
+
acts_as_textile :body
|
451
|
+
end
|
452
|
+
@post = Post.create!(:title => 'Blah', :body => @text)
|
453
|
+
end
|
454
|
+
|
455
|
+
should 'return a blank string for `to_s` method' do
|
456
|
+
assert_equal @post.body.to_s, ''
|
457
|
+
end
|
458
|
+
|
459
|
+
should 'return a blank string for `to_html` method' do
|
460
|
+
assert_match(/[\n\s]*/, @post.body.to_html)
|
461
|
+
end
|
462
|
+
|
463
|
+
should "have a RedCloth object returned for the column value" do
|
464
|
+
assert_kind_of RedCloth::TextileDoc, @post.body
|
465
|
+
end
|
466
|
+
|
467
|
+
teardown do
|
468
|
+
@post = nil
|
469
|
+
Post.delete_all
|
470
|
+
end
|
471
|
+
end
|
472
|
+
|
473
|
+
context 'with RDiscount Markdown' do
|
474
|
+
setup do
|
475
|
+
ActsAsMarkup.markdown_library = :rdiscount
|
476
|
+
class ::Post < ActiveRecord::Base
|
477
|
+
acts_as_markdown :body
|
478
|
+
end
|
479
|
+
@post = Post.create!(:title => 'Blah', :body => @text)
|
480
|
+
end
|
481
|
+
|
482
|
+
should 'return a blank string for `to_s` method' do
|
483
|
+
assert_equal @post.body.to_s, ''
|
484
|
+
end
|
485
|
+
|
486
|
+
should 'return a blank string for `to_html` method' do
|
487
|
+
assert_match(/[\n\s]*/, @post.body.to_html)
|
488
|
+
end
|
489
|
+
|
490
|
+
should "have a RDiscount object returned for the column value" do
|
491
|
+
assert_kind_of RDiscount, @post.body
|
492
|
+
end
|
493
|
+
|
494
|
+
teardown do
|
495
|
+
@post = nil
|
496
|
+
Post.delete_all
|
497
|
+
end
|
498
|
+
end
|
499
|
+
|
500
|
+
context 'with BlueCloth Markdown' do
|
501
|
+
setup do
|
502
|
+
ActsAsMarkup.markdown_library = :bluecloth
|
503
|
+
class ::Post < ActiveRecord::Base
|
504
|
+
acts_as_markdown :body
|
505
|
+
end
|
506
|
+
@post = Post.create!(:title => 'Blah', :body => @text)
|
507
|
+
end
|
508
|
+
|
509
|
+
should 'return a blank string for `to_s` method' do
|
510
|
+
assert_equal @post.body.to_s, ''
|
511
|
+
end
|
512
|
+
|
513
|
+
should 'return a blank string for `to_html` method' do
|
514
|
+
assert_match(/[\n\s]*/, @post.body.to_html)
|
515
|
+
end
|
516
|
+
|
517
|
+
should "have a BlueCloth object returned for the column value" do
|
518
|
+
assert_kind_of BlueCloth, @post.body
|
519
|
+
end
|
520
|
+
|
521
|
+
teardown do
|
522
|
+
@post = nil
|
523
|
+
Post.delete_all
|
524
|
+
end
|
525
|
+
end
|
526
|
+
|
527
|
+
context 'with Ruby PEG Markdown' do
|
528
|
+
setup do
|
529
|
+
ActsAsMarkup.markdown_library = :rpeg
|
530
|
+
class ::Post < ActiveRecord::Base
|
531
|
+
acts_as_markdown :body
|
532
|
+
end
|
533
|
+
@post = Post.create!(:title => 'Blah', :body => @text)
|
534
|
+
end
|
535
|
+
|
536
|
+
should 'return a blank string for `to_s` method' do
|
537
|
+
assert_equal @post.body.to_s, ''
|
538
|
+
end
|
539
|
+
|
540
|
+
should 'return a blank string for `to_html` method' do
|
541
|
+
assert_match(/[\n\s]*/, @post.body.to_html)
|
542
|
+
end
|
543
|
+
|
544
|
+
should "have a PEGMarkdown object returned for the column value" do
|
545
|
+
assert_kind_of PEGMarkdown, @post.body
|
546
|
+
end
|
547
|
+
|
548
|
+
teardown do
|
549
|
+
@post = nil
|
550
|
+
Post.delete_all
|
551
|
+
end
|
552
|
+
end
|
553
|
+
end
|
554
|
+
|
291
555
|
context 'acts_as_markup with bad language name' do
|
292
556
|
should 'raise exception when a non-supported language is passed to acts_as_markup' do
|
293
557
|
assert_raise ActsAsMarkup::UnsportedMarkupLanguage do
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_as_markup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Landau
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-08-
|
12
|
+
date: 2008-08-07 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- lib/acts/as_markup.rb
|
72
72
|
- lib/acts_as_markup.rb
|
73
73
|
- lib/acts_as_markup/exts/rdiscount.rb
|
74
|
+
- lib/acts_as_markup/exts/string.rb
|
74
75
|
- tasks/bones.rake
|
75
76
|
- tasks/gem.rake
|
76
77
|
- tasks/git.rake
|