file_templater 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2cbcda6006b6b3e49308db64982a9a48696d10e3
4
- data.tar.gz: 97595b1474ce2db099e98ae523b7452d402b695a
3
+ metadata.gz: 6d26fcfa5bc5fb8b356afa2803cddad03908ce16
4
+ data.tar.gz: bfbcc29e18036c6a71d24aafd490854024827d86
5
5
  SHA512:
6
- metadata.gz: c9e7450d71bdbf09dbe8479b6d0d06486de3698f12a53a51b74863e57a922e1adc89169b78d876d5cee3a01ecb5a2df40bb6a7ada79d4b264896ba3cba6be629
7
- data.tar.gz: 51f8a7e76f0f57b45819bff36a04edd0f84a20aea037d814151bc2c5ebc00563bce13baaff7e5388740a2eff4aa13a73a8fffdf07f17c82a9a56ae9ffe4f9cc6
6
+ metadata.gz: 726515a8ba6d89ed7f1fa06ae0c41ab6e3ee1a877e7ba701fc85c40311087664baaecec67b5dae7805d8c4b16ca73675c98653c1819e11e3d1978d39aadfff0d
7
+ data.tar.gz: 8f4607d540d012e4dfa3d648e46a855e18a1a76d0a992138f57d2d87ffdf00aaa908e6daf6c50f7bb10952175bd374c26259d930421fdd6d9e55863043a76161
@@ -9,7 +9,7 @@ module FileTemplater
9
9
 
10
10
  @actions = []
11
11
 
12
- parser = OptionParser.new do |o|
12
+ @parser = OptionParser.new do |o|
13
13
  o.banner = "Usage: template [options] [binding arguments]"
14
14
 
15
15
  o.separator ""
@@ -67,7 +67,7 @@ module FileTemplater
67
67
  o.on_tail("-v", "--version", "Display the version") do
68
68
  puts "File Templater (template) version " + VERSION
69
69
  puts
70
- puts "Copyright (C) 2015 Sam Craig"
70
+ puts "Copyright (C) 2015-2016 Sam Craig"
71
71
  puts "Licensed under the GNU General Public License version 3."
72
72
 
73
73
  exit
@@ -80,11 +80,22 @@ module FileTemplater
80
80
  end
81
81
  end
82
82
 
83
- parser.parse!(argv)
84
- @arguments = argv
83
+ if argv.empty?
84
+ puts @parser
85
+ exit
86
+ else
87
+ @parser.parse!(argv)
88
+ @arguments = argv
89
+ end
85
90
  end
86
91
 
87
92
  def process_actions
93
+ if @actions.empty?
94
+ puts @parser
95
+ puts "\nNo actions were supplied to the program! The program will not do anything as a result."
96
+ exit
97
+ end
98
+
88
99
  # All actions should be unique.
89
100
  @actions.uniq!
90
101
 
@@ -4,6 +4,7 @@ module FileTemplater
4
4
  # bind: which binding rather than the default to use
5
5
  # nomodify: if the template ERB will be loaded or not
6
6
  def initialize(template, arguments, options = {})
7
+ @name = template
7
8
  @nomodify = options[:nomodify]
8
9
 
9
10
  @template = File.join(HUBS[:template], template)
@@ -23,18 +24,20 @@ module FileTemplater
23
24
  end
24
25
 
25
26
  def load(folder = @template)
26
- FileUtils.mkdir(File.basename(folder)) unless folder == @template
27
+ unless folder == @template
28
+ FileUtils.mkdir(File.join(Dir.pwd, File.basename(folder)))
29
+ puts "Created folder #{File.join(Dir.pwd, File.basename(folder))}"
30
+ end
27
31
 
28
32
  FileActions.unique_directory_list(folder).each do |f|
29
- # We need the whole path to f, but we will keep the short name.
30
- short_name = f
31
33
  f = File.join(folder, f)
34
+ short_path = f.gsub(HUBS[:template] + File::SEPARATOR + @name, "")
32
35
 
33
36
  if File.directory?(f)
34
37
  self.load f
35
38
  else
36
39
  if !@nomodify && f.end_with?(".erb")
37
- output_file = File.open(File.join(Dir.pwd, transform_file_name(short_name)), "w")
40
+ output_file = File.open(File.join(Dir.pwd, transform_file_name(short_path)), "w")
38
41
 
39
42
  input_file = File.open(f, "r")
40
43
  output_file.print(ERB.new(input_file.read, nil, "<>").result(@bind && @bind.get_binding))
@@ -42,14 +45,15 @@ module FileTemplater
42
45
 
43
46
  output_file.close
44
47
  else
45
- FileUtils.copy_entry(f, File.join(Dir.pwd, transform_file_name(short_name)))
48
+ FileUtils.copy_entry(f, File.join(Dir.pwd, transform_file_name(short_path)))
46
49
  end
50
+
51
+ puts "Created file #{File.join(Dir.pwd, transform_file_name(short_path))}"
47
52
  end
48
53
  end
49
54
  end
50
55
 
51
56
  # Expands the variable-in-file-name notation.
52
- # file is expected to be a short name
53
57
  def transform_file_name(file)
54
58
  if @bind
55
59
  variables = file.scan(/{{([^}]*)}}/).flatten
@@ -59,7 +63,7 @@ module FileTemplater
59
63
  end
60
64
  end
61
65
 
62
- !@nomodify && file.end_with?(".erb") ? File.basename(file, ".*") : file
66
+ (!@nomodify && file.end_with?(".erb") && !File.directory?(file)) ? File.basename(file, ".*") : file
63
67
  end
64
68
  end
65
69
  end
@@ -1,5 +1,5 @@
1
1
  module FileTemplater
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
 
4
4
  # The hub is where we store our templates and bindings.
5
5
  HUBS = {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: file_templater
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Craig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-26 00:00:00.000000000 Z
11
+ date: 2016-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: terminal-table
@@ -39,7 +39,7 @@ files:
39
39
  - lib/file_templater/variables.rb
40
40
  homepage: https://github.com/Sammidysam/file_templater
41
41
  licenses:
42
- - gpl-3.0
42
+ - GPL-3.0
43
43
  metadata: {}
44
44
  post_install_message:
45
45
  rdoc_options: []
@@ -57,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
57
57
  version: '0'
58
58
  requirements: []
59
59
  rubyforge_project:
60
- rubygems_version: 2.4.8
60
+ rubygems_version: 2.5.1
61
61
  signing_key:
62
62
  specification_version: 4
63
63
  summary: A simple system to create files/file structures from ERB templates.