automatthew-genitor 0.6.1 → 0.6.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.
@@ -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