rtex 2.0.1 → 2.0.2
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/CHANGELOG +25 -0
- data/{Manifest.txt → Manifest} +6 -12
- data/Rakefile +18 -20
- data/lib/rtex/escaping.rb +2 -2
- data/lib/rtex/framework/rails.rb +6 -1
- data/lib/rtex/version.rb +1 -1
- data/rtex.gemspec +117 -0
- data/test/document_test.rb +55 -51
- data/test/filter_test.rb +18 -14
- data/test/tempdir_test.rb +48 -44
- data/test/test_helper.rb +7 -4
- metadata +49 -24
- data/HISTORY.rdoc +0 -29
- data/tasks/doc.rake +0 -48
- data/tasks/gem.rake +0 -110
- data/tasks/manifest.rake +0 -49
- data/tasks/post_load.rake +0 -26
- data/tasks/setup.rb +0 -205
- data/tasks/test.rake +0 -38
data/CHANGELOG
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
v1.99.0 2008-04-20
|
2
|
+
|
3
|
+
Released RTeX v1.99.0 as a Rubygem, with a standalone executable for PDF generation
|
4
|
+
and support for plugin installation from the executable.
|
5
|
+
|
6
|
+
This release requires Rails >= 2.0.1
|
7
|
+
|
8
|
+
Thanks to:
|
9
|
+
* Jonas Bähr for a patch with additional LaTeX escaping
|
10
|
+
* Fouad Mardini for a TemplateHandler patch
|
11
|
+
|
12
|
+
v1.0.0+
|
13
|
+
|
14
|
+
Added quite a few *long* overdue fixes & enhancements sent in by various people.
|
15
|
+
|
16
|
+
* Added latex escaping 'l' method (Thanks, Benjamin Quorning)
|
17
|
+
* Added support for @options_for_rtex hash for configuration:
|
18
|
+
* Added :tempdir option, and changed default temporary directory
|
19
|
+
(Thanks, Francesco Levorato)
|
20
|
+
* Added :preprocess option to support running through latex before pdflatex
|
21
|
+
(Thanks Charles Lesburg, Benjamin Quorning)
|
22
|
+
* Moved old @filename setting to :filename option in this hash
|
23
|
+
|
24
|
+
If you're using the same settings for @options_for_rtex often, you might want to
|
25
|
+
put your assignment in a before_filter (perhaps overriding :filename, etc in your actions).
|
data/{Manifest.txt → Manifest}
RENAMED
@@ -1,24 +1,18 @@
|
|
1
|
-
HISTORY.rdoc
|
2
|
-
Manifest.txt
|
3
|
-
README.rdoc
|
4
|
-
README_RAILS.rdoc
|
5
|
-
Rakefile
|
6
1
|
bin/rtex
|
2
|
+
CHANGELOG
|
7
3
|
init.rb
|
8
|
-
lib/rtex.rb
|
9
4
|
lib/rtex/document.rb
|
10
5
|
lib/rtex/escaping.rb
|
11
6
|
lib/rtex/framework/merb.rb
|
12
7
|
lib/rtex/framework/rails.rb
|
13
8
|
lib/rtex/tempdir.rb
|
14
9
|
lib/rtex/version.rb
|
10
|
+
lib/rtex.rb
|
11
|
+
Manifest
|
15
12
|
rails/init.rb
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
tasks/post_load.rake
|
20
|
-
tasks/setup.rb
|
21
|
-
tasks/test.rake
|
13
|
+
Rakefile
|
14
|
+
README.rdoc
|
15
|
+
README_RAILS.rdoc
|
22
16
|
test/document_test.rb
|
23
17
|
test/filter_test.rb
|
24
18
|
test/fixtures/first.tex
|
data/Rakefile
CHANGED
@@ -1,23 +1,21 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
load 'tasks/setup.rb'
|
4
|
-
|
5
|
-
PROJ.name = 'rtex'
|
6
|
-
PROJ.authors = ['Bruce Williams', 'Wiebe Cazemier']
|
7
|
-
PROJ.email = ['bruce@codefluency.com']
|
8
|
-
PROJ.url = 'http://rtex.rubyforge.org'
|
9
|
-
PROJ.rubyforge_name = 'rtex'
|
1
|
+
require 'rubygems'
|
2
|
+
require 'echoe'
|
10
3
|
|
11
|
-
|
12
|
-
PROJ.ruby_opts = []
|
13
|
-
PROJ.test_opts = []
|
14
|
-
|
15
|
-
PROJ.rdoc_main = 'README.rdoc'
|
16
|
-
PROJ.rdoc_include.push 'README.rdoc', 'README_RAILS.rdoc'
|
17
|
-
|
18
|
-
PROJ.description = "LaTeX preprocessor for PDF generation; Rails plugin"
|
19
|
-
PROJ.summary = PROJ.description
|
4
|
+
require File.dirname(__FILE__) << "/lib/rtex/version"
|
20
5
|
|
21
|
-
|
6
|
+
Echoe.new 'rtex' do |p|
|
7
|
+
p.version = RTeX::Version::STRING
|
8
|
+
p.author = ['Bruce Williams', 'Wiebe Cazemier']
|
9
|
+
p.email = 'bruce@codefluency.com'
|
10
|
+
p.project = 'rtex'
|
11
|
+
p.summary = "LaTeX preprocessor for PDF generation; Rails plugin"
|
12
|
+
p.url = "http://rtex.rubyforge.org"
|
13
|
+
p.include_rakefile = true
|
14
|
+
p.development_dependencies = %w(Shoulda echoe)
|
15
|
+
p.rcov_options = '--exclude gems --exclude version.rb --sort coverage --text-summary --html -o coverage'
|
16
|
+
p.ignore_pattern = /^(pkg|doc|site)|\.svn|CVS|\.bzr|\.DS|\.git/
|
17
|
+
end
|
22
18
|
|
23
|
-
task
|
19
|
+
task :coverage do
|
20
|
+
system "open coverage/index.html" if PLATFORM['darwin']
|
21
|
+
end
|
data/lib/rtex/escaping.rb
CHANGED
@@ -12,14 +12,14 @@ module RTeX
|
|
12
12
|
# List of replacements
|
13
13
|
def replacements
|
14
14
|
@replacements ||= [
|
15
|
-
[/([{}])/, '
|
15
|
+
[/([{}])/, '\\\\\1'],
|
16
16
|
[/\\/, '\textbackslash{}'],
|
17
17
|
[/\^/, '\textasciicircum{}'],
|
18
18
|
[/~/, '\textasciitilde{}'],
|
19
19
|
[/\|/, '\textbar{}'],
|
20
20
|
[/\</, '\textless{}'],
|
21
21
|
[/\>/, '\textgreater{}'],
|
22
|
-
[/([_$&%#])/, '
|
22
|
+
[/([_$&%#])/, '\\\\\1']
|
23
23
|
]
|
24
24
|
end
|
25
25
|
|
data/lib/rtex/framework/rails.rb
CHANGED
@@ -19,7 +19,12 @@ module RTeX
|
|
19
19
|
class Template < ::ActionView::TemplateHandlers::ERB
|
20
20
|
def initialize(*args)
|
21
21
|
super
|
22
|
-
|
22
|
+
# Support Rails render API before:
|
23
|
+
# commit d2ccb852d4e1f6f1b01e43f32213053ae3bef408
|
24
|
+
# Date: Fri Jul 18 16:00:20 2008 -0500
|
25
|
+
if defined?(@view)
|
26
|
+
@view.template_format = :pdf
|
27
|
+
end
|
23
28
|
end
|
24
29
|
end
|
25
30
|
|
data/lib/rtex/version.rb
CHANGED
data/rtex.gemspec
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
|
2
|
+
# Gem::Specification for Rtex-2.0.2
|
3
|
+
# Originally generated by Echoe
|
4
|
+
|
5
|
+
--- !ruby/object:Gem::Specification
|
6
|
+
name: rtex
|
7
|
+
version: !ruby/object:Gem::Version
|
8
|
+
version: 2.0.2
|
9
|
+
platform: ruby
|
10
|
+
authors:
|
11
|
+
- Bruce Williams, Wiebe Cazemier
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
|
15
|
+
date: 2008-08-19 00:00:00 -05:00
|
16
|
+
default_executable:
|
17
|
+
dependencies:
|
18
|
+
- !ruby/object:Gem::Dependency
|
19
|
+
name: Shoulda
|
20
|
+
type: :development
|
21
|
+
version_requirement:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: "0"
|
27
|
+
version:
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: echoe
|
30
|
+
type: :development
|
31
|
+
version_requirement:
|
32
|
+
version_requirements: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: "0"
|
37
|
+
version:
|
38
|
+
description: LaTeX preprocessor for PDF generation; Rails plugin
|
39
|
+
email: bruce@codefluency.com
|
40
|
+
executables:
|
41
|
+
- rtex
|
42
|
+
extensions: []
|
43
|
+
|
44
|
+
extra_rdoc_files:
|
45
|
+
- bin/rtex
|
46
|
+
- CHANGELOG
|
47
|
+
- lib/rtex/document.rb
|
48
|
+
- lib/rtex/escaping.rb
|
49
|
+
- lib/rtex/framework/merb.rb
|
50
|
+
- lib/rtex/framework/rails.rb
|
51
|
+
- lib/rtex/tempdir.rb
|
52
|
+
- lib/rtex/version.rb
|
53
|
+
- lib/rtex.rb
|
54
|
+
- README.rdoc
|
55
|
+
- README_RAILS.rdoc
|
56
|
+
files:
|
57
|
+
- bin/rtex
|
58
|
+
- CHANGELOG
|
59
|
+
- init.rb
|
60
|
+
- lib/rtex/document.rb
|
61
|
+
- lib/rtex/escaping.rb
|
62
|
+
- lib/rtex/framework/merb.rb
|
63
|
+
- lib/rtex/framework/rails.rb
|
64
|
+
- lib/rtex/tempdir.rb
|
65
|
+
- lib/rtex/version.rb
|
66
|
+
- lib/rtex.rb
|
67
|
+
- Manifest
|
68
|
+
- rails/init.rb
|
69
|
+
- Rakefile
|
70
|
+
- README.rdoc
|
71
|
+
- README_RAILS.rdoc
|
72
|
+
- test/document_test.rb
|
73
|
+
- test/filter_test.rb
|
74
|
+
- test/fixtures/first.tex
|
75
|
+
- test/fixtures/first.tex.erb
|
76
|
+
- test/fixtures/fragment.tex.erb
|
77
|
+
- test/fixtures/text.textile
|
78
|
+
- test/tempdir_test.rb
|
79
|
+
- test/test_helper.rb
|
80
|
+
- vendor/instiki/LICENSE
|
81
|
+
- vendor/instiki/redcloth_for_tex.rb
|
82
|
+
- rtex.gemspec
|
83
|
+
has_rdoc: true
|
84
|
+
homepage: http://rtex.rubyforge.org
|
85
|
+
post_install_message:
|
86
|
+
rdoc_options:
|
87
|
+
- --line-numbers
|
88
|
+
- --inline-source
|
89
|
+
- --title
|
90
|
+
- Rtex
|
91
|
+
- --main
|
92
|
+
- README.rdoc
|
93
|
+
require_paths:
|
94
|
+
- lib
|
95
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
100
|
+
version:
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: "1.2"
|
106
|
+
version:
|
107
|
+
requirements: []
|
108
|
+
|
109
|
+
rubyforge_project: rtex
|
110
|
+
rubygems_version: 1.2.0
|
111
|
+
specification_version: 2
|
112
|
+
summary: LaTeX preprocessor for PDF generation; Rails plugin
|
113
|
+
test_files:
|
114
|
+
- test/document_test.rb
|
115
|
+
- test/filter_test.rb
|
116
|
+
- test/tempdir_test.rb
|
117
|
+
- test/test_helper.rb
|
data/test/document_test.rb
CHANGED
@@ -1,70 +1,74 @@
|
|
1
1
|
require File.dirname(__FILE__) << '/test_helper'
|
2
2
|
|
3
|
-
|
3
|
+
class DocumentTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "Document Generation" do
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
7
|
+
setup do
|
8
|
+
change_tmpdir_for_testing
|
9
|
+
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
11
|
+
should "have a to_pdf method" do
|
12
|
+
assert document(:first).respond_to?(:to_pdf)
|
13
|
+
end
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
-
|
15
|
+
should "escape characters" do
|
16
|
+
assert_equal '\textbackslash{}\textasciitilde{}', RTeX::Document.escape('\~')
|
17
|
+
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
should "use a to_pdf block to move a file to a relative path" do
|
20
|
+
begin
|
21
|
+
path = File.expand_path(File.dirname(__FILE__) << '/tmp/this_is_relative_to_pwd.pdf')
|
22
|
+
document(:first).to_pdf do |filename|
|
23
|
+
assert_nothing_raised do
|
24
|
+
FileUtils.move filename, path
|
25
|
+
end
|
26
|
+
assert File.exists?(path)
|
23
27
|
end
|
24
|
-
|
28
|
+
ensure
|
29
|
+
FileUtils.rm path rescue nil
|
25
30
|
end
|
26
|
-
ensure
|
27
|
-
FileUtils.rm path rescue nil
|
28
31
|
end
|
29
|
-
end
|
30
32
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
should "generate PDF and return as a string" do
|
34
|
+
@author = 'Foo'
|
35
|
+
assert_equal '%PDF', document(:first).to_pdf(binding)[0, 4]
|
36
|
+
end
|
35
37
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
38
|
+
should "generate TeX source and return as a string with debug option" do
|
39
|
+
@author = 'Foo'
|
40
|
+
assert_not_equal '%PDF', document(:first, :tex => true).to_pdf(binding)[0, 4]
|
41
|
+
end
|
40
42
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
43
|
+
should "generate PDF and give access to file directly" do
|
44
|
+
@author = 'Foo'
|
45
|
+
data_read = nil
|
46
|
+
invocation_result = document(:first).to_pdf(binding) do |filename|
|
47
|
+
data_read = File.open(filename, 'rb') { |f| f.read }
|
48
|
+
:not_the_file_contents
|
49
|
+
end
|
50
|
+
assert_equal '%PDF', data_read[0, 4]
|
51
|
+
assert_equal :not_the_file_contents, invocation_result
|
47
52
|
end
|
48
|
-
assert_equal '%PDF', data_read[0, 4]
|
49
|
-
assert_equal :not_the_file_contents, invocation_result
|
50
|
-
end
|
51
53
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
54
|
+
should "generate TeX source and give access to file directly" do
|
55
|
+
@author = 'Foo'
|
56
|
+
data_read = nil
|
57
|
+
invocation_result = document(:first, :tex => true).to_pdf(binding) do |filename|
|
58
|
+
data_read = File.open(filename, 'rb') { |f| f.read }
|
59
|
+
:not_the_file_contents
|
60
|
+
end
|
61
|
+
assert_not_equal '%PDF', data_read[0, 4]
|
62
|
+
assert_equal :not_the_file_contents, invocation_result
|
63
|
+
end
|
64
|
+
|
65
|
+
should "wrap in a layout using `yield'" do
|
66
|
+
doc = document(:fragment, :layout => 'testing_layout[<%= yield %>]')
|
67
|
+
@name = 'ERB'
|
68
|
+
source = doc.source(binding)
|
69
|
+
assert source =~ /^testing_layout.*?ERB, Fragmented/
|
58
70
|
end
|
59
|
-
assert_not_equal '%PDF', data_read[0, 4]
|
60
|
-
assert_equal :not_the_file_contents, invocation_result
|
61
|
-
end
|
62
71
|
|
63
|
-
specify "can wrap in a layout using `yield'" do
|
64
|
-
doc = document(:fragment, :layout => 'testing_layout[<%= yield %>]')
|
65
|
-
@name = 'ERB'
|
66
|
-
source = doc.source(binding)
|
67
|
-
assert source =~ /^testing_layout.*?ERB, Fragmented/
|
68
72
|
end
|
69
73
|
|
70
74
|
end
|
data/test/filter_test.rb
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
require File.dirname(__FILE__) << '/test_helper'
|
2
2
|
|
3
|
-
|
3
|
+
class FilterTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "Filtering Documents" do
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
7
|
+
should "filter through textile" do
|
8
|
+
doc = document('text.textile', :filter => 'textile')
|
9
|
+
source = doc.source(binding)
|
10
|
+
assert source.include?('\item')
|
11
|
+
end
|
10
12
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
should "not affect layouts" do
|
14
|
+
doc = document('text.textile',
|
15
|
+
:filter => 'textile',
|
16
|
+
:layout => "* layout\n* is\n<%= yield %>")
|
17
|
+
source = doc.source(binding)
|
18
|
+
assert source.include?("* layout"), "filtered layout"
|
19
|
+
assert source.include?('\item'), "didn't filter content"
|
20
|
+
end
|
19
21
|
|
22
|
+
end
|
23
|
+
|
20
24
|
end
|
data/test/tempdir_test.rb
CHANGED
@@ -1,63 +1,67 @@
|
|
1
1
|
require File.dirname(__FILE__) << '/test_helper'
|
2
2
|
|
3
|
-
|
3
|
+
class TempdirTest < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "Creating a temporary directory" do
|
4
6
|
|
5
|
-
|
6
|
-
|
7
|
-
|
7
|
+
setup do
|
8
|
+
change_tmpdir_for_testing
|
9
|
+
end
|
8
10
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
should "change directory" do
|
12
|
+
old_location = Dir.pwd
|
13
|
+
block_location = nil
|
14
|
+
RTeX::Tempdir.open do
|
15
|
+
assert_not_equal old_location, Dir.pwd
|
16
|
+
block_location = Dir.pwd
|
17
|
+
end
|
18
|
+
assert_equal old_location, Dir.pwd
|
19
|
+
assert !File.exists?(block_location)
|
15
20
|
end
|
16
|
-
assert_equal old_location, Dir.pwd
|
17
|
-
assert !File.exists?(block_location)
|
18
|
-
end
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
should "use a 'rtex' name prefix" do
|
23
|
+
RTeX::Tempdir.open do
|
24
|
+
assert_equal 'rtex-', File.basename(Dir.pwd)[0,5]
|
25
|
+
end
|
23
26
|
end
|
24
|
-
end
|
25
27
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
should "remove the directory after use if no exception occurs by default" do
|
29
|
+
path = nil
|
30
|
+
RTeX::Tempdir.open do
|
31
|
+
path = Dir.pwd
|
32
|
+
assert File.exists?(path)
|
33
|
+
end
|
34
|
+
assert !File.exists?(path)
|
31
35
|
end
|
32
|
-
assert !File.exists?(path)
|
33
|
-
end
|
34
36
|
|
35
|
-
|
36
|
-
|
37
|
-
|
37
|
+
should "return the result of the last statement if automatically removing the directory" do
|
38
|
+
result = RTeX::Tempdir.open do
|
39
|
+
:last
|
40
|
+
end
|
41
|
+
assert_equal :last, :last
|
38
42
|
end
|
39
|
-
assert_equal :last, :last
|
40
|
-
end
|
41
43
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
44
|
+
should "return the result of the last statment if not automatically removing the directory" do
|
45
|
+
tempdir = nil # to capture value
|
46
|
+
result = RTeX::Tempdir.open do |tempdir|
|
47
|
+
:last
|
48
|
+
end
|
49
|
+
tempdir.remove!
|
50
|
+
assert_equal :last, :last
|
46
51
|
end
|
47
|
-
tempdir.remove!
|
48
|
-
assert_equal :last, :last
|
49
|
-
end
|
50
52
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
53
|
+
should "not remove the directory after use if an exception occurs" do
|
54
|
+
path = nil
|
55
|
+
assert_raises RuntimeError do
|
56
|
+
RTeX::Tempdir.open do
|
57
|
+
path = Dir.pwd
|
58
|
+
assert File.directory?(path)
|
59
|
+
raise "Test exception!"
|
60
|
+
end
|
58
61
|
end
|
62
|
+
assert File.directory?(path)
|
59
63
|
end
|
60
|
-
|
64
|
+
|
61
65
|
end
|
62
66
|
|
63
67
|
end
|
data/test/test_helper.rb
CHANGED
@@ -1,9 +1,12 @@
|
|
1
1
|
require 'test/unit'
|
2
2
|
|
3
|
-
require 'rubygems'
|
4
|
-
|
5
|
-
require '
|
6
|
-
require 'flexmock/test_unit'
|
3
|
+
require 'rubygems'
|
4
|
+
begin
|
5
|
+
require 'shoulda'
|
6
|
+
require 'flexmock/test_unit'
|
7
|
+
rescue LoadError
|
8
|
+
abort "the `Shoulda' and `flexmock' gems are required for testing"
|
9
|
+
end
|
7
10
|
|
8
11
|
require File.dirname(__FILE__) << '/../lib/rtex'
|
9
12
|
|
metadata
CHANGED
@@ -1,52 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtex
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Bruce Williams
|
8
|
-
- Wiebe Cazemier
|
7
|
+
- Bruce Williams, Wiebe Cazemier
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
11
|
|
13
|
-
date: 2008-
|
12
|
+
date: 2008-08-19 00:00:00 -05:00
|
14
13
|
default_executable:
|
15
|
-
dependencies:
|
16
|
-
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: Shoulda
|
17
|
+
type: :development
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: echoe
|
27
|
+
type: :development
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
17
35
|
description: LaTeX preprocessor for PDF generation; Rails plugin
|
18
|
-
email:
|
19
|
-
- bruce@codefluency.com
|
36
|
+
email: bruce@codefluency.com
|
20
37
|
executables:
|
21
38
|
- rtex
|
22
39
|
extensions: []
|
23
40
|
|
24
41
|
extra_rdoc_files:
|
25
|
-
- README.rdoc
|
26
|
-
- README_RAILS.rdoc
|
27
42
|
- bin/rtex
|
28
|
-
|
29
|
-
-
|
30
|
-
-
|
43
|
+
- CHANGELOG
|
44
|
+
- lib/rtex/document.rb
|
45
|
+
- lib/rtex/escaping.rb
|
46
|
+
- lib/rtex/framework/merb.rb
|
47
|
+
- lib/rtex/framework/rails.rb
|
48
|
+
- lib/rtex/tempdir.rb
|
49
|
+
- lib/rtex/version.rb
|
50
|
+
- lib/rtex.rb
|
31
51
|
- README.rdoc
|
32
52
|
- README_RAILS.rdoc
|
33
|
-
|
53
|
+
files:
|
34
54
|
- bin/rtex
|
55
|
+
- CHANGELOG
|
35
56
|
- init.rb
|
36
|
-
- lib/rtex.rb
|
37
57
|
- lib/rtex/document.rb
|
38
58
|
- lib/rtex/escaping.rb
|
39
59
|
- lib/rtex/framework/merb.rb
|
40
60
|
- lib/rtex/framework/rails.rb
|
41
61
|
- lib/rtex/tempdir.rb
|
42
62
|
- lib/rtex/version.rb
|
63
|
+
- lib/rtex.rb
|
64
|
+
- Manifest
|
43
65
|
- rails/init.rb
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
- tasks/post_load.rake
|
48
|
-
- tasks/setup.rb
|
49
|
-
- tasks/test.rake
|
66
|
+
- Rakefile
|
67
|
+
- README.rdoc
|
68
|
+
- README_RAILS.rdoc
|
50
69
|
- test/document_test.rb
|
51
70
|
- test/filter_test.rb
|
52
71
|
- test/fixtures/first.tex
|
@@ -57,10 +76,15 @@ files:
|
|
57
76
|
- test/test_helper.rb
|
58
77
|
- vendor/instiki/LICENSE
|
59
78
|
- vendor/instiki/redcloth_for_tex.rb
|
79
|
+
- rtex.gemspec
|
60
80
|
has_rdoc: true
|
61
81
|
homepage: http://rtex.rubyforge.org
|
62
82
|
post_install_message:
|
63
83
|
rdoc_options:
|
84
|
+
- --line-numbers
|
85
|
+
- --inline-source
|
86
|
+
- --title
|
87
|
+
- Rtex
|
64
88
|
- --main
|
65
89
|
- README.rdoc
|
66
90
|
require_paths:
|
@@ -73,14 +97,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
73
97
|
version:
|
74
98
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
99
|
requirements:
|
76
|
-
- - "
|
100
|
+
- - "="
|
77
101
|
- !ruby/object:Gem::Version
|
78
|
-
version: "
|
102
|
+
version: "1.2"
|
79
103
|
version:
|
80
104
|
requirements: []
|
81
105
|
|
82
106
|
rubyforge_project: rtex
|
83
|
-
rubygems_version: 1.
|
107
|
+
rubygems_version: 1.2.0
|
84
108
|
signing_key:
|
85
109
|
specification_version: 2
|
86
110
|
summary: LaTeX preprocessor for PDF generation; Rails plugin
|
@@ -88,3 +112,4 @@ test_files:
|
|
88
112
|
- test/document_test.rb
|
89
113
|
- test/filter_test.rb
|
90
114
|
- test/tempdir_test.rb
|
115
|
+
- test/test_helper.rb
|
data/HISTORY.rdoc
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
2008-04-20
|
2
|
-
|
3
|
-
Released RTeX v1.99.0 as a Rubygem, with a standalone executable for PDF generation
|
4
|
-
and support for plugin installation from the executable.
|
5
|
-
|
6
|
-
This release requires Rails >= 2.0.1
|
7
|
-
|
8
|
-
Thanks to:
|
9
|
-
* Jonas Bähr for a patch with additional LaTeX escaping
|
10
|
-
* Fouad Mardini for a TemplateHandler patch
|
11
|
-
|
12
|
-
2007
|
13
|
-
|
14
|
-
No active development, maintenance primarily by Wiebe Cazemier
|
15
|
-
|
16
|
-
2006-07-27
|
17
|
-
|
18
|
-
Added quite a few *long* overdue fixes & enhancements sent in by various people.
|
19
|
-
|
20
|
-
* Added latex escaping 'l' method (Thanks, Benjamin Quorning)
|
21
|
-
* Added support for @options_for_rtex hash for configuration:
|
22
|
-
* Added :tempdir option, and changed default temporary directory
|
23
|
-
(Thanks, Francesco Levorato)
|
24
|
-
* Added :preprocess option to support running through latex before pdflatex
|
25
|
-
(Thanks Charles Lesburg, Benjamin Quorning)
|
26
|
-
* Moved old @filename setting to :filename option in this hash
|
27
|
-
|
28
|
-
If you're using the same settings for @options_for_rtex often, you might want to
|
29
|
-
put your assignment in a before_filter (perhaps overriding :filename, etc in your actions).
|
data/tasks/doc.rake
DELETED
@@ -1,48 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
require 'rake/rdoctask'
|
4
|
-
|
5
|
-
namespace :doc do
|
6
|
-
|
7
|
-
desc 'Generate RDoc documentation'
|
8
|
-
Rake::RDocTask.new do |rd|
|
9
|
-
rd.main = PROJ.rdoc_main
|
10
|
-
rd.rdoc_dir = PROJ.rdoc_dir
|
11
|
-
|
12
|
-
incl = Regexp.new(PROJ.rdoc_include.join('|'))
|
13
|
-
excl = Regexp.new(PROJ.rdoc_exclude.join('|'))
|
14
|
-
files = PROJ.files.find_all do |fn|
|
15
|
-
case fn
|
16
|
-
when excl; false
|
17
|
-
when incl; true
|
18
|
-
else false end
|
19
|
-
end
|
20
|
-
rd.rdoc_files.push(*files)
|
21
|
-
|
22
|
-
title = "#{PROJ.name}-#{PROJ.version} Documentation"
|
23
|
-
title = "#{PROJ.rubyforge_name}'s " + title if PROJ.rubyforge_name != title
|
24
|
-
|
25
|
-
rd.options << "-t #{title}"
|
26
|
-
rd.options.concat(PROJ.rdoc_opts)
|
27
|
-
end
|
28
|
-
|
29
|
-
desc 'Generate ri locally for testing'
|
30
|
-
task :ri => :clobber_ri do
|
31
|
-
sh "#{RDOC} --ri -o ri ."
|
32
|
-
end
|
33
|
-
|
34
|
-
task :clobber_ri do
|
35
|
-
rm_r 'ri' rescue nil
|
36
|
-
end
|
37
|
-
|
38
|
-
end # namespace :doc
|
39
|
-
|
40
|
-
desc 'Alias to doc:rdoc'
|
41
|
-
task :doc => 'doc:rdoc'
|
42
|
-
|
43
|
-
desc 'Remove all build products'
|
44
|
-
task :clobber => %w(doc:clobber_rdoc doc:clobber_ri)
|
45
|
-
|
46
|
-
remove_desc_for_task %w(doc:clobber_rdoc)
|
47
|
-
|
48
|
-
# EOF
|
data/tasks/gem.rake
DELETED
@@ -1,110 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
require 'rake/gempackagetask'
|
4
|
-
|
5
|
-
namespace :gem do
|
6
|
-
|
7
|
-
PROJ.spec = Gem::Specification.new do |s|
|
8
|
-
s.name = PROJ.name
|
9
|
-
s.version = PROJ.version
|
10
|
-
s.summary = PROJ.summary
|
11
|
-
s.authors = Array(PROJ.authors)
|
12
|
-
s.email = PROJ.email
|
13
|
-
s.homepage = Array(PROJ.url).first
|
14
|
-
s.rubyforge_project = PROJ.rubyforge_name
|
15
|
-
s.post_install_message = PROJ.post_install_message
|
16
|
-
|
17
|
-
s.description = PROJ.description
|
18
|
-
|
19
|
-
PROJ.dependencies.each do |dep|
|
20
|
-
s.add_dependency(*dep)
|
21
|
-
end
|
22
|
-
|
23
|
-
s.files = PROJ.files
|
24
|
-
s.executables = PROJ.executables.map {|fn| File.basename(fn)}
|
25
|
-
s.extensions = PROJ.files.grep %r/extconf\.rb$/
|
26
|
-
|
27
|
-
s.bindir = 'bin'
|
28
|
-
dirs = Dir["{#{PROJ.libs.join(',')}}"]
|
29
|
-
s.require_paths = dirs unless dirs.empty?
|
30
|
-
|
31
|
-
incl = Regexp.new(PROJ.rdoc_include.join('|'))
|
32
|
-
excl = PROJ.rdoc_exclude.dup.concat %w[\.rb$ ^(\.\/|\/)?ext]
|
33
|
-
excl = Regexp.new(excl.join('|'))
|
34
|
-
rdoc_files = PROJ.files.find_all do |fn|
|
35
|
-
case fn
|
36
|
-
when excl; false
|
37
|
-
when incl; true
|
38
|
-
else false end
|
39
|
-
end
|
40
|
-
s.rdoc_options = PROJ.rdoc_opts + ['--main', PROJ.rdoc_main]
|
41
|
-
s.extra_rdoc_files = rdoc_files
|
42
|
-
s.has_rdoc = true
|
43
|
-
|
44
|
-
if test ?f, PROJ.test_file
|
45
|
-
s.test_file = PROJ.test_file
|
46
|
-
else
|
47
|
-
s.test_files = PROJ.tests.to_a
|
48
|
-
end
|
49
|
-
|
50
|
-
# Do any extra stuff the user wants
|
51
|
-
# spec_extras.each do |msg, val|
|
52
|
-
# case val
|
53
|
-
# when Proc
|
54
|
-
# val.call(s.send(msg))
|
55
|
-
# else
|
56
|
-
# s.send "#{msg}=", val
|
57
|
-
# end
|
58
|
-
# end
|
59
|
-
end
|
60
|
-
|
61
|
-
desc 'Show information about the gem'
|
62
|
-
task :debug do
|
63
|
-
puts PROJ.spec.to_ruby
|
64
|
-
end
|
65
|
-
|
66
|
-
pkg = Rake::PackageTask.new(PROJ.name, PROJ.version) do |pkg|
|
67
|
-
pkg.need_tar = PROJ.need_tar
|
68
|
-
pkg.need_zip = PROJ.need_zip
|
69
|
-
pkg.package_files += PROJ.spec.files
|
70
|
-
end
|
71
|
-
Rake::Task['gem:package'].instance_variable_set(:@full_comment, nil)
|
72
|
-
|
73
|
-
gem_file = if PROJ.spec.platform == Gem::Platform::RUBY
|
74
|
-
"#{pkg.package_name}.gem"
|
75
|
-
else
|
76
|
-
"#{pkg.package_name}-#{PROJ.spec.platform}.gem"
|
77
|
-
end
|
78
|
-
|
79
|
-
desc "Build the gem file #{gem_file}"
|
80
|
-
task :package => "#{pkg.package_dir}/#{gem_file}"
|
81
|
-
|
82
|
-
file "#{pkg.package_dir}/#{gem_file}" => [pkg.package_dir] + PROJ.spec.files do
|
83
|
-
when_writing("Creating GEM") {
|
84
|
-
Gem::Builder.new(PROJ.spec).build
|
85
|
-
verbose(true) {
|
86
|
-
mv gem_file, "#{pkg.package_dir}/#{gem_file}"
|
87
|
-
}
|
88
|
-
}
|
89
|
-
end
|
90
|
-
|
91
|
-
desc 'Install the gem'
|
92
|
-
task :install => [:clobber, :package] do
|
93
|
-
sh "#{SUDO} #{GEM} install pkg/#{PROJ.spec.full_name}"
|
94
|
-
end
|
95
|
-
|
96
|
-
desc 'Uninstall the gem'
|
97
|
-
task :uninstall do
|
98
|
-
sh "#{SUDO} #{GEM} uninstall -v '#{PROJ.version}' -x #{PROJ.name}"
|
99
|
-
end
|
100
|
-
|
101
|
-
end # namespace :gem
|
102
|
-
|
103
|
-
desc 'Alias to gem:package'
|
104
|
-
task :gem => 'gem:package'
|
105
|
-
|
106
|
-
task :clobber => 'gem:clobber_package'
|
107
|
-
|
108
|
-
remove_desc_for_task %w(gem:clobber_package)
|
109
|
-
|
110
|
-
# EOF
|
data/tasks/manifest.rake
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
require 'find'
|
4
|
-
|
5
|
-
namespace :manifest do
|
6
|
-
|
7
|
-
desc 'Verify the manifest'
|
8
|
-
task :check do
|
9
|
-
fn = PROJ.manifest_file + '.tmp'
|
10
|
-
files = manifest_files
|
11
|
-
|
12
|
-
File.open(fn, 'w') {|fp| fp.puts files}
|
13
|
-
lines = %x(#{DIFF} -du #{PROJ.manifest_file} #{fn}).split("\n")
|
14
|
-
if HAVE_FACETS_ANSICODE and ENV.has_key?('TERM')
|
15
|
-
lines.map! do |line|
|
16
|
-
case line
|
17
|
-
when %r/^(-{3}|\+{3})/; nil
|
18
|
-
when %r/^@/; Console::ANSICode.blue line
|
19
|
-
when %r/^\+/; Console::ANSICode.green line
|
20
|
-
when %r/^\-/; Console::ANSICode.red line
|
21
|
-
else line end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
puts lines.compact
|
25
|
-
rm fn rescue nil
|
26
|
-
end
|
27
|
-
|
28
|
-
desc 'Create a new manifest'
|
29
|
-
task :create do
|
30
|
-
files = manifest_files
|
31
|
-
unless test(?f, PROJ.manifest_file)
|
32
|
-
files << PROJ.manifest_file
|
33
|
-
files.sort!
|
34
|
-
end
|
35
|
-
File.open(PROJ.manifest_file, 'w') {|fp| fp.puts files}
|
36
|
-
end
|
37
|
-
|
38
|
-
task :assert do
|
39
|
-
files = manifest_files
|
40
|
-
manifest = File.read(PROJ.manifest_file).split($/)
|
41
|
-
raise "ERROR: #{PROJ.manifest_file} is out of date" unless files == manifest
|
42
|
-
end
|
43
|
-
|
44
|
-
end # namespace :manifest
|
45
|
-
|
46
|
-
desc 'Alias to manifest:check'
|
47
|
-
task :manifest => 'manifest:check'
|
48
|
-
|
49
|
-
# EOF
|
data/tasks/post_load.rake
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
# This file does not define any rake tasks. It is used to load some project
|
4
|
-
# settings if they are not defined by the user.
|
5
|
-
|
6
|
-
PROJ.rdoc_exclude << "^#{Regexp.escape(PROJ.manifest_file)}$"
|
7
|
-
PROJ.exclude << "^#{Regexp.escape(PROJ.ann_file)}$"
|
8
|
-
|
9
|
-
PROJ.changes ||= paragraphs_of(PROJ.history_file, 0..1).join("\n\n")
|
10
|
-
|
11
|
-
PROJ.description ||= paragraphs_of(PROJ.readme_file, 'description').join("\n\n")
|
12
|
-
|
13
|
-
PROJ.summary ||= PROJ.description.split('.').first
|
14
|
-
|
15
|
-
PROJ.files ||=
|
16
|
-
if test(?f, PROJ.manifest_file)
|
17
|
-
files = File.readlines(PROJ.manifest_file).map {|fn| fn.chomp.strip}
|
18
|
-
files.delete ''
|
19
|
-
files
|
20
|
-
else [] end
|
21
|
-
|
22
|
-
PROJ.executables ||= PROJ.files.find_all {|fn| fn =~ %r/^bin/}
|
23
|
-
|
24
|
-
PROJ.rdoc_main ||= PROJ.readme_file
|
25
|
-
|
26
|
-
# EOF
|
data/tasks/setup.rb
DELETED
@@ -1,205 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
require 'rubygems'
|
4
|
-
require 'rake'
|
5
|
-
require 'rake/clean'
|
6
|
-
require 'fileutils'
|
7
|
-
require 'ostruct'
|
8
|
-
|
9
|
-
PROJ = OpenStruct.new
|
10
|
-
|
11
|
-
PROJ.name = nil
|
12
|
-
PROJ.summary = nil
|
13
|
-
PROJ.description = nil
|
14
|
-
PROJ.changes = nil
|
15
|
-
PROJ.authors = nil
|
16
|
-
PROJ.email = nil
|
17
|
-
PROJ.url = nil
|
18
|
-
PROJ.version = ENV['VERSION'] || '0.0.0'
|
19
|
-
PROJ.rubyforge_name = nil
|
20
|
-
PROJ.exclude = %w(tmp$ bak$ ~$ CVS site .svn/ ^pkg/ ^doc/ ^\. ^rails-example/)
|
21
|
-
PROJ.release_name = ENV['RELEASE']
|
22
|
-
PROJ.history_file = 'HISTORY.rdoc'
|
23
|
-
PROJ.manifest_file = 'Manifest.txt'
|
24
|
-
PROJ.readme_file = 'README.rdoc'
|
25
|
-
|
26
|
-
# Test::Unit
|
27
|
-
PROJ.tests = FileList['test/**/*_test.rb']
|
28
|
-
PROJ.test_file = 'test/all.rb'
|
29
|
-
PROJ.test_opts = []
|
30
|
-
|
31
|
-
# Rcov
|
32
|
-
PROJ.rcov_dir = 'coverage'
|
33
|
-
PROJ.rcov_opts = ['--sort', 'coverage', '-T']
|
34
|
-
PROJ.rcov_threshold = 90.0
|
35
|
-
PROJ.rcov_threshold_exact = false
|
36
|
-
|
37
|
-
# Rdoc
|
38
|
-
PROJ.rdoc_opts = []
|
39
|
-
PROJ.rdoc_include = %w(^lib/ ^bin/ ^ext/ .txt$)
|
40
|
-
PROJ.rdoc_exclude = %w(extconf.rb$)
|
41
|
-
PROJ.rdoc_main = nil
|
42
|
-
PROJ.rdoc_dir = 'doc'
|
43
|
-
PROJ.rdoc_remote_dir = nil
|
44
|
-
|
45
|
-
# Gem Packaging
|
46
|
-
PROJ.files = nil
|
47
|
-
PROJ.executables = nil
|
48
|
-
PROJ.dependencies = []
|
49
|
-
PROJ.need_tar = true
|
50
|
-
PROJ.need_zip = false
|
51
|
-
PROJ.post_install_message = nil
|
52
|
-
|
53
|
-
# Announce
|
54
|
-
PROJ.ann_file = 'announcement.txt'
|
55
|
-
PROJ.ann_text = nil
|
56
|
-
PROJ.ann_paragraphs = []
|
57
|
-
PROJ.ann_email = {
|
58
|
-
:from => nil,
|
59
|
-
:to => %w(ruby-talk@ruby-lang.org),
|
60
|
-
:server => 'localhost',
|
61
|
-
:port => 25,
|
62
|
-
:domain => ENV['HOSTNAME'],
|
63
|
-
:acct => nil,
|
64
|
-
:passwd => nil,
|
65
|
-
:authtype => :plain
|
66
|
-
}
|
67
|
-
|
68
|
-
# Load the other rake files in the tasks folder
|
69
|
-
rakefiles = Dir.glob('tasks/*.rake').sort
|
70
|
-
rakefiles.unshift(rakefiles.delete('tasks/post_load.rake')).compact!
|
71
|
-
import(*rakefiles)
|
72
|
-
|
73
|
-
# Setup some constants
|
74
|
-
WIN32 = %r/djgpp|(cyg|ms|bcc)win|mingw/ =~ RUBY_PLATFORM unless defined? WIN32
|
75
|
-
|
76
|
-
DEV_NULL = WIN32 ? 'NUL:' : '/dev/null'
|
77
|
-
|
78
|
-
def quiet( &block )
|
79
|
-
io = [STDOUT.dup, STDERR.dup]
|
80
|
-
STDOUT.reopen DEV_NULL
|
81
|
-
STDERR.reopen DEV_NULL
|
82
|
-
block.call
|
83
|
-
ensure
|
84
|
-
STDOUT.reopen io.first
|
85
|
-
STDERR.reopen io.last
|
86
|
-
end
|
87
|
-
|
88
|
-
DIFF = if WIN32 then 'diff.exe'
|
89
|
-
else
|
90
|
-
if quiet {system "gdiff", __FILE__, __FILE__} then 'gdiff'
|
91
|
-
else 'diff' end
|
92
|
-
end unless defined? DIFF
|
93
|
-
|
94
|
-
SUDO = if WIN32 then ''
|
95
|
-
else
|
96
|
-
if quiet {system 'which sudo'} then 'sudo'
|
97
|
-
else '' end
|
98
|
-
end
|
99
|
-
|
100
|
-
RCOV = WIN32 ? 'rcov.bat' : 'rcov'
|
101
|
-
GEM = WIN32 ? 'gem.bat' : 'gem'
|
102
|
-
|
103
|
-
%w(rcov spec/rake/spectask rubyforge bones facets/ansicode).each do |lib|
|
104
|
-
begin
|
105
|
-
require lib
|
106
|
-
Object.instance_eval {const_set "HAVE_#{lib.tr('/','_').upcase}", true}
|
107
|
-
rescue LoadError
|
108
|
-
Object.instance_eval {const_set "HAVE_#{lib.tr('/','_').upcase}", false}
|
109
|
-
end
|
110
|
-
end
|
111
|
-
|
112
|
-
# Reads a file at +path+ and spits out an array of the +paragraphs+
|
113
|
-
# specified.
|
114
|
-
#
|
115
|
-
# changes = paragraphs_of('History.txt', 0..1).join("\n\n")
|
116
|
-
# summary, *description = paragraphs_of('README.txt', 3, 3..8)
|
117
|
-
#
|
118
|
-
def paragraphs_of( path, *paragraphs )
|
119
|
-
title = String === paragraphs.first ? paragraphs.shift : nil
|
120
|
-
ary = File.read(path).delete("\r").split(/\n\n+/)
|
121
|
-
|
122
|
-
result = if title
|
123
|
-
tmp, matching = [], false
|
124
|
-
rgxp = %r/^=+\s*#{Regexp.escape(title)}/i
|
125
|
-
paragraphs << (0..-1) if paragraphs.empty?
|
126
|
-
|
127
|
-
ary.each do |val|
|
128
|
-
if val =~ rgxp
|
129
|
-
break if matching
|
130
|
-
matching = true
|
131
|
-
rgxp = %r/^=+/i
|
132
|
-
elsif matching
|
133
|
-
tmp << val
|
134
|
-
end
|
135
|
-
end
|
136
|
-
tmp
|
137
|
-
else ary end
|
138
|
-
|
139
|
-
result.values_at(*paragraphs)
|
140
|
-
end
|
141
|
-
|
142
|
-
# Adds the given gem _name_ to the current project's dependency list. An
|
143
|
-
# optional gem _version_ can be given. If omitted, the newest gem version
|
144
|
-
# will be used.
|
145
|
-
#
|
146
|
-
def depend_on( name, version = nil )
|
147
|
-
spec = Gem.source_index.find_name(name).last
|
148
|
-
version = spec.version.to_s if version.nil? and !spec.nil?
|
149
|
-
|
150
|
-
PROJ.dependencies << case version
|
151
|
-
when nil; [name]
|
152
|
-
when %r/^\d/; [name, ">= #{version}"]
|
153
|
-
else [name, version] end
|
154
|
-
end
|
155
|
-
|
156
|
-
# Adds the given arguments to the include path if they are not already there
|
157
|
-
#
|
158
|
-
def ensure_in_path( *args )
|
159
|
-
args.each do |path|
|
160
|
-
path = File.expand_path(path)
|
161
|
-
$:.unshift(path) if test(?d, path) and not $:.include?(path)
|
162
|
-
end
|
163
|
-
end
|
164
|
-
|
165
|
-
# Find a rake task using the task name and remove any description text. This
|
166
|
-
# will prevent the task from being displayed in the list of available tasks.
|
167
|
-
#
|
168
|
-
def remove_desc_for_task( names )
|
169
|
-
Array(names).each do |task_name|
|
170
|
-
task = Rake.application.tasks.find {|t| t.name == task_name}
|
171
|
-
next if task.nil?
|
172
|
-
task.instance_variable_set :@comment, nil
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
# Change working directories to _dir_, call the _block_ of code, and then
|
177
|
-
# change back to the original working directory (the current directory when
|
178
|
-
# this method was called).
|
179
|
-
#
|
180
|
-
def in_directory( dir, &block )
|
181
|
-
curdir = pwd
|
182
|
-
begin
|
183
|
-
cd dir
|
184
|
-
return block.call
|
185
|
-
ensure
|
186
|
-
cd curdir
|
187
|
-
end
|
188
|
-
end
|
189
|
-
|
190
|
-
# Scans the current working directory and creates a list of files that are
|
191
|
-
# candidates to be in the manifest.
|
192
|
-
#
|
193
|
-
def manifest_files
|
194
|
-
files = []
|
195
|
-
exclude = Regexp.new(PROJ.exclude.join('|'))
|
196
|
-
Find.find '.' do |path|
|
197
|
-
path.sub! %r/^(\.\/|\/)/o, ''
|
198
|
-
next unless test ?f, path
|
199
|
-
next if path =~ exclude
|
200
|
-
files << path
|
201
|
-
end
|
202
|
-
files.sort!
|
203
|
-
end
|
204
|
-
|
205
|
-
# EOF
|
data/tasks/test.rake
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
# $Id$
|
2
|
-
|
3
|
-
require 'rake/testtask'
|
4
|
-
|
5
|
-
namespace :test do
|
6
|
-
|
7
|
-
Rake::TestTask.new(:run) do |t|
|
8
|
-
t.libs = PROJ.libs
|
9
|
-
t.test_files = if test(?f, PROJ.test_file) then [PROJ.test_file]
|
10
|
-
else PROJ.tests end
|
11
|
-
t.ruby_opts += PROJ.ruby_opts
|
12
|
-
t.ruby_opts += PROJ.test_opts
|
13
|
-
end
|
14
|
-
|
15
|
-
if HAVE_RCOV
|
16
|
-
desc 'Run rcov on the unit tests'
|
17
|
-
task :rcov => :clobber_rcov do
|
18
|
-
opts = PROJ.rcov_opts.dup << '-o' << PROJ.rcov_dir
|
19
|
-
opts = opts.join(' ')
|
20
|
-
files = if test(?f, PROJ.test_file) then [PROJ.test_file]
|
21
|
-
else PROJ.tests end
|
22
|
-
files = files.join(' ')
|
23
|
-
sh "#{RCOV} #{files} #{opts}"
|
24
|
-
end
|
25
|
-
|
26
|
-
task :clobber_rcov do
|
27
|
-
rm_r 'coverage' rescue nil
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
end # namespace :test
|
32
|
-
|
33
|
-
desc 'Alias to test:run'
|
34
|
-
task :test => 'test:run'
|
35
|
-
|
36
|
-
task :clobber => 'test:clobber_rcov' if HAVE_RCOV
|
37
|
-
|
38
|
-
# EOF
|