ggem 1.8.4 → 1.9.4

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,58 +1,60 @@
1
- require 'fileutils'
2
- require 'ggem/template'
1
+ # frozen_string_literal: true
3
2
 
4
- module GGem
3
+ require "fileutils"
4
+ require "ggem/template"
5
5
 
6
- class Gem
6
+ module GGem; end
7
+ class GGem::Gem
8
+ NoNameError = Class.new(ArgumentError)
7
9
 
8
- attr_reader :root_path, :name
10
+ attr_reader :root_path, :name
9
11
 
10
- def initialize(path, name)
11
- raise NoNameError if name.to_s.empty?
12
- @root_path, self.name = path, name
13
- end
12
+ def initialize(path, name)
13
+ raise NoNameError if name.to_s.empty?
14
+ @root_path, self.name = path, name
15
+ end
14
16
 
15
- def save!
16
- Template.new(self).save
17
- self
18
- end
17
+ def save!
18
+ GGem::Template.new(self).save
19
+ self
20
+ end
19
21
 
20
- def path; File.join(@root_path, @name); end
21
- def name=(name); @name = normalize_name(name); end
22
+ def path
23
+ File.join(@root_path, @name)
24
+ end
22
25
 
23
- def module_name
24
- transforms = {
25
- '_' => '',
26
- '-' => ''
27
- }
28
- @module_name ||= transform_name(transforms){ |part| part.capitalize }
29
- end
26
+ def name=(name)
27
+ @name = normalize_name(name)
28
+ end
30
29
 
31
- def ruby_name
32
- @ruby_name ||= transform_name{ |part| part.downcase }
33
- end
30
+ def module_name
31
+ transforms = {
32
+ "_" => "",
33
+ "-" => ""
34
+ }
35
+ @module_name ||= transform_name(transforms){ |part| part.capitalize }
36
+ end
37
+
38
+ def ruby_name
39
+ @ruby_name ||= transform_name{ |part| part.downcase }
40
+ end
34
41
 
35
- private
42
+ private
36
43
 
37
- def normalize_name(name)
38
- und_camelcs = [ /([A-Z])([a-z])/, '_\1\2' ]
39
- rm_dup_und = [ /_+/, '_' ]
40
- rm_lead_und = [ /^_/, '' ]
41
- name.gsub(*und_camelcs).gsub(*rm_dup_und).sub(*rm_lead_und).downcase
42
- end
44
+ def normalize_name(name)
45
+ und_camelcs = [/([A-Z])([a-z])/, '_\1\2']
46
+ rm_dup_und = [/_+/, "_"]
47
+ rm_lead_und = [/^_/, "" ]
48
+ name.gsub(*und_camelcs).gsub(*rm_dup_und).sub(*rm_lead_und).downcase
49
+ end
43
50
 
44
- def transform_name(conditions = {}, &block)
45
- n = (block ? block.call(self.name) : self.name)
46
- conditions.each do |on, glue|
47
- if (a = n.split(on)).size > 1
48
- n = a.map{ |part| block.call(part) if block }.join(glue)
49
- end
51
+ def transform_name(conditions = {}, &block)
52
+ n = (block ? block.call(self.name) : self.name)
53
+ conditions.each do |on, glue|
54
+ if (a = n.split(on)).size > 1
55
+ n = a.map{ |part| block.call(part) if block }.join(glue)
50
56
  end
51
- n
52
57
  end
53
-
54
- NoNameError = Class.new(ArgumentError)
55
-
58
+ n
56
59
  end
57
-
58
60
  end
@@ -1,85 +1,82 @@
1
- require 'pathname'
2
- require 'scmd'
1
+ # frozen_string_literal: true
3
2
 
4
- module GGem
3
+ require "pathname"
4
+ require "scmd"
5
5
 
6
- class Gemspec
6
+ module GGem; end
7
+ class GGem::Gemspec
8
+ PUSH_HOST_META_KEY = "allowed_push_host"
9
+ DEFAULT_PUSH_HOST = "https://rubygems.org".freeze
10
+ BUILD_TO_DIRNAME = "pkg".freeze
7
11
 
8
- PUSH_HOST_META_KEY = 'allowed_push_host'
9
- DEFAULT_PUSH_HOST = 'https://rubygems.org'.freeze
10
- BUILD_TO_DIRNAME = 'pkg'.freeze
12
+ NotFoundError = Class.new(ArgumentError)
13
+ LoadError = Class.new(ArgumentError)
14
+ CmdError = Class.new(RuntimeError)
11
15
 
12
- attr_reader :path, :name, :version, :version_tag
13
- attr_reader :gem_file_name, :gem_file, :push_host
16
+ attr_reader :path, :name, :version, :version_tag
17
+ attr_reader :gem_file_name, :gem_file, :push_host
14
18
 
15
- def initialize(root_path)
16
- @root = Pathname.new(File.expand_path(root_path))
17
- raise NotFoundError unless @root.exist?
18
- @path = Pathname.new(Dir[File.join(@root, "{,*}.gemspec")].first.to_s)
19
- raise NotFoundError unless @path.exist?
19
+ def initialize(root_path)
20
+ @root = Pathname.new(File.expand_path(root_path))
21
+ raise NotFoundError unless @root.exist?
22
+ @path = Pathname.new(Dir[File.join(@root, "{,*}.gemspec")].first.to_s)
23
+ raise NotFoundError unless @path.exist?
20
24
 
21
- @spec = load_gemspec(@path)
22
- @name = @spec.name
23
- @version = @spec.version
24
- @version_tag = "v#{@version}"
25
+ @spec = load_gemspec(@path)
26
+ @name = @spec.name
27
+ @version = @spec.version
28
+ @version_tag = "v#{@version}"
25
29
 
26
- @gem_file_name = "#{@name}-#{@version}.gem"
27
- @gem_file = File.join(BUILD_TO_DIRNAME, @gem_file_name)
28
- @built_gem_path = @root.join(@gem_file)
30
+ @gem_file_name = "#{@name}-#{@version}.gem"
31
+ @gem_file = File.join(BUILD_TO_DIRNAME, @gem_file_name)
32
+ @built_gem_path = @root.join(@gem_file)
29
33
 
30
- @push_host = get_push_host(@spec)
31
- end
32
-
33
- def run_build_cmd
34
- run_cmd("gem build --verbose #{@path}").tap do
35
- gem_path = @root.join(@gem_file_name)
36
- run_cmd("mkdir -p #{@built_gem_path.dirname}")
37
- run_cmd("mv #{gem_path} #{@built_gem_path}")
38
- end
39
- end
40
-
41
- def run_install_cmd
42
- run_cmd("gem install #{@built_gem_path}")
43
- end
34
+ @push_host = get_push_host(@spec)
35
+ end
44
36
 
45
- def run_push_cmd
46
- run_cmd("gem push #{@built_gem_path} --host #{@push_host}")
37
+ def run_build_cmd
38
+ run_cmd("gem build --verbose #{@path}").tap do
39
+ gem_path = @root.join(@gem_file_name)
40
+ run_cmd("mkdir -p #{@built_gem_path.dirname}")
41
+ run_cmd("mv #{gem_path} #{@built_gem_path}")
47
42
  end
43
+ end
48
44
 
49
- private
50
-
51
- def run_cmd(cmd_string)
52
- cmd = Scmd.new(cmd_string)
53
- cmd.run
54
- if !cmd.success?
55
- raise CmdError, "#{cmd_string}\n" \
56
- "#{cmd.stderr.empty? ? cmd.stdout : cmd.stderr}"
57
- end
58
- [cmd_string, cmd.exitstatus, cmd.stdout]
59
- end
45
+ def run_install_cmd
46
+ run_cmd("gem install #{@built_gem_path}")
47
+ end
60
48
 
61
- def load_gemspec(path)
62
- eval(path.read, TOPLEVEL_BINDING, path.expand_path.to_s)
63
- rescue ScriptError, StandardError => e
64
- original_line = e.backtrace.find{ |line| line.include?(path.to_s) }
65
- msg = "There was a #{e.class} while loading #{path.basename}: \n#{e.message}"
66
- msg << " from\n #{original_line}" if original_line
67
- msg << "\n"
68
- raise LoadError, msg
69
- end
49
+ def run_push_cmd
50
+ run_cmd("gem push #{@built_gem_path} --host #{@push_host}")
51
+ end
70
52
 
71
- def get_push_host(spec)
72
- ENV['GGEM_PUSH_HOST'] || get_meta(spec)[PUSH_HOST_META_KEY] || DEFAULT_PUSH_HOST
73
- end
53
+ private
74
54
 
75
- def get_meta(spec)
76
- (spec.respond_to?(:metadata) ? spec.metadata : {}) || {}
55
+ def run_cmd(cmd_string)
56
+ cmd = Scmd.new(cmd_string)
57
+ cmd.run
58
+ if !cmd.success?
59
+ raise CmdError, "#{cmd_string}\n" \
60
+ "#{cmd.stderr.empty? ? cmd.stdout : cmd.stderr}"
77
61
  end
62
+ [cmd_string, cmd.exitstatus, cmd.stdout]
63
+ end
78
64
 
79
- NotFoundError = Class.new(ArgumentError)
80
- LoadError = Class.new(ArgumentError)
81
- CmdError = Class.new(RuntimeError)
65
+ def load_gemspec(path)
66
+ eval(path.read, TOPLEVEL_BINDING, path.expand_path.to_s)
67
+ rescue ScriptError, StandardError => e
68
+ original_line = e.backtrace.find{ |line| line.include?(path.to_s) }
69
+ msg = "There was a #{e.class} while loading #{path.basename}: \n#{e.message}"
70
+ msg << " from\n #{original_line}" if original_line
71
+ msg << "\n"
72
+ raise LoadError, msg
73
+ end
82
74
 
75
+ def get_push_host(spec)
76
+ ENV["GGEM_PUSH_HOST"] || get_meta(spec)[PUSH_HOST_META_KEY] || DEFAULT_PUSH_HOST
83
77
  end
84
78
 
79
+ def get_meta(spec)
80
+ (spec.respond_to?(:metadata) ? spec.metadata : {}) || {}
81
+ end
85
82
  end
@@ -1,60 +1,57 @@
1
- require 'pathname'
2
- require 'scmd'
1
+ # frozen_string_literal: true
3
2
 
4
- module GGem
3
+ require "pathname"
4
+ require "scmd"
5
5
 
6
- class GitRepo
6
+ module GGem; end
7
+ class GGem::GitRepo
8
+ NotFoundError = Class.new(ArgumentError)
9
+ CmdError = Class.new(RuntimeError)
7
10
 
8
- attr_reader :path
11
+ attr_reader :path
9
12
 
10
- def initialize(repo_path)
11
- @path = Pathname.new(File.expand_path(repo_path))
12
- end
13
-
14
- def run_init_cmd
15
- run_cmd("git init").tap do
16
- run_cmd("git add --all && git add -f *.gitkeep")
17
- end
18
- end
13
+ def initialize(repo_path)
14
+ @path = Pathname.new(File.expand_path(repo_path))
15
+ end
19
16
 
20
- def run_validate_clean_cmd
21
- run_cmd("git diff --exit-code")
17
+ def run_init_cmd
18
+ run_cmd("git init").tap do
19
+ run_cmd("git add --all && git add -f *.keep")
22
20
  end
21
+ end
23
22
 
24
- def run_validate_committed_cmd
25
- run_cmd("git diff-index --quiet --cached HEAD")
26
- end
23
+ def run_validate_clean_cmd
24
+ run_cmd("git diff --exit-code")
25
+ end
27
26
 
28
- def run_push_cmd
29
- run_cmd("git push").tap do
30
- run_cmd("git push --tags")
31
- end
32
- end
27
+ def run_validate_committed_cmd
28
+ run_cmd("git diff-index --quiet --cached HEAD")
29
+ end
33
30
 
34
- def run_add_version_tag_cmd(version, tag)
35
- run_cmd("git tag -a -m \"Version #{version}\" #{tag}")
31
+ def run_push_cmd
32
+ run_cmd("git push").tap do
33
+ run_cmd("git push --tags")
36
34
  end
35
+ end
37
36
 
38
- def run_rm_tag_cmd(tag)
39
- run_cmd("git tag -d #{tag}")
40
- end
37
+ def run_add_version_tag_cmd(version, tag)
38
+ run_cmd("git tag -a -m \"Version #{version}\" #{tag}")
39
+ end
41
40
 
42
- private
43
-
44
- def run_cmd(cmd_string)
45
- cmd_string = "cd #{@path} && #{cmd_string}"
46
- cmd = Scmd.new(cmd_string)
47
- cmd.run
48
- if !cmd.success?
49
- raise CmdError, "#{cmd_string}\n" \
50
- "#{cmd.stderr.empty? ? cmd.stdout : cmd.stderr}"
51
- end
52
- [cmd_string, cmd.exitstatus, cmd.stdout]
53
- end
41
+ def run_rm_tag_cmd(tag)
42
+ run_cmd("git tag -d #{tag}")
43
+ end
54
44
 
55
- NotFoundError = Class.new(ArgumentError)
56
- CmdError = Class.new(RuntimeError)
45
+ private
57
46
 
47
+ def run_cmd(cmd_string)
48
+ cmd_string = "cd #{@path} && #{cmd_string}"
49
+ cmd = Scmd.new(cmd_string)
50
+ cmd.run
51
+ if !cmd.success?
52
+ raise CmdError, "#{cmd_string}\n" \
53
+ "#{cmd.stderr.empty? ? cmd.stdout : cmd.stderr}"
54
+ end
55
+ [cmd_string, cmd.exitstatus, cmd.stdout]
58
56
  end
59
-
60
57
  end
@@ -1,64 +1,64 @@
1
- require 'erb'
2
- require 'fileutils'
1
+ # frozen_string_literal: true
3
2
 
4
- module GGem
3
+ require "erb"
4
+ require "fileutils"
5
5
 
6
- class Template
7
-
8
- def initialize(ggem)
9
- @gem = ggem
10
- end
6
+ module GGem; end
7
+ class GGem::Template
8
+ def initialize(ggem)
9
+ @ggem = ggem
10
+ end
11
11
 
12
- def save
13
- save_folder # (gem root path)
14
- save_folder "lib/#{@gem.ruby_name}"
15
- save_folder "test/support"
16
- save_folder "test/system"
17
- save_folder "test/unit"
18
- save_folder "log"
19
- save_folder "tmp"
12
+ def save
13
+ save_folder # (gem root path)
14
+ save_folder "lib/#{@ggem.ruby_name}"
15
+ save_folder "test/support"
16
+ save_folder "test/system"
17
+ save_folder "test/unit"
18
+ save_folder "log"
19
+ save_folder "tmp"
20
20
 
21
- save_file('gitignore.erb', '.gitignore')
22
- save_file('Gemfile.erb', 'Gemfile')
23
- save_file('gemspec.erb', "#{@gem.name}.gemspec")
24
- save_file('README.md.erb', 'README.md')
25
- save_file('LICENSE.erb', 'LICENSE')
21
+ save_file("ruby-version.erb", ".ruby-version")
22
+ save_file("gitignore.erb", ".gitignore")
23
+ save_file("Gemfile.erb", "Gemfile")
24
+ save_file("gemspec.erb", "#{@ggem.name}.gemspec")
25
+ save_file("README.md.erb", "README.md")
26
+ save_file("LICENSE.erb", "LICENSE")
26
27
 
27
- save_file('lib.rb.erb', "lib/#{@gem.ruby_name}.rb")
28
- save_file('lib_version.rb.erb', "lib/#{@gem.ruby_name}/version.rb")
28
+ save_file("lib.rb.erb", "lib/#{@ggem.ruby_name}.rb")
29
+ save_file("lib_version.rb.erb", "lib/#{@ggem.ruby_name}/version.rb")
29
30
 
30
- save_file('test_helper.rb.erb', 'test/helper.rb')
31
- save_file('test_support_factory.rb.erb', 'test/support/factory.rb')
31
+ save_file("test_helper.rb.erb", "test/helper.rb")
32
+ save_file("test_support_factory.rb.erb", "test/support/factory.rb")
32
33
 
33
- save_empty_file('log/.gitkeep')
34
- save_empty_file('tmp/.gitkeep')
35
- end
34
+ save_empty_file("log/.keep")
35
+ save_empty_file("test/system/.keep")
36
+ save_empty_file("test/unit/.keep")
37
+ save_empty_file("tmp/.keep")
38
+ end
36
39
 
37
- private
40
+ private
38
41
 
39
- def save_folder(relative_path=nil)
40
- path = File.join([@gem.path, relative_path].compact)
41
- FileUtils.mkdir_p(path)
42
- end
42
+ def save_folder(relative_path=nil)
43
+ path = File.join([@ggem.path, relative_path].compact)
44
+ FileUtils.mkdir_p(path)
45
+ end
43
46
 
44
- def save_empty_file(relative_path)
45
- path = File.join(@gem.path, relative_path)
46
- FileUtils.touch(path)
47
- end
47
+ def save_empty_file(relative_path)
48
+ path = File.join(@ggem.path, relative_path)
49
+ FileUtils.touch(path)
50
+ end
48
51
 
49
- def save_file(source, output)
50
- source_file = File.join(File.dirname(__FILE__), 'template_file', source)
51
- output_file = File.join(@gem.root_path, @gem.name, output)
52
+ def save_file(source, output)
53
+ source_file = File.join(File.dirname(__FILE__), "template_file", source)
54
+ output_file = File.join(@ggem.root_path, @ggem.name, output)
52
55
 
53
- if File.exists?(source_file)
54
- FileUtils.mkdir_p(File.dirname(output_file))
55
- erb = ERB.new(File.read(source_file))
56
- File.open(output_file, 'w') {|f| f << erb.result(binding) }
57
- else
58
- raise ArgumentError, "the source file '#{source_file}' does not exist"
59
- end
56
+ if File.exists?(source_file)
57
+ FileUtils.mkdir_p(File.dirname(output_file))
58
+ erb = ERB.new(File.read(source_file))
59
+ File.open(output_file, "w") {|f| f << erb.result(binding) }
60
+ else
61
+ raise ArgumentError, "the source file `#{source_file}` does not exist"
60
62
  end
61
-
62
63
  end
63
-
64
64
  end