pad_gem 1.2.0 → 1.3.0

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: 7095c321d3274019a9e42500412c06779ecd49c7
4
- data.tar.gz: 8617453cc2779761a9291452d2c97ecb2369e0b9
3
+ metadata.gz: 86af64299404425fa442b9b1f35dcfde64a9e1d3
4
+ data.tar.gz: 67ef75143e6a9c2812973fe28e30467d02c55520
5
5
  SHA512:
6
- metadata.gz: 2889f81c65adeafb839be0e4e00a65b221d8b033d44a6fc7bf72a9b091fbfb90ee00c26197e1ac8617122b2b330a653022b332ee7faa8ef7c5ce35244a8109eb
7
- data.tar.gz: 1ab3cd69273cc45c67eeabcf0bb9eb47fa778d246449aa51ab5c86b0784cd32559a4b72d6fd9917846577cb465cf04d497a7fee06a3e09bdc0432f35258db4cc
6
+ metadata.gz: dc21924c0a502d9e282bfc261d56b2549c6abcb46c327346568f68099a982ce01560032d04092a2e30c2c229522abadbeef6d7973c01f541fe78af8608477f48
7
+ data.tar.gz: 7d3f4d21dd36caac17965592f202e5218f8ddbbf4ea81554e9f8cc8ce69c62283f5bce450e2b5ee35cad61a76bd56ccf9a81de94e9ee1e763eaff9aee32f0f08
@@ -3,29 +3,41 @@ require 'pad_utils'
3
3
  module PadGem
4
4
  module Generator
5
5
 
6
- def self.generate(options)
6
+ def self.generate(options, path = nil)
7
+ target_path = path == nil ? options[:gem_ruby_name] : "#{path}/#{options[:gem_ruby_name]}"
8
+
7
9
  # Don't start generation if directory exists
8
- if PadUtils.file_exist?(options[:gem_ruby_name])
10
+ if PadUtils.file_exist?(target_path)
9
11
  return "A directory with the name of this gem already exists."
10
12
  end
11
13
 
12
14
  # Copy the foundation template
13
- copy_foundation(options[:gem_ruby_name])
15
+ copy_foundation(target_path)
14
16
 
15
17
  # Replace the placeholder texts in newly copied foundation
16
- replace_placeholders(options)
18
+ replace_placeholders(options, path)
17
19
 
18
20
  # Rename files according to the new gem name
19
- rename_files(options)
20
-
21
- # Make the executable ...well... executable
22
- system "chmod +x #{options[:gem_ruby_name]}/bin/#{options[:executable]}"
21
+ rename_files(options, path)
22
+
23
+ if options[:executable]
24
+ # Make the executable ...well... executable
25
+ system "chmod +x #{target_path}/bin/#{options[:executable]}"
26
+ else
27
+ # Or delete it and remove traces of it in gemspec
28
+ PadUtils.delete_directory "#{target_path}/bin"
29
+ PadUtils.replace_line_containing(
30
+ "spec.executables",
31
+ in_file: "#{target_path}/#{options[:gem_ruby_name]}.gemspec",
32
+ new_value: ""
33
+ )
34
+ end
23
35
 
24
36
  # Return success
25
37
  "success"
26
38
 
27
39
  rescue Exception => e
28
- PadUtils.log_path = "#{ENV["HOME"]}/pad_gem_logs"
40
+ PadUtils.set_log_path "#{ENV["HOME"]}/pad_gem_logs"
29
41
  PadUtils.log("An error happened while generating the new gem", e)
30
42
  "failure"
31
43
  end
@@ -35,9 +47,10 @@ module PadGem
35
47
  PadUtils.copy_all_files("#{padgem_dir}/foundation", dir_name)
36
48
  end
37
49
 
38
- def self.replace_placeholders(options)
50
+ def self.replace_placeholders(options, path = nil)
39
51
  # Within the new gem dir
40
- Dir.chdir "#{options[:gem_ruby_name]}" do
52
+ target_path = path == nil ? options[:gem_ruby_name] : "#{path}/#{options[:gem_ruby_name]}"
53
+ Dir.chdir "#{target_path}" do
41
54
 
42
55
  # README.md
43
56
  PadUtils.replace_in_file("README.md", /PADGEM_GEM_NAME/, options[:gem_name])
@@ -54,8 +67,8 @@ module PadGem
54
67
  PadUtils.replace_in_file("foundation.gemspec", /PADGEM_EXECUTABLE/, options[:executable])
55
68
 
56
69
  # bin/exec
57
- PadUtils.replace_in_file("bin/exec", /PADGEM_GEM_NAME/, options[:gem_name])
58
- PadUtils.replace_in_file("bin/exec", /PADGEM_GEM_RUBY_NAME/, options[:gem_ruby_name])
70
+ PadUtils.replace_in_file("bin/exec", /PADGEM_GEM_NAME/, options[:gem_name]) if options[:executable]
71
+ PadUtils.replace_in_file("bin/exec", /PADGEM_GEM_RUBY_NAME/, options[:gem_ruby_name]) if options[:executable]
59
72
 
60
73
  # lib/foundation.rb
61
74
  PadUtils.replace_in_file("lib/foundation.rb", /PADGEM_GEM_NAME/, options[:gem_name])
@@ -82,12 +95,13 @@ module PadGem
82
95
  end
83
96
  end
84
97
 
85
- def self.rename_files(options)
98
+ def self.rename_files(options, path = nil)
86
99
  # Within the new gem dir
87
- Dir.chdir "#{options[:gem_ruby_name]}" do
100
+ target_path = path == nil ? options[:gem_ruby_name] : "#{path}/#{options[:gem_ruby_name]}"
101
+ Dir.chdir "#{target_path}" do
88
102
 
89
103
  # bin/exec
90
- PadUtils.move_file("bin/exec", "bin/#{options[:executable]}")
104
+ PadUtils.move_file("bin/exec", "bin/#{options[:executable]}") if options[:executable]
91
105
 
92
106
  # foundation.gemspec
93
107
  PadUtils.move_file("foundation.gemspec", "#{options[:gem_ruby_name]}.gemspec")
data/lib/pad_gem/menu.rb CHANGED
@@ -15,7 +15,12 @@ module PadGem
15
15
  options[:gem_name] = PadUtils.question_menu("Name of your gem")
16
16
  options[:gem_name] = PadUtils.sanitize(options[:gem_name])
17
17
  options[:gem_name] = PadUtils.convert_to_ruby_name(options[:gem_name])
18
- options[:executable] = PadUtils.question_menu("Gem executable name")
18
+ sets_executable = PadUtils.yes_no_menu(question: "Add an executable?")
19
+ if sets_executable
20
+ options[:executable] = PadUtils.question_menu("Gem executable name")
21
+ else
22
+ options[:executable] = nil
23
+ end
19
24
  options[:ruby_version] = PadUtils.question_menu("Minimum Ruby version")
20
25
  options[:author] = PadUtils.question_menu("Your name")
21
26
  options[:email] = PadUtils.question_menu("Your email address")
@@ -1,3 +1,3 @@
1
1
  module PadGem
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pad_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nico Schuele
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-03 00:00:00.000000000 Z
11
+ date: 2016-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pad_utils