gem_bootstrap 0.1.0 → 0.1.1

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: 73498c6924e2d8282854196a35e6691ae2b993d3
4
- data.tar.gz: 7a1169255b15645fc9f6abe9a7ff6104fa9b795e
3
+ metadata.gz: 70e85f8995690989efad2c33397d4dc60f86ed00
4
+ data.tar.gz: 8f860ee501e0ce369de06cb9fa67d49fc5daca85
5
5
  SHA512:
6
- metadata.gz: 3d297c55285573c133eef4241c06dc9153c3054a3b831dc978591debc148c0cbbbd2d849586fb6c29cffaf3509c7e92e006d523dd2ef9ab56ebcb80f6fe35360
7
- data.tar.gz: e10871c6de9812331fe70ed143dd33b9ad14059c27fefd5164bbc459389720885f341340ec4e4d9faf8f93e09b12a5fcddcfaa2f76bb6f7479d4f153928b9dc9
6
+ metadata.gz: c26a592d0c238ecdea5706eb9ddd0f59e7e77bfacda73fad5f428e2d1beb859ebdd2bd2e2bd59cdb55a8393e99e33b9ff41fe6aa294edda5654aec25a95327a4
7
+ data.tar.gz: 270bd46ca637b4f503cf27f95dba25e520ee78db82110749e7bbc0d4b233d8ea5b7c5f1a01556fa108e12a7a4728f1c0f22cb4df9ed389eb357d70955b5fa28f
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  # custom ignore files/directories
19
+ .ruby-version
data/.rubocop.yml CHANGED
@@ -1,9 +1,97 @@
1
- # This is the configuration used to check the rubocop source code.
2
1
  AllCops:
3
2
  Include:
4
- - '**/Rakefile'
5
- - '**/Gemfile'
6
- - lib/**/*
3
+ - Gemfile
4
+ - Rakefile
5
+ - bin/*
6
+ - gem_bootstrap.gemspec
7
+ - lib/**/*.rb
8
+ - test/**/*.rb
7
9
  Exclude:
8
10
  - templates/**/*
9
- inherit_from: rubocop-todo.yml
11
+ # Avoid long parameter lists
12
+ ParameterLists:
13
+ Max: 5
14
+ CountKeywordArgs: true
15
+
16
+ MethodLength:
17
+ CountComments: false
18
+ Max: 15
19
+
20
+ # Avoid more than `Max` levels of nesting.
21
+ BlockNesting:
22
+ Max: 4
23
+
24
+ # Align with the style guide.
25
+ CollectionMethods:
26
+ PreferredMethods:
27
+ collect: 'map'
28
+ inject: 'reduce'
29
+ find: 'detect'
30
+ find_all: 'select'
31
+
32
+ # Do not force public/protected/private keyword to be indented at the same
33
+ # level as the def keyword. My personal preference is to outdent these keywords
34
+ # because I think when scanning code it makes it easier to identify the
35
+ # sections of code and visually separate them. When the keyword is at the same
36
+ # level I think it sort of blends in with the def keywords and makes it harder
37
+ # to scan the code and see where the sections are.
38
+ AccessModifierIndentation:
39
+ Enabled: false
40
+
41
+ # Limit line length
42
+ LineLength:
43
+ Enabled: false
44
+
45
+ # Disable documentation checking until a class needs to be documented once
46
+ Documentation:
47
+ Enabled: false
48
+
49
+ # Enforce Ruby 1.8-compatible hash syntax
50
+ HashSyntax:
51
+ Enabled: true
52
+
53
+ # No spaces inside hash literals
54
+ SpaceInsideHashLiteralBraces:
55
+ EnforcedStyle: no_space
56
+
57
+ # Allow dots at the end of lines
58
+ DotPosition:
59
+ Enabled: false
60
+
61
+ # Don't require magic comment at the top of every file
62
+ Encoding:
63
+ Enabled: false
64
+
65
+ # Enforce outdenting of access modifiers (i.e. public, private, protected)
66
+ AccessModifierIndentation:
67
+ EnforcedStyle: outdent
68
+
69
+ EmptyLinesAroundAccessModifier:
70
+ Enabled: true
71
+
72
+ # Align ends correctly
73
+ EndAlignment:
74
+ AlignWith: variable
75
+
76
+ # Indentation of when/else
77
+ CaseIndentation:
78
+ IndentWhenRelativeTo: end
79
+ IndentOneStep: false
80
+
81
+ DoubleNegation:
82
+ Enabled: false
83
+
84
+ PercentLiteralDelimiters:
85
+ PreferredDelimiters:
86
+ '%': ()
87
+ '%i': ()
88
+ '%q': ()
89
+ '%Q': ()
90
+ '%r': '{}'
91
+ '%s': ()
92
+ '%w': '[]'
93
+ '%W': '[]'
94
+ '%x': ()
95
+
96
+ StringLiterals:
97
+ EnforcedStyle: double_quotes
data/CHANGELOGS.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ### Changelogs
2
2
 
3
+ #### 0.1.1
4
+
5
+ - Simplify the CLI interface
6
+
3
7
  #### 0.1.0
4
8
 
5
9
  - First release based on [Semantic Versioning][]
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in valid_filename.gemspec
4
4
  gemspec
data/README.md CHANGED
@@ -11,9 +11,24 @@
11
11
  Generate the starting template for creating ruby gem in ruby in just one command.
12
12
 
13
13
  TL;DR
14
+ First install the gem
15
+
16
+ ```sh
17
+ gem install gem_bootstrap
18
+ ```
19
+
20
+ then generate the new gem
21
+
14
22
  ```sh
15
- gem install gem_bootstrap --pre; gem_bootstrap generate awesome_gem --github-id awesome_developer --email cool@awesomedev.com --author 'John Guru II'
23
+ gem_bootstrap awesome_gem --github-id awesome_developer --email cool@awesomedev.com --author 'John Guru II'
16
24
  ```
25
+
26
+ or the shot version
27
+
28
+ ```sh
29
+ gem_bootstrap awesome_gem -g awesome_developer -e cool@awesomedev.com -a 'John Guru II'
30
+ ```
31
+
17
32
  Note: this gem will be release following the [Semantic Versioning][] start from `0.1.0`
18
33
 
19
34
  ### Features:
@@ -50,22 +65,20 @@ gem install gem_bootstrap
50
65
  Then just run the `gem_bootstrap` without any argument for list of help
51
66
 
52
67
  ```
53
- gem_bootstrap generate [GEM_NAME]
54
- --github-id [GITHUB_ID]
55
- --email [EMAIL]
56
- --author [AUTHOR]
68
+ gem_bootstrap [GEM_NAME]
69
+ -g, --github-id [GITHUB_ID]
70
+ -e, --email [EMAIL]
71
+ -a, --author [AUTHOR]
57
72
  e.g.
58
- gem_bootstrap generate awesome_gem
59
- --github-id awesome_developer
60
- --email cool@awesomedev.com
61
- --author 'John Guru II'
62
- gem_bootstrap help [COMMAND] # Describe available commands or one specific command
63
- gem_bootstrap usage # Display help screen
73
+ gem_bootstrap awesome_gem
74
+ --github-id awesome_developer
75
+ --email cool@awesomedev.com
76
+ --author 'John Guru II'
64
77
  ```
65
78
  To generate the gem just type the command like
66
79
 
67
80
  ```
68
- gem_bootstrap generate awesome_gem --github-id awesome_developer -- email cool@awesomedev.com --author 'John Guru II'
81
+ gem_bootstrap awesome_gem --github-id awesome_developer -- email cool@awesomedev.com --author 'John Guru II'
69
82
  ```
70
83
  Which should output something like
71
84
 
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require 'bundler/gem_tasks'
2
- require 'rake/testtask'
3
- project_name = 'gem_bootstrap'
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+ project_name = "gem_bootstrap"
4
4
 
5
5
  Rake::TestTask.new do |t|
6
6
  t.libs << "lib/#{project_name}"
@@ -11,20 +11,20 @@ end
11
11
  task default: [:test, :rubocop]
12
12
 
13
13
  task :pry do
14
- require 'pry'
15
- require 'awesome_print'
16
- require_relative 'lib/gem_bootstrap'
14
+ require "pry"
15
+ require "awesome_print"
16
+ require_relative "lib/gem_bootstrap"
17
17
  include GemBootstrap
18
18
  ARGV.clear
19
19
  Pry.start
20
20
  end
21
21
 
22
- require 'rubocop/rake_task'
23
- desc 'Run RuboCop on the lib directory'
22
+ require "rubocop/rake_task"
23
+ desc "Run RuboCop on the lib directory"
24
24
  Rubocop::RakeTask.new(:rubocop) do |task|
25
- task.patterns = ['lib/**/*.rb']
25
+ task.patterns = ["lib/**/*.rb"]
26
26
  # only show the files with failures
27
- task.formatters = ['files']
27
+ task.formatters = ["files"]
28
28
  # don't abort rake on failure
29
29
  task.fail_on_error = false
30
30
  end
data/bin/gem_bootstrap CHANGED
@@ -1,3 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
- require_relative './../lib/gem_bootstrap'
3
- GemBootstrap::MainCLI.start(ARGV)
2
+ require_relative "./../lib/gem_bootstrap"
3
+ if ARGV.empty?
4
+ GemBootstrap::MainCLI.start(%w[usage])
5
+ else
6
+ GemBootstrap::CLI.start(ARGV)
7
+ end
@@ -1,41 +1,41 @@
1
1
  # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
2
+ lib = File.expand_path("../lib", __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'gem_bootstrap/version'
4
+ require "gem_bootstrap/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = 'gem_bootstrap'
7
+ spec.name = "gem_bootstrap"
8
8
  spec.version = GemBootstrap::VERSION
9
- spec.authors = ['Burin Choomnuan']
10
- spec.email = ['agilecreativity@gmail.com']
9
+ spec.authors = ["Burin Choomnuan"]
10
+ spec.email = ["agilecreativity@gmail.com"]
11
11
  spec.summary = %q(Bootstrap the creation of ruby gem so that you don't have to start from scratch)
12
12
  spec.description = %q(Bootstrap the creation of ruby gem so that you don't have to start from scratch.
13
- Build with simple, sensible default and very easy to extend)
14
- spec.homepage = 'https://github.com/agilecreativity/gem_bootstrap'
15
- spec.license = 'MIT'
16
- spec.files = Dir.glob('{bin,lib,templates}/**/*') + %w(Gemfile
13
+ Build with simple, sensible default and very easy to extend.
14
+ TL;DR `gem_bootstrap [GEMNAME] -g github_id -e your@email.com -a 'John Guru')
15
+ spec.homepage = "https://github.com/agilecreativity/gem_bootstrap"
16
+ spec.license = "MIT"
17
+ spec.files = Dir.glob("{bin,lib,templates}/**/*") + %w[Gemfile
17
18
  Rakefile
18
19
  gem_bootstrap.gemspec
19
20
  README.md
20
21
  CHANGELOGS.md
21
22
  LICENSE
22
23
  .rubocop.yml
23
- .gitignore
24
- rubocop-todo.yml)
24
+ .gitignore]
25
25
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
26
- spec.test_files = Dir.glob('test/**/*')
27
- spec.require_paths = ['lib']
28
- spec.add_runtime_dependency 'thor', '~> 0.19'
29
- spec.add_runtime_dependency 'grit', '~> 2.5'
30
- spec.add_development_dependency 'awesome_print', '~> 1.2'
31
- spec.add_development_dependency 'bundler', '~> 1.6'
32
- spec.add_development_dependency 'gem-ctags', '~> 1.0'
33
- spec.add_development_dependency 'minitest', '~> 5.3'
34
- spec.add_development_dependency 'minitest-spec-context', '~> 0.0.3'
35
- spec.add_development_dependency 'guard', '~> 2.6'
36
- spec.add_development_dependency 'guard-minitest', '~> 2.2'
37
- spec.add_development_dependency 'pry', '~> 0.9'
38
- spec.add_development_dependency 'rake', '~> 10.3'
39
- spec.add_development_dependency 'rubocop', '~> 0.21'
40
- spec.add_development_dependency 'yard', '~> 0.8.7'
26
+ spec.test_files = Dir.glob("test/**/*")
27
+ spec.require_paths = ["lib"]
28
+ spec.add_runtime_dependency "thor", "~> 0.19"
29
+ spec.add_runtime_dependency "grit", "~> 2.5"
30
+ spec.add_development_dependency "awesome_print", "~> 1.2"
31
+ spec.add_development_dependency "bundler", "~> 1.6"
32
+ spec.add_development_dependency "gem-ctags", "~> 1.0"
33
+ spec.add_development_dependency "minitest", "~> 5.3"
34
+ spec.add_development_dependency "minitest-spec-context", "~> 0.0.3"
35
+ spec.add_development_dependency "guard", "~> 2.6"
36
+ spec.add_development_dependency "guard-minitest", "~> 2.2"
37
+ spec.add_development_dependency "pry", "~> 0.9"
38
+ spec.add_development_dependency "rake", "~> 10.3"
39
+ spec.add_development_dependency "rubocop", "~> 0.21"
40
+ spec.add_development_dependency "yard", "~> 0.8.7"
41
41
  end
data/lib/gem_bootstrap.rb CHANGED
@@ -1,7 +1,7 @@
1
- require_relative './gem_bootstrap/version'
2
- require_relative './gem_bootstrap/cli'
3
- require_relative './gem_bootstrap/git_utils'
4
- require_relative './gem_bootstrap/misc_utils'
5
- require_relative './gem_bootstrap/gem_bootstrap'
6
- require_relative './gem_bootstrap/core_ext/object/blank'
1
+ require_relative "./gem_bootstrap/version"
2
+ require_relative "./gem_bootstrap/cli"
3
+ require_relative "./gem_bootstrap/git_utils"
4
+ require_relative "./gem_bootstrap/misc_utils"
5
+ require_relative "./gem_bootstrap/gem_bootstrap"
6
+ require_relative "./gem_bootstrap/core_ext/object/blank"
7
7
  include GemBootstrap
@@ -1,21 +1,21 @@
1
- require 'thor'
2
- require_relative './misc_utils'
3
- require_relative './git_utils'
1
+ require "thor"
2
+ require_relative "./misc_utils"
3
+ require_relative "./git_utils"
4
4
  module GemBootstrap
5
5
  class CLI < Thor::Group
6
6
  include Thor::Actions
7
7
  argument :name
8
8
  class_option :github_id,
9
- aliases: '-g',
10
- desc: 'github profile id',
9
+ aliases: "-g",
10
+ desc: "github profile id",
11
11
  required: true
12
12
  class_option :author,
13
- aliases: '-a',
14
- desc: 'Full name of the author',
13
+ aliases: "-a",
14
+ desc: "Full name of the author",
15
15
  required: true
16
16
  class_option :email,
17
- aliases: '-e',
18
- desc: 'Email for github',
17
+ aliases: "-e",
18
+ desc: "Email for github",
19
19
  required: true
20
20
  def self.source_root
21
21
  File.dirname(__FILE__)
@@ -23,30 +23,30 @@ module GemBootstrap
23
23
 
24
24
  # rubocop:disable MethodLength, LineLength
25
25
  def create_lib_file
26
- template '../../templates/README.md', "#{name}/README.md"
27
- template '../../templates/CHANGELOGS.md', "#{name}/CHANGELOGS.md"
28
- template '../../templates/dot_yardopts', "#{name}/.yardopts"
29
- template '../../templates/dot_gitignore', "#{name}/.gitignore"
30
- template '../../templates/Gemfile', "#{name}/Gemfile"
31
- template '../../templates/Rakefile', "#{name}/Rakefile"
32
- template '../../templates/Guardfile', "#{name}/Guardfile"
33
- template '../../templates/dot_rubocop.yml', "#{name}/.rubocop.yml"
34
- template '../../templates/rubocop-todo.yml', "#{name}/rubocop-todo.yml"
35
- template '../../templates/newgem.gemspec.tt', "#{name}/#{name}.gemspec"
36
- template '../../templates/bin/newgem', "#{name}/bin/#{name}"
37
- template '../../templates/lib/newgem.rb', "#{name}/lib/#{name}.rb"
38
- template '../../templates/lib/newgem/version.rb', "#{name}/lib/#{name}/version.rb"
39
- template '../../templates/lib/newgem/logger.rb', "#{name}/lib/#{name}/logger.rb"
40
- template '../../templates/lib/newgem/cli.rb', "#{name}/lib/#{name}/cli.rb"
41
- template '../../templates/lib/newgem/newgem.rb', "#{name}/lib/#{name}/#{name}.rb"
42
- template '../../templates/lib/newgem/core_ext/hash/keys.rb', "#{name}/lib/#{name}/core_ext/hash/keys.rb"
43
- template '../../templates/test/test_helper.rb', "#{name}/test/test_helper.rb"
44
- template '../../templates/test/lib/newgem/test_newgem.rb', "#{name}/test/lib/#{name}/test_#{name}.rb"
26
+ template "../../templates/README.md", "#{name}/README.md"
27
+ template "../../templates/CHANGELOGS.md", "#{name}/CHANGELOGS.md"
28
+ template "../../templates/dot_yardopts", "#{name}/.yardopts"
29
+ template "../../templates/dot_gitignore", "#{name}/.gitignore"
30
+ template "../../templates/Gemfile", "#{name}/Gemfile"
31
+ template "../../templates/Rakefile", "#{name}/Rakefile"
32
+ template "../../templates/Guardfile", "#{name}/Guardfile"
33
+ template "../../templates/dot_rubocop.yml", "#{name}/.rubocop.yml"
34
+ template "../../templates/rubocop-todo.yml", "#{name}/rubocop-todo.yml"
35
+ template "../../templates/newgem.gemspec.tt", "#{name}/#{name}.gemspec"
36
+ template "../../templates/bin/newgem", "#{name}/bin/#{name}"
37
+ template "../../templates/lib/newgem.rb", "#{name}/lib/#{name}.rb"
38
+ template "../../templates/lib/newgem/version.rb", "#{name}/lib/#{name}/version.rb"
39
+ template "../../templates/lib/newgem/logger.rb", "#{name}/lib/#{name}/logger.rb"
40
+ template "../../templates/lib/newgem/cli.rb", "#{name}/lib/#{name}/cli.rb"
41
+ template "../../templates/lib/newgem/newgem.rb", "#{name}/lib/#{name}/#{name}.rb"
42
+ template "../../templates/lib/newgem/core_ext/hash/keys.rb", "#{name}/lib/#{name}/core_ext/hash/keys.rb"
43
+ template "../../templates/test/test_helper.rb", "#{name}/test/test_helper.rb"
44
+ template "../../templates/test/lib/newgem/test_newgem.rb", "#{name}/test/lib/#{name}/test_#{name}.rb"
45
45
  end
46
46
  # rubocop:enable all
47
47
 
48
48
  def copy_licence
49
- copy_file '../../templates/MIT_LICENSE', "#{name}/LICENSE"
49
+ copy_file "../../templates/MIT_LICENSE", "#{name}/LICENSE"
50
50
  end
51
51
 
52
52
  # Create the git project to store our generated code
@@ -1,33 +1,30 @@
1
- require 'thor'
2
- require_relative './cli'
1
+ require "thor"
2
+ require_relative "./cli"
3
3
  module GemBootstrap
4
4
  class MainCLI < Thor
5
5
  register GemBootstrap::CLI,
6
- 'generate',
7
- 'generate',
8
- 'Generate the starting template for CLI'
6
+ "generate",
7
+ "generate",
8
+ "Generate the starting template for CLI"
9
9
 
10
- desc 'usage', 'Display help screen'
10
+ desc "usage", "Display help screen"
11
11
  def usage
12
12
  generate_usage = <<-EOT
13
- gem_bootstrap generate [GEM_NAME]
14
- --github-id [GITHUB_ID]
15
- --email [EMAIL]
16
- --author [AUTHOR]
13
+
14
+ Usage/Synopsis:
15
+
16
+ $gem_bootstrap [GEM_NAME] -g, --github-id [GITHUB_ID] -e, --email [EMAIL] -a, --author [AUTHOR]
17
+
17
18
  e.g. create a gem name 'awesome_gem'
18
- gem_bootstrap generate awesome_gem
19
- --github-id awesome_developer
20
- --email cool@awesomedev.com
21
- --author 'John Guru II'
22
- EOT
19
+ $gem_bootstrap awesome_gem -g awesome_developer -e cool@awesomedev.com -a 'John Guru II'
23
20
 
24
- help_text = <<-EOT
25
- gem_bootstrap help [COMMAND] # Describe available commands or one specific command
26
- gem_bootstrap usage # Display help screen
27
21
  EOT
28
-
22
+ # help_text = <<-EOT
23
+ # gem_bootstrap help [COMMAND] # Describe available commands or one specific command
24
+ # gem_bootstrap usage # Display help screen
25
+ # EOT
29
26
  puts generate_usage
30
- puts help_text.gsub(/^\s+/, '')
27
+ # puts help_text.gsub(/^\s+/, '')
31
28
  end
32
29
 
33
30
  default_task :usage
@@ -1,4 +1,4 @@
1
- require 'grit'
1
+ require "grit"
2
2
  module GemBootstrap
3
3
  class GitUtils
4
4
  class << self
@@ -9,14 +9,14 @@ module GemBootstrap
9
9
  def create_git_project(base_dir, gem_name)
10
10
  base_dir = File.expand_path(base_dir) # so that it works with ~/codes/etc
11
11
  files = MiscUtils.files base_dir: base_dir,
12
- non_exts: %w(Gemfile
12
+ non_exts: %w[Gemfile
13
13
  Rakefile
14
14
  Guardfile
15
15
  LICENSE
16
16
  .rubocop.yml
17
17
  .yardopts
18
- .gitignore) << gem_name,
19
- exts: %w(md rb gemspec yml),
18
+ .gitignore] << gem_name,
19
+ exts: %w[md rb gemspec yml],
20
20
  recursive: true
21
21
  git_init(base_dir: base_dir)
22
22
  git_add(files, base_dir: base_dir, gem_name: gem_name)
@@ -29,19 +29,19 @@ module GemBootstrap
29
29
  current_dir = File.expand_path(options[:base_dir])
30
30
  base_dir = options[:base_dir] || Dir.pwd
31
31
  Dir.chdir(base_dir)
32
- MiscUtils.shell(%w(git init) << base_dir)
32
+ MiscUtils.shell(%w[git init] << base_dir)
33
33
  Dir.chdir(current_dir)
34
34
  end
35
35
 
36
36
  def git_add(files, options = {})
37
37
  base_dir = File.expand_path(options[:base_dir])
38
38
  Dir.chdir(base_dir) do
39
- git = Grit::Repo.new(File.expand_path('.'))
39
+ git = Grit::Repo.new(File.expand_path("."))
40
40
  files.each do |file|
41
41
  # puts "Add '#{file}' to repository"
42
42
  git.add(file)
43
43
  end
44
- git.commit_index('Initial commit')
44
+ git.commit_index("Initial commit")
45
45
  end
46
46
  end
47
47
  end
@@ -1,7 +1,6 @@
1
- require 'open3'
1
+ require "open3"
2
2
  module GemBootstrap
3
3
  class MiscUtils
4
-
5
4
  CustomError = Class.new(StandardError)
6
5
 
7
6
  class << self
@@ -11,7 +10,7 @@ module GemBootstrap
11
10
  # @param [String] str the input string
12
11
  def snake_case(str)
13
12
  return str.downcase if str =~ /^[A-Z_]+$/
14
- str.gsub(/\B[A-Z]/, '_\&').squeeze('_') =~ /_*(.*)/
13
+ str.gsub(/\B[A-Z]/, '_\&').squeeze("_") =~ /_*(.*)/
15
14
  $+.downcase
16
15
  end
17
16
 
@@ -21,7 +20,7 @@ module GemBootstrap
21
20
  # @param [String] str the input string
22
21
  def camel_case(str)
23
22
  return str if str !~ /_/ && str =~ /[A-Z]+.*/
24
- str.split('_').map { |i| i.capitalize }.join
23
+ str.split("_").map { |i| i.capitalize }.join
25
24
  end
26
25
 
27
26
  # List files base on some extension
@@ -36,11 +35,11 @@ module GemBootstrap
36
35
  base_dir = opts[:base_dir]
37
36
  fail CustomError, "The directory #{base_dir} is not valid or or not readable!" unless File.exist?(base_dir)
38
37
 
39
- wildcard = opts[:recursive] ? '**' : ''
38
+ wildcard = opts[:recursive] ? "**" : ""
40
39
  exts = opts[:exts]
41
40
  non_exts = opts[:non_exts]
42
41
 
43
- file_with_extension = Dir.glob(File.join(base_dir, wildcard, "*.{#{exts.join(',')}}"))
42
+ file_with_extension = Dir.glob(File.join(base_dir, wildcard, "*.{#{exts.join(",")}}"))
44
43
  file_with_no_extension = no_extension_files(base_dir, wildcard, non_exts)
45
44
 
46
45
  (file_with_extension + file_with_no_extension).sort
@@ -52,7 +51,7 @@ module GemBootstrap
52
51
  def no_extension_files(base_dir, wildcard, non_exts = [])
53
52
  list = []
54
53
  unless non_exts.empty?
55
- list = Dir.glob(File.join(base_dir, wildcard, "{#{non_exts.join(',')}}"))
54
+ list = Dir.glob(File.join(base_dir, wildcard, "{#{non_exts.join(",")}}"))
56
55
  end
57
56
  list
58
57
  end
@@ -63,9 +62,9 @@ module GemBootstrap
63
62
  # @return [String] result of the command as the string
64
63
  def shell(commands = [])
65
64
  begin
66
- command = commands.join(' ')
65
+ command = commands.join(" ")
67
66
  stdin, _stderr, _status = Open3.capture3(command)
68
- rescue Exception => e
67
+ rescue => e
69
68
  raise "Problem processing #{command}, #{e.message}"
70
69
  end
71
70
  stdin
@@ -1,3 +1,3 @@
1
1
  module GemBootstrap
2
- VERSION = '0.1.0'
2
+ VERSION = "0.1.1"
3
3
  end
data/templates/bin/newgem CHANGED
@@ -1,4 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require_relative '../lib/<%= name %>'
3
3
  include <%= MiscUtils.camel_case(name) %>
4
- <%= MiscUtils.camel_case(name) %>::CLI.start(ARGV)
4
+ if ARGV.empty?
5
+ <%= MiscUtils.camel_case(name) %>::CLI.start(%w[usage])
6
+ else
7
+ <%= MiscUtils.camel_case(name) %>::CLI.start(%w[execute].concat(ARGV))
8
+ end
@@ -18,7 +18,7 @@ module <%= MiscUtils.camel_case(name) %>
18
18
  desc 'usage', 'Display help screen'
19
19
  def usage
20
20
  puts <<-EOS
21
- Add you simple usage here!
21
+ Add your sample usage here!
22
22
  EOS
23
23
  end
24
24
 
@@ -1,6 +1,5 @@
1
1
  module <%= MiscUtils.camel_case(name) %>
2
2
  CustomError = Class.new(StandardError)
3
- # creat the main logic if applicable
4
3
  class << self
5
4
  # main helper method
6
5
  def helper
@@ -1,9 +1,9 @@
1
- require_relative '../../test_helper'
2
- require 'fileutils'
1
+ require_relative "../../test_helper"
2
+ require "fileutils"
3
3
  describe GemBootstrap do
4
- context '#dummy_test' do
5
- it 'must pass the simple test' do
6
- 'string'.wont_be_nil
4
+ context "#dummy_test" do
5
+ it "must pass the simple test" do
6
+ "string".wont_be_nil
7
7
  end
8
8
  end
9
9
  end
data/test/test_helper.rb CHANGED
@@ -1,8 +1,8 @@
1
- require 'minitest'
2
- require 'minitest/autorun'
3
- require 'minitest/pride'
4
- require 'minitest-spec-context'
5
- require 'pry'
6
- require 'awesome_print'
7
- require_relative '../lib/gem_bootstrap'
1
+ require "minitest"
2
+ require "minitest/autorun"
3
+ require "minitest/pride"
4
+ require "minitest-spec-context"
5
+ require "pry"
6
+ require "awesome_print"
7
+ require_relative "../lib/gem_bootstrap"
8
8
  include GemBootstrap
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gem_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Burin Choomnuan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-12 00:00:00.000000000 Z
11
+ date: 2014-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -194,7 +194,8 @@ dependencies:
194
194
  version: 0.8.7
195
195
  description: |-
196
196
  Bootstrap the creation of ruby gem so that you don't have to start from scratch.
197
- Build with simple, sensible default and very easy to extend
197
+ Build with simple, sensible default and very easy to extend.
198
+ TL;DR `gem_bootstrap [GEMNAME] -g github_id -e your@email.com -a 'John Guru'
198
199
  email:
199
200
  - agilecreativity@gmail.com
200
201
  executables:
@@ -219,7 +220,6 @@ files:
219
220
  - lib/gem_bootstrap/git_utils.rb
220
221
  - lib/gem_bootstrap/misc_utils.rb
221
222
  - lib/gem_bootstrap/version.rb
222
- - rubocop-todo.yml
223
223
  - templates/CHANGELOGS.md
224
224
  - templates/GNU_LICENSE
225
225
  - templates/Gemfile
data/rubocop-todo.yml DELETED
@@ -1,36 +0,0 @@
1
- # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2014-05-09 13:05:30 +1000 using RuboCop version 0.21.0.
3
- # The point is for the user to remove these configuration records
4
- # one by one as the offenses are removed from the code base.
5
- # Note that changes in the inspected code, or installation of new
6
- # versions of RuboCop, may require this file to be generated again.
7
-
8
- # Offense count: 1
9
- AsciiComments:
10
- Enabled: false
11
-
12
- # Offense count: 14
13
- Documentation:
14
- Enabled: false
15
-
16
- # Offense count: 7
17
- LineLength:
18
- Max: 91
19
-
20
- # Offense count: 2
21
- # Configuration parameters: CountComments.
22
- MethodLength:
23
- Max: 20
24
-
25
- # Offense count: 4
26
- RescueModifier:
27
- Enabled: false
28
-
29
- # Offense count: 1
30
- # Cop supports --auto-correct.
31
- SpaceAroundOperators:
32
- Enabled: true
33
-
34
- # Offense count: 1
35
- Void:
36
- Enabled: false