file_templater 0.1.2 → 0.1.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.
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.