latex-project-template 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -4
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/bin/latex-project-template +1 -1
- data/initial_files/component/math_preamble.tex +3 -0
- data/initial_files/component/rakefile_common.erb +6 -0
- data/{template → initial_files/template}/default/Rakefile.erb +1 -6
- data/{template → initial_files/template}/default/__DOT__gitignore +0 -0
- data/{template → initial_files/template}/default/__PROJECT__.tex.erb +3 -2
- data/initial_files/template/japanese/Rakefile.erb +13 -0
- data/initial_files/template/japanese/__IMPORT__ +1 -0
- data/initial_files/template/japanese/__PROJECT__.tex.erb +12 -0
- data/{template → initial_files/template}/japanese/latexmkrc +0 -0
- data/initial_files/variable/profile.yaml +2 -0
- data/latex-project-template.gemspec +28 -26
- data/lib/latex_project_template.rb +52 -9
- data/spec/latex_project_template_spec.rb +4 -0
- metadata +18 -24
- data/template/japanese/__IMPORT__ +0 -3
data/Gemfile
CHANGED
@@ -6,11 +6,11 @@ source "http://rubygems.org"
|
|
6
6
|
# Add dependencies to develop your gem here.
|
7
7
|
# Include everything needed to run rake, tests, features, etc.
|
8
8
|
group :development do
|
9
|
-
gem "rspec", ">= 2.
|
10
|
-
gem "yard", ">= 0.
|
9
|
+
gem "rspec", ">= 2.6.0"
|
10
|
+
gem "yard", ">= 0.7.2"
|
11
11
|
gem "bundler", ">= 1.0.0"
|
12
|
-
gem "jeweler", ">= 1.
|
12
|
+
gem "jeweler", ">= 1.6.4"
|
13
13
|
gem "rcov", ">= 0"
|
14
14
|
gem "filename", ">= 0.1.0"
|
15
|
-
gem "user_config", ">= 0.0.
|
15
|
+
gem "user_config", ">= 0.0.2"
|
16
16
|
end
|
data/Rakefile
CHANGED
@@ -23,8 +23,7 @@ Jeweler::Tasks.new do |gem|
|
|
23
23
|
# and development dependencies are only needed for development (ie running rake tasks, tests, etc)
|
24
24
|
gem.add_runtime_dependency 'git', '>= 1.2.5'
|
25
25
|
gem.add_runtime_dependency 'filename', '>= 0.1.0'
|
26
|
-
gem.add_runtime_dependency 'user_config', '>= 0.0.
|
27
|
-
gem.add_development_dependency 'rspec', '>= 2.5.0'
|
26
|
+
gem.add_runtime_dependency 'user_config', '>= 0.0.2'
|
28
27
|
end
|
29
28
|
Jeweler::RubygemsDotOrgTasks.new
|
30
29
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/bin/latex-project-template
CHANGED
@@ -1,9 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# * Set environmental variables
|
4
|
-
# ENV['BIBINPUTS'] = ".:#{File.join(ENV["HOME"], "bibtex")}"
|
5
|
-
|
6
|
-
require 'latex_project_template/task'
|
1
|
+
<%= component('rakefile_common.erb') %>
|
7
2
|
|
8
3
|
LaTeXProjectTemplate::Task.new(MAIN_TEX_FILE) do |task|
|
9
4
|
# * Set the path of latexmk
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%= component('rakefile_common.erb') %>
|
2
|
+
|
3
|
+
LaTeXProjectTemplate::Task.new(MAIN_TEX_FILE) do |task|
|
4
|
+
# * Set the path of latexmk
|
5
|
+
# task.latexmk.path = '/usr/bin/latexmk'
|
6
|
+
#
|
7
|
+
# * Add patterns to clean temporary files
|
8
|
+
# task.clean.include("#*#")
|
9
|
+
#
|
10
|
+
# * Default task to compile tex file. You can set :dvi, :ps, :pdf, :pdfdvi, or :pdfps.
|
11
|
+
# The default is :pdf.
|
12
|
+
task.default = :pdfdvi
|
13
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
default/__DOT__gitignore
|
File without changes
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{latex-project-template}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Takayuki YAMAGUCHI"]
|
12
|
-
s.date = %q{2011-07-
|
12
|
+
s.date = %q{2011-07-08}
|
13
13
|
s.default_executable = %q{latex-project-template}
|
14
14
|
s.description = %q{Create LaTeX project with git from template, which uses latexmk.}
|
15
15
|
s.email = %q{d@ytak.info}
|
@@ -27,17 +27,22 @@ Gem::Specification.new do |s|
|
|
27
27
|
"Rakefile",
|
28
28
|
"VERSION",
|
29
29
|
"bin/latex-project-template",
|
30
|
+
"initial_files/component/math_preamble.tex",
|
31
|
+
"initial_files/component/rakefile_common.erb",
|
32
|
+
"initial_files/template/default/Rakefile.erb",
|
33
|
+
"initial_files/template/default/__DOT__gitignore",
|
34
|
+
"initial_files/template/default/__PROJECT__.tex.erb",
|
35
|
+
"initial_files/template/japanese/Rakefile.erb",
|
36
|
+
"initial_files/template/japanese/__IMPORT__",
|
37
|
+
"initial_files/template/japanese/__PROJECT__.tex.erb",
|
38
|
+
"initial_files/template/japanese/latexmkrc",
|
39
|
+
"initial_files/variable/profile.yaml",
|
30
40
|
"latex-project-template.gemspec",
|
31
41
|
"lib/latex_project_template.rb",
|
32
42
|
"lib/latex_project_template/task.rb",
|
33
43
|
"spec/latex_project_template_spec.rb",
|
34
44
|
"spec/spec_helper.rb",
|
35
|
-
"spec/task_spec.rb"
|
36
|
-
"template/default/Rakefile.erb",
|
37
|
-
"template/default/__DOT__gitignore",
|
38
|
-
"template/default/__PROJECT__.tex.erb",
|
39
|
-
"template/japanese/__IMPORT__",
|
40
|
-
"template/japanese/latexmkrc"
|
45
|
+
"spec/task_spec.rb"
|
41
46
|
]
|
42
47
|
s.homepage = %q{http://github.com/ytaka/latex-project-template}
|
43
48
|
s.licenses = ["GPLv3"]
|
@@ -49,42 +54,39 @@ Gem::Specification.new do |s|
|
|
49
54
|
s.specification_version = 3
|
50
55
|
|
51
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
52
|
-
s.add_development_dependency(%q<rspec>, [">= 2.
|
53
|
-
s.add_development_dependency(%q<yard>, [">= 0.
|
57
|
+
s.add_development_dependency(%q<rspec>, [">= 2.6.0"])
|
58
|
+
s.add_development_dependency(%q<yard>, [">= 0.7.2"])
|
54
59
|
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
55
|
-
s.add_development_dependency(%q<jeweler>, [">= 1.
|
60
|
+
s.add_development_dependency(%q<jeweler>, [">= 1.6.4"])
|
56
61
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
57
62
|
s.add_development_dependency(%q<filename>, [">= 0.1.0"])
|
58
|
-
s.add_development_dependency(%q<user_config>, [">= 0.0.
|
63
|
+
s.add_development_dependency(%q<user_config>, [">= 0.0.2"])
|
59
64
|
s.add_runtime_dependency(%q<git>, [">= 1.2.5"])
|
60
65
|
s.add_runtime_dependency(%q<filename>, [">= 0.1.0"])
|
61
|
-
s.add_runtime_dependency(%q<user_config>, [">= 0.0.
|
62
|
-
s.add_development_dependency(%q<rspec>, [">= 2.5.0"])
|
66
|
+
s.add_runtime_dependency(%q<user_config>, [">= 0.0.2"])
|
63
67
|
else
|
64
|
-
s.add_dependency(%q<rspec>, [">= 2.
|
65
|
-
s.add_dependency(%q<yard>, [">= 0.
|
68
|
+
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
69
|
+
s.add_dependency(%q<yard>, [">= 0.7.2"])
|
66
70
|
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
67
|
-
s.add_dependency(%q<jeweler>, [">= 1.
|
71
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.4"])
|
68
72
|
s.add_dependency(%q<rcov>, [">= 0"])
|
69
73
|
s.add_dependency(%q<filename>, [">= 0.1.0"])
|
70
|
-
s.add_dependency(%q<user_config>, [">= 0.0.
|
74
|
+
s.add_dependency(%q<user_config>, [">= 0.0.2"])
|
71
75
|
s.add_dependency(%q<git>, [">= 1.2.5"])
|
72
76
|
s.add_dependency(%q<filename>, [">= 0.1.0"])
|
73
|
-
s.add_dependency(%q<user_config>, [">= 0.0.
|
74
|
-
s.add_dependency(%q<rspec>, [">= 2.5.0"])
|
77
|
+
s.add_dependency(%q<user_config>, [">= 0.0.2"])
|
75
78
|
end
|
76
79
|
else
|
77
|
-
s.add_dependency(%q<rspec>, [">= 2.
|
78
|
-
s.add_dependency(%q<yard>, [">= 0.
|
80
|
+
s.add_dependency(%q<rspec>, [">= 2.6.0"])
|
81
|
+
s.add_dependency(%q<yard>, [">= 0.7.2"])
|
79
82
|
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
80
|
-
s.add_dependency(%q<jeweler>, [">= 1.
|
83
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.4"])
|
81
84
|
s.add_dependency(%q<rcov>, [">= 0"])
|
82
85
|
s.add_dependency(%q<filename>, [">= 0.1.0"])
|
83
|
-
s.add_dependency(%q<user_config>, [">= 0.0.
|
86
|
+
s.add_dependency(%q<user_config>, [">= 0.0.2"])
|
84
87
|
s.add_dependency(%q<git>, [">= 1.2.5"])
|
85
88
|
s.add_dependency(%q<filename>, [">= 0.1.0"])
|
86
|
-
s.add_dependency(%q<user_config>, [">= 0.0.
|
87
|
-
s.add_dependency(%q<rspec>, [">= 2.5.0"])
|
89
|
+
s.add_dependency(%q<user_config>, [">= 0.0.2"])
|
88
90
|
end
|
89
91
|
end
|
90
92
|
|
@@ -13,16 +13,21 @@ class LaTeXProjectTemplate
|
|
13
13
|
class Configuration
|
14
14
|
TEMPLATE_DIRECTORY = 'template'
|
15
15
|
VARIABLE_DIRECTORY = 'variable'
|
16
|
+
COMPONENT_DIRECTORY = 'component'
|
16
17
|
DEFAULT_PROFILE_YAML = { :name => "Your Name" }
|
17
18
|
|
18
19
|
def self.create_new_config(home_path = nil)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
20
|
+
begin
|
21
|
+
config = LPTConfig.new(DEFAULT_CONFIG, :home => home_path, :new_directory => true)
|
22
|
+
dir = config.directory
|
23
|
+
Dir.glob(File.expand_path(File.join(File.dirname(__FILE__), '../initial_files/*'))).each do |path|
|
24
|
+
FileUtils.cp_r(path, dir)
|
25
|
+
end
|
26
|
+
git = Git.init(dir)
|
27
|
+
git.add
|
28
|
+
git.commit("Create initial template.")
|
29
|
+
rescue UserConfig::DirectoryExistenceError
|
30
|
+
$stderr.puts "Can not new configuration directory."
|
26
31
|
end
|
27
32
|
end
|
28
33
|
|
@@ -68,6 +73,32 @@ class LaTeXProjectTemplate
|
|
68
73
|
end
|
69
74
|
vars
|
70
75
|
end
|
76
|
+
|
77
|
+
def component(name)
|
78
|
+
if path = @user_config.exist?(File.join(COMPONENT_DIRECTORY, name))
|
79
|
+
return LaTeXProjectTemplate::Component.new(path)
|
80
|
+
end
|
81
|
+
nil
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
class Component
|
86
|
+
attr_reader :path
|
87
|
+
|
88
|
+
def initialize(path)
|
89
|
+
@path = path
|
90
|
+
end
|
91
|
+
|
92
|
+
def evaluate(erb_obj)
|
93
|
+
if /\.erb$/ =~ @path
|
94
|
+
erb_obj.instance_exec(@path) do |path|
|
95
|
+
erb = ERB.new(File.read(path))
|
96
|
+
erb.result(binding)
|
97
|
+
end
|
98
|
+
else
|
99
|
+
File.read(@path)
|
100
|
+
end
|
101
|
+
end
|
71
102
|
end
|
72
103
|
|
73
104
|
class Directory
|
@@ -162,10 +193,22 @@ class LaTeXProjectTemplate
|
|
162
193
|
class ErbObject
|
163
194
|
attr_reader :project_name
|
164
195
|
|
165
|
-
def initialize(project_name, variables)
|
196
|
+
def initialize(project_name, variables, config)
|
166
197
|
@project_name = project_name
|
198
|
+
@__config = config
|
167
199
|
variables.each do |key, val|
|
168
200
|
instance_variable_set("@#{key}", val)
|
201
|
+
self.class.class_eval do
|
202
|
+
attr_reader key.intern
|
203
|
+
end
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
def component(name)
|
208
|
+
if c = @__config.component(name)
|
209
|
+
c.evaluate(self)
|
210
|
+
else
|
211
|
+
''
|
169
212
|
end
|
170
213
|
end
|
171
214
|
end
|
@@ -183,7 +226,7 @@ class LaTeXProjectTemplate
|
|
183
226
|
end
|
184
227
|
|
185
228
|
def create_files
|
186
|
-
erb_obj = LaTeXProjectTemplate::ErbObject.new(@project_name, @config.user_variables)
|
229
|
+
erb_obj = LaTeXProjectTemplate::ErbObject.new(@project_name, @config.user_variables, @config)
|
187
230
|
created_files = @template.copy_to_directory(@target_dir, erb_obj)
|
188
231
|
@template.files_to_import.each do |name, files|
|
189
232
|
if template_to_import = @config.template_exist?(name)
|
@@ -13,6 +13,10 @@ describe LaTeXProjectTemplate::Configuration do
|
|
13
13
|
it "should create directory." do
|
14
14
|
LaTeXProjectTemplate::Configuration.create_new_config(@home_directory)
|
15
15
|
File.directory?(@home_directory).should be_true
|
16
|
+
dir = File.join(@home_directory_absolute, '.latex_project_template')
|
17
|
+
File.exist?(File.join(dir, 'template')).should be_true
|
18
|
+
File.exist?(File.join(dir, 'variable')).should be_true
|
19
|
+
File.exist?(File.join(dir, 'component')).should be_true
|
16
20
|
end
|
17
21
|
|
18
22
|
it "should return config directory." do
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: latex-project-template
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Takayuki YAMAGUCHI
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-07-
|
13
|
+
date: 2011-07-08 00:00:00 +09:00
|
14
14
|
default_executable: latex-project-template
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.
|
23
|
+
version: 2.6.0
|
24
24
|
type: :development
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: *id001
|
@@ -31,7 +31,7 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.
|
34
|
+
version: 0.7.2
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: *id002
|
@@ -53,7 +53,7 @@ dependencies:
|
|
53
53
|
requirements:
|
54
54
|
- - ">="
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 1.
|
56
|
+
version: 1.6.4
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
59
|
version_requirements: *id004
|
@@ -86,7 +86,7 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.0.
|
89
|
+
version: 0.0.2
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: *id007
|
@@ -119,21 +119,10 @@ dependencies:
|
|
119
119
|
requirements:
|
120
120
|
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: 0.0.
|
122
|
+
version: 0.0.2
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: *id010
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: rspec
|
128
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ">="
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: 2.5.0
|
134
|
-
type: :development
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: *id011
|
137
126
|
description: Create LaTeX project with git from template, which uses latexmk.
|
138
127
|
email: d@ytak.info
|
139
128
|
executables:
|
@@ -152,17 +141,22 @@ files:
|
|
152
141
|
- Rakefile
|
153
142
|
- VERSION
|
154
143
|
- bin/latex-project-template
|
144
|
+
- initial_files/component/math_preamble.tex
|
145
|
+
- initial_files/component/rakefile_common.erb
|
146
|
+
- initial_files/template/default/Rakefile.erb
|
147
|
+
- initial_files/template/default/__DOT__gitignore
|
148
|
+
- initial_files/template/default/__PROJECT__.tex.erb
|
149
|
+
- initial_files/template/japanese/Rakefile.erb
|
150
|
+
- initial_files/template/japanese/__IMPORT__
|
151
|
+
- initial_files/template/japanese/__PROJECT__.tex.erb
|
152
|
+
- initial_files/template/japanese/latexmkrc
|
153
|
+
- initial_files/variable/profile.yaml
|
155
154
|
- latex-project-template.gemspec
|
156
155
|
- lib/latex_project_template.rb
|
157
156
|
- lib/latex_project_template/task.rb
|
158
157
|
- spec/latex_project_template_spec.rb
|
159
158
|
- spec/spec_helper.rb
|
160
159
|
- spec/task_spec.rb
|
161
|
-
- template/default/Rakefile.erb
|
162
|
-
- template/default/__DOT__gitignore
|
163
|
-
- template/default/__PROJECT__.tex.erb
|
164
|
-
- template/japanese/__IMPORT__
|
165
|
-
- template/japanese/latexmkrc
|
166
160
|
has_rdoc: true
|
167
161
|
homepage: http://github.com/ytaka/latex-project-template
|
168
162
|
licenses:
|
@@ -177,7 +171,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
177
171
|
requirements:
|
178
172
|
- - ">="
|
179
173
|
- !ruby/object:Gem::Version
|
180
|
-
hash: -
|
174
|
+
hash: -691823316385091189
|
181
175
|
segments:
|
182
176
|
- 0
|
183
177
|
version: "0"
|