acts_as_markup 1.2.0 → 1.2.1

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
@@ -19,6 +19,11 @@ PROJ.version = ActsAsMarkup::VERSION
19
19
  PROJ.rdoc.include = %w(^lib/ LICENSE CHANGELOG README\.rdoc)
20
20
  PROJ.rdoc.remote_dir = 'acts_as_markup'
21
21
  PROJ.test.files = FileList['test/**/*_test.rb']
22
+ PROJ.rcov.opts = ['--no-html', '-T', '--sort coverage',
23
+ '-x "\/Library\/Ruby\/"',
24
+ '-x "\/opt\/local\/lib/ruby"',
25
+ '-x "\/System\/Library\/"']
26
+ PROJ.rcov.pattern = 'test/**/*_test.rb'
22
27
 
23
28
  %W(activesupport activerecord rdiscount RedCloth wikitext).each do |gem|
24
29
  depend_on gem
@@ -1,10 +1,10 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{acts_as_markup}
3
- s.version = "1.2.0"
3
+ s.version = "1.2.1"
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-09-10}
7
+ s.date = %q{2008-09-30}
8
8
  s.description = %q{Represent ActiveRecord Markdown, Textile, Wiki text, RDoc columns as Markdown, Textile Wikitext, RDoc objects using various external libraries to convert to HTML.}
9
9
  s.email = %q{brian.landau@viget.com}
10
10
  s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.rdoc"]
@@ -27,19 +27,19 @@ Gem::Specification.new do |s|
27
27
  s.add_runtime_dependency(%q<activerecord>, [">= 2.1.1"])
28
28
  s.add_runtime_dependency(%q<rdiscount>, [">= 1.2.9"])
29
29
  s.add_runtime_dependency(%q<RedCloth>, [">= 4.0.3"])
30
- s.add_runtime_dependency(%q<wikitext>, [">= 1.2"])
30
+ s.add_runtime_dependency(%q<wikitext>, [">= 1.2.1"])
31
31
  else
32
32
  s.add_dependency(%q<activesupport>, [">= 2.1.1"])
33
33
  s.add_dependency(%q<activerecord>, [">= 2.1.1"])
34
34
  s.add_dependency(%q<rdiscount>, [">= 1.2.9"])
35
35
  s.add_dependency(%q<RedCloth>, [">= 4.0.3"])
36
- s.add_dependency(%q<wikitext>, [">= 1.2"])
36
+ s.add_dependency(%q<wikitext>, [">= 1.2.1"])
37
37
  end
38
38
  else
39
39
  s.add_dependency(%q<activesupport>, [">= 2.1.1"])
40
40
  s.add_dependency(%q<activerecord>, [">= 2.1.1"])
41
41
  s.add_dependency(%q<rdiscount>, [">= 1.2.9"])
42
42
  s.add_dependency(%q<RedCloth>, [">= 4.0.3"])
43
- s.add_dependency(%q<wikitext>, [">= 1.2"])
43
+ s.add_dependency(%q<wikitext>, [">= 1.2.1"])
44
44
  end
45
45
  end
@@ -49,31 +49,13 @@ module ActiveRecord # :nodoc:
49
49
  #
50
50
  def acts_as_markup(options)
51
51
  case options[:language].to_sym
52
- when :markdown
53
- klass = get_markdown_class
54
- when :textile
55
- require 'redcloth'
56
- klass = 'RedCloth'
57
- when :wikitext
58
- require 'wikitext'
59
- require_extensions 'wikitext'
60
- klass = 'WikitextString'
61
- when :rdoc
62
- require 'rdoc/markup/simple_markup'
63
- require 'rdoc/markup/simple_markup/to_html'
64
- require_extensions 'rdoc'
65
- klass = 'RDocText'
52
+ when :markdown, :textile, :wikitext, :rdoc
53
+ klass = require_library_and_get_class(options[:language].to_sym)
66
54
  when :variable
67
- markdown_klass = get_markdown_class
68
- require 'redcloth'
69
- require 'wikitext'
70
- require 'rdoc/markup/simple_markup'
71
- require 'rdoc/markup/simple_markup/to_html'
72
- require_extensions 'wikitext'
73
- require_extensions 'rdoc'
74
- textile_klass = 'RedCloth'
75
- wiki_klass = 'WikitextString'
76
- rdoc_klass = 'RDocText'
55
+ markup_klasses = {}
56
+ [:textile, :wikitext, :rdoc, :markdown].each do |language|
57
+ markup_klasses[language] = require_library_and_get_class(language)
58
+ end
77
59
  options[:language_column] ||= :markup_language
78
60
  else
79
61
  raise ActsAsMarkup::UnsupportedMarkupLanguage, "#{options[:langauge]} is not a currently supported markup language."
@@ -101,13 +83,13 @@ module ActiveRecord # :nodoc:
101
83
  end
102
84
  case self.#{options[:language_column].to_s}
103
85
  when /markdown/i
104
- @#{col.to_s} = #{markdown_klass}.new(self['#{col.to_s}'].to_s)
86
+ @#{col.to_s} = #{markup_klasses[:markdown]}.new(self['#{col.to_s}'].to_s)
105
87
  when /textile/i
106
- @#{col.to_s} = #{textile_klass}.new(self['#{col.to_s}'].to_s)
88
+ @#{col.to_s} = #{markup_klasses[:textile]}.new(self['#{col.to_s}'].to_s)
107
89
  when /wikitext/i
108
- @#{col.to_s} = #{wiki_klass}.new(self['#{col.to_s}'].to_s)
90
+ @#{col.to_s} = #{markup_klasses[:wikitext]}.new(self['#{col.to_s}'].to_s)
109
91
  when /rdoc/i
110
- @#{col.to_s} = #{rdoc_klass}.new(self['#{col.to_s}'].to_s)
92
+ @#{col.to_s} = #{markup_klasses[:rdoc]}.new(self['#{col.to_s}'].to_s)
111
93
  else
112
94
  @#{col.to_s} = self['#{col.to_s}']
113
95
  end
@@ -163,6 +145,27 @@ module ActiveRecord # :nodoc:
163
145
  require "acts_as_markup/exts/#{library.to_s}"
164
146
  end
165
147
  end
148
+
149
+ def require_library_and_get_class(language)
150
+ case language
151
+ when :markdown
152
+ return get_markdown_class
153
+ when :textile
154
+ require 'redcloth'
155
+ return 'RedCloth'
156
+ when :wikitext
157
+ require 'wikitext'
158
+ require_extensions 'wikitext'
159
+ return 'WikitextString'
160
+ when :rdoc
161
+ require 'rdoc/markup/simple_markup'
162
+ require 'rdoc/markup/simple_markup/to_html'
163
+ require_extensions 'rdoc'
164
+ return 'RDocText'
165
+ else
166
+ return 'String'
167
+ end
168
+ end
166
169
 
167
170
  end
168
171
  end
@@ -2,7 +2,7 @@ require 'active_support'
2
2
 
3
3
  module ActsAsMarkup
4
4
  # :stopdoc:
5
- VERSION = '1.2.0'
5
+ VERSION = '1.2.1'
6
6
  LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR
7
7
  PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR
8
8
  # :startdoc:
@@ -44,30 +44,25 @@ module MaRuKu # :nodoc:
44
44
  # method because we need +to_html+ to return the original text on plain text fields of
45
45
  # the variable language option on +acts_as_markup+
46
46
  def array_to_html(array)
47
- e = []
48
- array.each do |c|
49
- method = c.kind_of?(MDElement) ?
50
- "to_html_#{c.node_type}" : "to_xml"
51
-
52
- if not c.respond_to?(method)
53
- #raise "Object does not answer to #{method}: #{c.class} #{c.inspect}"
47
+ elements = []
48
+ array.each do |item|
49
+ method = item.kind_of?(MDElement) ? "to_html_#{item.node_type}" : "to_xml"
50
+ unless item.respond_to?(method)
54
51
  next
55
52
  end
56
53
 
57
- h = c.send(method)
58
-
59
- if h.nil?
60
- raise "Nil html created by method #{method}:\n#{h.inspect}\n"+
61
- " for object #{c.inspect[0,300]}"
54
+ html_text = item.send(method)
55
+ if html_text.nil?
56
+ raise "Nil html created by method #{method}:\n#{html_text.inspect}\n for object #{item.inspect[0,300]}"
62
57
  end
63
58
 
64
- if h.kind_of?Array
65
- e = e + h #h.each do |hh| e << hh end
59
+ if html_text.kind_of?Array
60
+ elements = elements + html_text
66
61
  else
67
- e << h
62
+ elements << html_text
68
63
  end
69
64
  end
70
- e
65
+ elements
71
66
  end
72
67
 
73
68
  end
@@ -1,4 +1,7 @@
1
1
  require 'rake/testtask'
2
+ if HAVE_RCOV
3
+ require 'rcov/rcovtask'
4
+ end
2
5
 
3
6
  namespace :test do
4
7
 
@@ -12,17 +15,9 @@ namespace :test do
12
15
 
13
16
  if HAVE_RCOV
14
17
  desc 'Run rcov on the unit tests'
15
- task :rcov => :clobber_rcov do
16
- opts = PROJ.rcov.opts.dup << '-o' << PROJ.rcov.dir
17
- opts = opts.join(' ')
18
- files = if test(?f, PROJ.test.file) then [PROJ.test.file]
19
- else PROJ.test.files end
20
- files = files.join(' ')
21
- sh "#{RCOV} #{files} #{opts}"
22
- end
23
-
24
- task :clobber_rcov do
25
- rm_r 'coverage' rescue nil
18
+ Rcov::RcovTask.new do |t|
19
+ t.pattern = PROJ.rcov.pattern
20
+ t.rcov_opts = PROJ.rcov.opts
26
21
  end
27
22
  end
28
23
 
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: 1.2.0
4
+ version: 1.2.1
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-09-10 00:00:00 -04:00
12
+ date: 2008-09-30 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -60,7 +60,7 @@ dependencies:
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: "1.2"
63
+ version: 1.2.1
64
64
  version:
65
65
  description: Represent ActiveRecord Markdown, Textile, Wiki text, RDoc columns as Markdown, Textile Wikitext, RDoc objects using various external libraries to convert to HTML.
66
66
  email: brian.landau@viget.com