ore 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,9 @@
1
+ ### 0.7.1 / 2011-02-20
2
+
3
+ * Added {Ore::Generator#generate_dir}.
4
+ * Added {Ore::Generator#generate_file}.
5
+ * Only chmod generated files, if they are supposed to be executable.
6
+
1
7
  ### 0.7.0 / 2011-02-19
2
8
 
3
9
  * Require ore-core ~> 0.1, >= 0.1.2.
data/README.md CHANGED
@@ -55,7 +55,7 @@ the developer to keep all of the project information in a single YAML file.
55
55
  The `gemspec.yml` file used to build Ore:
56
56
 
57
57
  name: ore
58
- version: 0.7.0
58
+ version: 0.7.1
59
59
  summary: Mine raw RubyGems from YAML.
60
60
  description:
61
61
  Ore is a simple RubyGem building solution. Ore handles the
@@ -1,5 +1,5 @@
1
1
  name: ore
2
- version: 0.7.0
2
+ version: 0.7.1
3
3
  summary: Mine raw RubyGems from YAML
4
4
  description:
5
5
  Ore is a simple RubyGem building solution. Ore handles the
@@ -153,6 +153,69 @@ module Ore
153
153
 
154
154
  argument :path, :required => true
155
155
 
156
+ #
157
+ # Generates an empty directory.
158
+ #
159
+ # @param [String] dest
160
+ # The uninterpolated destination path.
161
+ #
162
+ # @return [String]
163
+ # The destination path of the directory.
164
+ #
165
+ # @since 0.7.1
166
+ #
167
+ def generate_dir(dest)
168
+ return if @generated_dirs.include?(dest)
169
+
170
+ path = interpolate(dest)
171
+ empty_directory path
172
+
173
+ @generated_dirs << dest
174
+ return path
175
+ end
176
+
177
+ #
178
+ # Generates a file.
179
+ #
180
+ # @param [String] dest
181
+ # The uninterpolated destination path.
182
+ #
183
+ # @param [String] file
184
+ # The source file or template.
185
+ #
186
+ # @param [Hash] options
187
+ # Additional options.
188
+ #
189
+ # @option options [Boolean] :template
190
+ # Specifies that the file is a template, and should be rendered.
191
+ #
192
+ # @return [String]
193
+ # The destination path of the file.
194
+ #
195
+ # @since 0.7.1
196
+ #
197
+ def generate_file(dest,file,options={})
198
+ return if @generated_files.include?(dest)
199
+
200
+ path = interpolate(dest)
201
+
202
+ if options[:template]
203
+ @current_template_dir = File.dirname(dest)
204
+ template file, path
205
+ @current_template_dir = nil
206
+ else
207
+ copy_file file, path
208
+ end
209
+
210
+ if File.executable?(file)
211
+ umask = File.stat(File.join(destination_root,path)).mode
212
+ chmod path, (umask | 0111)
213
+ end
214
+
215
+ @generated_files << dest
216
+ return path
217
+ end
218
+
156
219
  #
157
220
  # Enables a template, adding it to the generator.
158
221
  #
@@ -280,22 +343,18 @@ module Ore
280
343
  instance_variable_set("@#{name}",value)
281
344
  end
282
345
  end
346
+
347
+ @generated_dirs = Set[]
348
+ @generated_files = Set[]
283
349
  end
284
350
 
285
351
  #
286
352
  # Creates directories listed in the template directories.
287
353
  #
288
354
  def generate_directories!
289
- generated = Set[]
290
-
291
355
  @templates.each do |template|
292
356
  template.each_directory do |dir|
293
- unless generated.include?(dir)
294
- path = interpolate(dir)
295
- empty_directory path
296
-
297
- generated << dir
298
- end
357
+ generate_dir dir
299
358
  end
300
359
  end
301
360
  end
@@ -304,35 +363,17 @@ module Ore
304
363
  # Copies static files and renders templates in the template directories.
305
364
  #
306
365
  def generate_files!
307
- generated = Set[]
308
-
309
366
  # iterate through the templates in reverse, so files in the templates
310
367
  # loaded last override the previously templates.
311
368
  @templates.reverse_each do |template|
312
369
  # copy in the static files first
313
370
  template.each_file(@markup) do |dest,file|
314
- unless generated.include?(dest)
315
- path = interpolate(dest)
316
-
317
- copy_file file, path
318
- chmod path, File.stat(file).mode
319
-
320
- generated << dest
321
- end
371
+ generate_file dest, file
322
372
  end
323
373
 
324
374
  # then render the templates
325
375
  template.each_template(@markup) do |dest,file|
326
- unless generated.include?(dest)
327
- path = interpolate(dest)
328
- @current_template_dir = File.dirname(dest)
329
-
330
- template file, path
331
- chmod path, File.stat(file).mode
332
-
333
- @current_template_dir = nil
334
- generated << dest
335
- end
376
+ generate_file dest, file, :template => true
336
377
  end
337
378
  end
338
379
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ore
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.7.0
5
+ version: 0.7.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Postmodern
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-02-19 00:00:00 -08:00
13
+ date: 2011-02-20 00:00:00 -08:00
14
14
  default_executable: ore
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency