automatthew-genitor 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,10 +1,10 @@
1
1
 
2
- # Gem::Specification for Genitor-0.6.1
2
+ # Gem::Specification for Genitor-0.6.2
3
3
  # Originally generated by Echoe
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = %q{genitor}
7
- s.version = "0.6.1"
7
+ s.version = "0.6.2"
8
8
 
9
9
  s.specification_version = 2 if s.respond_to? :specification_version=
10
10
 
@@ -33,7 +33,7 @@ end
33
33
  # require dep
34
34
  # end
35
35
  #
36
- # Version = '0.6.1'
36
+ # Version = '0.6.2'
37
37
  #
38
38
  # task :default => [:test]
39
39
  #
@@ -3,12 +3,15 @@ require 'rake'
3
3
  require 'rake/tasklib'
4
4
  require 'genitor/polite_file'
5
5
  require 'erubis'
6
+ require "highline/import"
6
7
 
7
8
  class Genitor < Rake::TaskLib
8
9
 
9
10
  # Name of the primary Rake task
10
11
  attr_accessor :name
11
12
 
13
+ attr_accessor :description
14
+
12
15
  # Directory to use as source
13
16
  attr_writer :source
14
17
 
@@ -20,6 +23,8 @@ class Genitor < Rake::TaskLib
20
23
 
21
24
  # List of files to be copied
22
25
  attr_accessor :copy_files
26
+ attr_accessor :all_files
27
+ attr_accessor :files
23
28
 
24
29
  # List of files to be processed (using, e.g. Erubis)
25
30
  attr_accessor :template_files
@@ -63,6 +68,8 @@ class Genitor < Rake::TaskLib
63
68
  end
64
69
  @copy_files = @files - @directories - @template_files
65
70
 
71
+ @all_files = @files - @template_files + @template_files.map { |f| f.chomp(File.extname(f)) }
72
+
66
73
  @target_executables = @executables.map { |f| target(f) }
67
74
 
68
75
  define
@@ -86,23 +93,24 @@ class Genitor < Rake::TaskLib
86
93
  # Define the necessary Genitor tasks
87
94
  def define
88
95
  desc "Create or update project using Genitor"
89
- task name => @files.map { |f| target(f) }
96
+ task name => @all_files.map { |f| target(f) }
90
97
 
91
98
  # default is namespace(:app)
92
99
  namespace name do
93
100
 
94
- @copy_files.each do |file|
95
- source_file, target_file = source(file), target(file)
96
- file target_file => source_file do
101
+ @copy_files.each do |cf|
102
+ source_file, target_file = source(cf), target(cf)
103
+ polite_file target_file => source_file do
97
104
  cp source_file, target_file
98
105
  end
99
106
  end
100
107
 
101
- # Define a rule for each template extension. Rake rules are
102
- # only used when no other task for a file is defined.
103
- @template_processors.each do |ext, block|
104
- rule ext do |t|
105
- block.call(source(t.name.sub(@target, "")), t.name.chomp(".#{ext}"))
108
+ @template_files.each do |tf|
109
+ extension = File.extname(tf)
110
+ source_file, target_file = source(tf), target(tf.chomp(extension))
111
+ block = @template_processors[extension[1..-1]]
112
+ polite_file target_file do
113
+ block.call(source_file, target_file)
106
114
  end
107
115
  end
108
116
 
@@ -7,6 +7,8 @@ class PoliteFileTask < Rake::FileTask
7
7
  end
8
8
 
9
9
  def confirm?
10
+ agree("Overwrite '#{name}' ?", false)
11
+ true
10
12
  # will use highline stuff
11
13
  end
12
14
 
@@ -39,6 +39,7 @@ context "Simple genitor" do
39
39
 
40
40
  specify "should have all directories in the directories list" do
41
41
  @generator.directories.to_a.should == @directories
42
+ # @generator.template_files.should == 1
42
43
  end
43
44
 
44
45
  specify "should have all non-erb files in the copy list" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: automatthew-genitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew King