latex-project-template 0.0.2 → 0.0.3

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/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.5.0"
10
- gem "yard", ">= 0.6.0"
9
+ gem "rspec", ">= 2.6.0"
10
+ gem "yard", ">= 0.7.2"
11
11
  gem "bundler", ">= 1.0.0"
12
- gem "jeweler", ">= 1.5.2"
12
+ gem "jeweler", ">= 1.6.4"
13
13
  gem "rcov", ">= 0"
14
14
  gem "filename", ">= 0.1.0"
15
- gem "user_config", ">= 0.0.1"
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.1'
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.2
1
+ 0.0.3
@@ -10,7 +10,7 @@ Usage: #{File.basename(__FILE__)} project [template]
10
10
 
11
11
  HELP
12
12
 
13
- Version = '0.0.2'
13
+ Version = '0.0.3'
14
14
 
15
15
  options = {
16
16
  :mode => :create
@@ -0,0 +1,3 @@
1
+ \usepackage{amsmath, amsfonts, amsthm}
2
+
3
+ \newtheorem{theorem}{Theorem}[section]
@@ -0,0 +1,6 @@
1
+ MAIN_TEX_FILE = "<%= project_name %>.tex"
2
+
3
+ # * Set environmental variables
4
+ # ENV['BIBINPUTS'] = ".:#{File.join(ENV["HOME"], "bibtex")}"
5
+
6
+ require 'latex_project_template/task'
@@ -1,9 +1,4 @@
1
- MAIN_TEX_FILE = "<%= @project_name %>.tex"
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
@@ -1,7 +1,8 @@
1
1
  \documentclass[a4paper]{article}
2
- \usepackage{amsmath, amsfonts, amsthm}
3
2
 
4
- \author{<%= @profile[:name] %>}
3
+ <%= component('math_preamble.tex') %>
4
+
5
+ \author{<%= profile[:name] %>}
5
6
  \date{}
6
7
 
7
8
  \begin{document}
@@ -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
@@ -0,0 +1,12 @@
1
+ \documentclass[a4paper]{jsarticle}
2
+
3
+ <%= component('math_preamble.tex') %>
4
+
5
+ \author{<%= profile[:name] %>}
6
+ \date{}
7
+
8
+ \begin{document}
9
+
10
+ \section{}
11
+
12
+ \end{document}
@@ -0,0 +1,2 @@
1
+ ---
2
+ :name: "Your Name"
@@ -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.2"
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-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.5.0"])
53
- s.add_development_dependency(%q<yard>, [">= 0.6.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.5.2"])
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.1"])
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.1"])
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.5.0"])
65
- s.add_dependency(%q<yard>, [">= 0.6.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.5.2"])
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.1"])
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.1"])
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.5.0"])
78
- s.add_dependency(%q<yard>, [">= 0.6.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.5.2"])
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.1"])
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.1"])
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
- config = LPTConfig.new(DEFAULT_CONFIG, :home => home_path)
20
- dir = config.directory
21
- FileUtils.cp_r("#{File.expand_path(File.join(File.dirname(__FILE__), '../template/'))}", dir)
22
- vars_dir = File.join(dir, VARIABLE_DIRECTORY)
23
- FileUtils.mkdir_p(vars_dir)
24
- open(File.join(vars_dir, 'profile.yaml'), 'w') do |f|
25
- f.print DEFAULT_PROFILE_YAML.to_yaml
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.2
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-07 00:00:00 +09:00
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.5.0
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.6.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.5.2
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.1
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.1
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: -1327005119075032685
174
+ hash: -691823316385091189
181
175
  segments:
182
176
  - 0
183
177
  version: "0"
@@ -1,3 +0,0 @@
1
- default/__PROJECT__.tex
2
- default/Rakefile.erb
3
- default/__DOT__gitignore