rsgem 0.4.0 → 1.0.0

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
  SHA256:
3
- metadata.gz: 2ad88cbeee0dce25fc811974b5f22e451988013b120e8ff7bd070ebbc57d984d
4
- data.tar.gz: 8b5af2dfea737d332e119abf472047a39357f33c604d57f4f731822d6f9bd77b
3
+ metadata.gz: 2230b13e7a126b63e3b2503bc001a7dad6df076cf3df37c96dee446ee8cac146
4
+ data.tar.gz: 1c113a69a2f1bb553b75f2c6f8b60d6d4809d03180e1d5737eee2ffbe9d83ba4
5
5
  SHA512:
6
- metadata.gz: 5cf866d216669b2cefd81efe24eb24801d776683ad49736bd8d377d924476eb8cf358232636a638a7acbc36ef498d978fd8e0333c21a56edc2244e9d6b88d1ad
7
- data.tar.gz: ed0d4cd9c34b6ab9a85be7d4a81a260bc842b4ced79b3563c4c0c46c15a49721d0ab3b99ecf06442e47d7179bffdf72540457a9afd441b6b18ad253ebffa880d
6
+ metadata.gz: 7541baa2b59e62c7fb9f021380b658edc5e19bb3e7ad121da3f8b244d29f56cb704596e8a6e64a06b17aec8595f07e2c0c2127d58bba307376849b14e2a21aac
7
+ data.tar.gz: d2bf91f10b17fa9f0e48418bffba8801be391f66a2b2368950dceb001bfa1f8e8d019d8e8af64c9be1a1f10850214b38a3f40616eade77ae67623d6893f57ae7
@@ -1,5 +1,19 @@
1
1
  # master
2
2
 
3
+ # 1.0.0
4
+
5
+ * Using Github Actions as the default CI provider
6
+ * Dropping Ruby 2.4 support
7
+ * New CLI output format
8
+ * Add rubocop-rootstrap
9
+
10
+ *Juan Manuel Ramallo*
11
+
12
+ * Add placeholder `email` and `name` when no git user is set, issuing a warning while doing so.
13
+ * Add colors to output during gem creation.
14
+
15
+ *Jake Yesbeck*
16
+
3
17
  # 0.4.0
4
18
 
5
19
  * Cache bundler directory for 24hs in Github Actions
@@ -1,17 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'date'
4
+ require 'fileutils'
4
5
  require 'rsgem/version'
5
6
  require 'rsgem/gem'
6
- require 'rsgem/errors/missing_gem_name_error'
7
+ require 'rsgem/errors/base'
8
+ require 'rsgem/errors/missing_gem_name'
7
9
  require 'rsgem/ci_providers/base'
8
10
  require 'rsgem/ci_providers/github_actions'
9
11
  require 'rsgem/ci_providers/travis'
12
+ require 'rsgem/tasks/output'
10
13
  require 'rsgem/tasks/base'
14
+ require 'rsgem/tasks/add_ci_provider'
11
15
  require 'rsgem/tasks/add_code_analysis'
12
16
  require 'rsgem/tasks/add_dependency'
13
17
  require 'rsgem/tasks/clean_gemfile'
14
18
  require 'rsgem/tasks/create_gem'
19
+ require 'rsgem/tasks/ensure_author'
15
20
  require 'rsgem/tasks/ignore_gemfile_lock'
16
21
  require 'rsgem/tasks/clean_gemspec'
17
22
  require 'rsgem/tasks/bundle_dependencies'
@@ -26,6 +31,7 @@ require 'rsgem/dependencies/rspec'
26
31
  require 'rsgem/dependencies/rubocop'
27
32
  require 'rsgem/dependencies/simplecov'
28
33
  require 'rsgem/constants'
34
+ require 'rsgem/colors'
29
35
  require 'rsgem/context'
30
36
  require 'dry/cli'
31
37
  require 'rsgem/cli/commands/new'
@@ -5,7 +5,7 @@ module RSGem
5
5
  class Base
6
6
  attr_reader :config_file_destination, :config_file_source, :name, :display_name
7
7
 
8
- def initialize(config_file_source: nil, config_file_destination: nil, display_name:, name:)
8
+ def initialize(display_name:, name:, config_file_source: nil, config_file_destination: nil)
9
9
  @config_file_source = config_file_source
10
10
  @config_file_destination = config_file_destination
11
11
  @display_name = display_name
@@ -16,19 +16,17 @@ module RSGem
16
16
  remove_travis(context)
17
17
  destination = "#{context.folder_path}/#{config_file_destination}"
18
18
 
19
- File.delete(destination) if File.exist?(destination)
20
- FileUtils.mkdir_p(File.dirname(destination))
21
- File.open(destination, 'w') do |file|
19
+ ::File.delete(destination) if ::File.exist?(destination)
20
+ ::FileUtils.mkdir_p(::File.dirname(destination))
21
+ ::File.open(destination, 'w') do |file|
22
22
  file.puts config_file_source_content
23
23
  end
24
-
25
- puts "\t#{display_name} CI configuration added"
26
24
  end
27
25
 
28
26
  private
29
27
 
30
28
  def config_file_source_content
31
- File.read(config_file_source)
29
+ ::File.read(config_file_source)
32
30
  end
33
31
 
34
32
  #
@@ -36,9 +34,9 @@ module RSGem
36
34
  #
37
35
  def remove_travis(context)
38
36
  travis_path = "#{context.folder_path}/.travis.yml"
39
- return unless File.exist?(travis_path)
37
+ return unless ::File.exist?(travis_path)
40
38
 
41
- File.delete(travis_path)
39
+ ::File.delete(travis_path)
42
40
  end
43
41
  end
44
42
  end
@@ -17,7 +17,7 @@ module RSGem
17
17
 
18
18
  example [
19
19
  'foo # Creates a new gem called foo',
20
- 'bar --ci=github_actions # Creates a new gem called bar, with GitHub Actions as the '\
20
+ 'bar --ci=travis # Creates a new gem called bar, with Travis as the '\
21
21
  'CI provider',
22
22
  'foo_bar --bundler=--ext # Creates a new gem called foo_bar passing the --ext flag to '\
23
23
  'bundler'
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSGem
4
+ class Colors
5
+ MAPPING = {
6
+ default: 39,
7
+ red: 31,
8
+ green: 32,
9
+ yellow: 33,
10
+ blue: 34,
11
+ white: 97
12
+ }.freeze
13
+
14
+ class << self
15
+ def colorize(string, color)
16
+ "\e[#{color_code(color)}m#{string}\e[0m"
17
+ end
18
+
19
+ def color_code(color)
20
+ MAPPING[color] || MAPPING[:default]
21
+ end
22
+ end
23
+ end
24
+ end
@@ -6,6 +6,6 @@ module RSGem
6
6
  RSGem::CIProviders::GithubActions,
7
7
  RSGem::CIProviders::Travis
8
8
  ].freeze
9
- DEFAULT_CI_PROVIDER = RSGem::CIProviders::Travis
9
+ DEFAULT_CI_PROVIDER = RSGem::CIProviders::GithubActions
10
10
  end
11
11
  end
@@ -7,7 +7,7 @@ module RSGem
7
7
  def initialize(options:)
8
8
  @options = options
9
9
 
10
- raise MissingGemNameError unless options[:gem_name]
10
+ raise Errors::MissingGemName unless options[:gem_name]
11
11
  end
12
12
 
13
13
  def bundler_options
@@ -16,10 +16,12 @@ module RSGem
16
16
 
17
17
  def ci_provider
18
18
  @ci_provider ||= begin
19
- return RSGem::Constants::DEFAULT_CI_PROVIDER unless (name = options[:ci_provider])
20
-
21
- RSGem::Constants::CI_PROVIDERS.detect do |provider|
22
- provider.name == name
19
+ if (name = options[:ci_provider])
20
+ RSGem::Constants::CI_PROVIDERS.detect do |provider|
21
+ provider.name == name
22
+ end
23
+ else
24
+ RSGem::Constants::DEFAULT_CI_PROVIDER
23
25
  end
24
26
  end
25
27
  end
@@ -24,8 +24,6 @@ module RSGem
24
24
  end
25
25
 
26
26
  post_install_task&.new(context: context)&.perform
27
-
28
- puts "\t#{name.capitalize} installed"
29
27
  end
30
28
 
31
29
  private
@@ -5,7 +5,7 @@ module RSGem
5
5
  Rubocop = Base.new(
6
6
  config_file_source: "#{File.dirname(__FILE__)}/../support/rubocop.yml",
7
7
  config_file_destination: '.rubocop.yml',
8
- name: 'rubocop'
8
+ name: 'rubocop-rootstrap'
9
9
  )
10
10
  end
11
11
  end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSGem
4
+ module Errors
5
+ class Base < StandardError
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSGem
4
+ module Errors
5
+ class MissingGemName < Base
6
+ end
7
+ end
8
+ end
@@ -9,7 +9,9 @@ module RSGem
9
9
  end
10
10
 
11
11
  def create
12
+ puts 'Creating gem...'
12
13
  create_gem
14
+ ensure_author
13
15
  add_code_analysis
14
16
  add_dependencies
15
17
  clean_gemfile
@@ -20,16 +22,17 @@ module RSGem
20
22
  set_license_file
21
23
  bundle_dependencies
22
24
  run_rubocop
25
+ puts "#{context.gem_name} created"
23
26
  end
24
27
 
25
28
  private
26
29
 
27
30
  def add_ci_provider
28
- context.ci_provider.install(context)
31
+ Tasks::AddCIProvider.new(context: context).call
29
32
  end
30
33
 
31
34
  def add_code_analysis
32
- Tasks::AddCodeAnalysis.new(context: context).perform
35
+ Tasks::AddCodeAnalysis.new(context: context).call
33
36
  end
34
37
 
35
38
  def add_dependencies
@@ -40,16 +43,16 @@ module RSGem
40
43
  Dependencies::Rubocop,
41
44
  Dependencies::Simplecov
42
45
  ].each do |dependency|
43
- Tasks::AddDependency.new(context: context, dependency: dependency).perform
46
+ Tasks::AddDependency.new(context: context, dependency: dependency).call
44
47
  end
45
48
  end
46
49
 
47
50
  def clean_gemfile
48
- Tasks::CleanGemfile.new(context: context).perform
51
+ Tasks::CleanGemfile.new(context: context).call
49
52
  end
50
53
 
51
54
  def clean_gemspec
52
- Tasks::CleanGemspec.new(context: context).perform
55
+ Tasks::CleanGemspec.new(context: context).call
53
56
  end
54
57
 
55
58
  def context
@@ -57,27 +60,31 @@ module RSGem
57
60
  end
58
61
 
59
62
  def create_gem
60
- Tasks::CreateGem.new(context: context).perform
63
+ Tasks::CreateGem.new(context: context).call
64
+ end
65
+
66
+ def ensure_author
67
+ Tasks::EnsureAuthor.new(context: context).call
61
68
  end
62
69
 
63
70
  def ignore_gemfile_lock
64
- Tasks::IgnoreGemfileLock.new(context: context).perform
71
+ Tasks::IgnoreGemfileLock.new(context: context).call
65
72
  end
66
73
 
67
74
  def run_rubocop
68
- Tasks::RunRubocop.new(context: context).perform
75
+ Tasks::RunRubocop.new(context: context).call
69
76
  end
70
77
 
71
78
  def bundle_dependencies
72
- Tasks::BundleDependencies.new(context: context).perform
79
+ Tasks::BundleDependencies.new(context: context).call
73
80
  end
74
81
 
75
82
  def set_bundled_files
76
- Tasks::SetBundledFiles.new(context: context).perform
83
+ Tasks::SetBundledFiles.new(context: context).call
77
84
  end
78
85
 
79
86
  def set_license_file
80
- Tasks::SetLicenseFile.new(context: context).perform
87
+ Tasks::SetLicenseFile.new(context: context).call
81
88
  end
82
89
  end
83
90
  end
@@ -1,79 +1,8 @@
1
- Style/Documentation:
2
- Enabled: false
3
-
4
- Layout/SpaceBeforeFirstArg:
5
- Exclude:
6
-
7
- Layout/SpaceAroundMethodCallOperator:
8
- Enabled: true
9
-
10
- Lint/AmbiguousBlockAssociation:
11
- Exclude:
12
- - spec/**/*
13
-
14
- Lint/RaiseException:
15
- Enabled: true
16
-
17
- Lint/StructNewOverride:
18
- Enabled: true
19
-
20
- Metrics/AbcSize:
21
- # The ABC size is a calculated magnitude, so this number can be an Integer or
22
- # a Float.
23
- Max: 15
24
-
25
- Metrics/BlockLength:
26
- CountComments: false
27
- Max: 25
28
- Exclude:
29
- - '*.gemspec'
30
- - config/**/*
31
- - spec/**/*
32
- ExcludedMethods:
33
- - class_methods
34
-
35
- Metrics/BlockNesting:
36
- Max: 4
37
-
38
- Metrics/ClassLength:
39
- CountComments: false
40
- Max: 200
41
-
42
- # Avoid complex methods.
43
- Metrics/CyclomaticComplexity:
44
- Max: 7
45
-
46
- Metrics/MethodLength:
47
- CountComments: false
48
- Max: 24
49
-
50
- Metrics/ModuleLength:
51
- CountComments: false
52
- Max: 200
53
-
54
- Layout/LineLength:
55
- Max: 100
56
- # To make it possible to copy or click on URIs in the code, we allow lines
57
- # containing a URI to be longer than Max.
58
- AllowURI: true
59
- URISchemes:
60
- - http
61
- - https
62
-
63
- Metrics/ParameterLists:
64
- Max: 5
65
- CountKeywordArgs: true
66
-
67
- Metrics/PerceivedComplexity:
68
- Max: 12
69
-
70
- Style/ExponentialNotation:
71
- Enabled: true
72
-
73
- Style/FrozenStringLiteralComment:
74
- Enabled: true
1
+ inherit_gem:
2
+ rubocop-rootstrap:
3
+ - config/default_edge.yml
75
4
 
76
- Style/ModuleFunction:
5
+ Gemspec/RequiredRubyVersion:
77
6
  Enabled: false
78
7
 
79
8
  Style/RescueModifier:
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSGem
4
+ module Tasks
5
+ class AddCIProvider < Base
6
+ OUTPUT = OutputStruct.new(name: :output_name)
7
+
8
+ def perform
9
+ context.ci_provider.install(context)
10
+ end
11
+
12
+ def output_name
13
+ "Add CI configuration for #{context.ci_provider.display_name}"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -3,6 +3,8 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class AddCodeAnalysis < Base
6
+ OUTPUT = OutputStruct.new(name: 'Add code analysis')
7
+
6
8
  def perform
7
9
  File.open(context.rakefile_path, 'w') do |file|
8
10
  file.puts rakefile
@@ -3,6 +3,8 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class AddDependency < Base
6
+ OUTPUT = OutputStruct.new(name: :output_name)
7
+
6
8
  def perform
7
9
  return if already_installed?
8
10
 
@@ -35,6 +37,10 @@ module RSGem
35
37
  @gemspec_file ||= File.read(context.gemspec_path)
36
38
  end
37
39
 
40
+ def output_name
41
+ "Install #{dependency.name.capitalize}"
42
+ end
43
+
38
44
  def write_to_gemspec
39
45
  File.open(context.gemspec_path, 'w') do |file|
40
46
  file.puts gemspec_file
@@ -7,12 +7,20 @@ module RSGem
7
7
  # Child classes must implement the instance method +perform+.
8
8
  #
9
9
  class Base
10
+ include Output
11
+
10
12
  attr_reader :context, :args
11
13
 
12
14
  def initialize(context:, **args)
13
15
  @context = context
14
16
  @args = args
15
17
  end
18
+
19
+ def call
20
+ with_output do
21
+ perform
22
+ end
23
+ end
16
24
  end
17
25
  end
18
26
  end
@@ -3,16 +3,12 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class BundleDependencies < Base
6
- def perform
7
- puts "\tRunning bundle install:"
8
- @output = `cd #{context.folder_path} && bundle`
9
- puts "\t\t#{last_line}"
10
- end
6
+ OUTPUT = OutputStruct.new(name: 'Bundle dependencies')
11
7
 
12
- private
8
+ def perform
9
+ return if system("cd #{context.folder_path} && bundle", out: '/dev/null')
13
10
 
14
- def last_line
15
- @output.split("\n").last
11
+ raise RSGem::Errors::Base
16
12
  end
17
13
  end
18
14
  end
@@ -14,11 +14,12 @@ module RSGem
14
14
  # https://github.com/rootstrap/tech-guides/blob/master/open-source/developing_gems.md#gemfilegemfilelockgemspec
15
15
  #
16
16
  class CleanGemfile < Base
17
+ OUTPUT = OutputStruct.new(name: 'Clean gemfile')
18
+
17
19
  def perform
18
20
  gemfile.gsub!(/gem .+\n/, '') # Remove all gem definitions
19
21
  gemfile.sub!(/\n\z/, '') # Remove last new line character
20
22
  write_to_gemfile
21
- puts "\tGemfile cleaned"
22
23
  end
23
24
 
24
25
  private
@@ -3,6 +3,7 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class CleanGemspec < Base
6
+ OUTPUT = OutputStruct.new(name: 'Clean gemspec')
6
7
  KEYS_TO_EMPTY = %w[summary description homepage].freeze
7
8
 
8
9
  def perform
@@ -3,14 +3,16 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class CreateGem < Base
6
+ OUTPUT = OutputStruct.new(
7
+ name: 'Create gem',
8
+ success: :success_message
9
+ )
10
+
6
11
  def perform
7
- if system(shell_command)
8
- puts message
9
- else
10
- puts "Failed to run `bundle gem'. "\
11
- "Check bundler is installed in your system, or install it with `gem install bundler'"
12
- exit false
13
- end
12
+ return if system(shell_command, out: '/dev/null')
13
+
14
+ raise RSGem::Errors::Base, "Failed to run `bundle gem'. Check bundler is installed in "\
15
+ "your system or install it with `gem install bundler'.`"
14
16
  end
15
17
 
16
18
  private
@@ -19,11 +21,8 @@ module RSGem
19
21
  context.bundler_options
20
22
  end
21
23
 
22
- def message
23
- [
24
- "\tGem created",
25
- ("with options: #{bundler_options}" if bundler_options)
26
- ].compact.join(' ')
24
+ def success_message
25
+ "Gem created with bundler options: #{bundler_options}" if bundler_options
27
26
  end
28
27
 
29
28
  def shell_command
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSGem
4
+ module Tasks
5
+ class EnsureAuthor < Base
6
+ OUTPUT = OutputStruct.new(
7
+ name: 'Ensure author',
8
+ warning: :warning_message
9
+ )
10
+ TEMP_USERNAME = 'change_me'
11
+ TEMP_EMAIL = 'change_me@notanemail.com'
12
+
13
+ def perform
14
+ ensure_author
15
+ end
16
+
17
+ private
18
+
19
+ def gemspec
20
+ @gemspec ||= File.read(context.gemspec_path)
21
+ end
22
+
23
+ def write_gemspec
24
+ File.write(context.gemspec_path, gemspec)
25
+ end
26
+
27
+ def ensure_author
28
+ return unless missing_git_user?
29
+
30
+ gemspec.gsub!(/spec.email\s+=\s+.+/,
31
+ "spec.email = ['#{TEMP_EMAIL}']")
32
+
33
+ gemspec.gsub!(/spec.authors\s+=\s+.+/,
34
+ "spec.authors = ['#{TEMP_USERNAME}']")
35
+ write_gemspec
36
+ end
37
+
38
+ def missing_git_user?
39
+ `git config user.email`.strip.empty? || `git config user.name`.strip.empty?
40
+ end
41
+
42
+ def warning_message
43
+ return unless missing_git_user?
44
+
45
+ "No git user set. Setting #{TEMP_EMAIL} and #{TEMP_USERNAME} in gemspec, "\
46
+ 'please change this before publishing your gem.'
47
+ end
48
+ end
49
+ end
50
+ end
@@ -8,10 +8,11 @@ module RSGem
8
8
  # https://github.com/rootstrap/tech-guides/blob/master/open-source/developing_gems.md#gemfilegemfilelockgemspec
9
9
  #
10
10
  class IgnoreGemfileLock < Base
11
+ OUTPUT = OutputStruct.new(name: 'Ignore gemfile.lock')
12
+
11
13
  def perform
12
14
  gitignore << "\nGemfile.lock\n"
13
15
  write_to_gitignore
14
- puts "\tGemfile.lock added to .gitignore"
15
16
  end
16
17
 
17
18
  private
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSGem
4
+ module Tasks
5
+ #
6
+ # Structure to bundle all messages from a task
7
+ #
8
+ OutputStruct = Struct.new(:name, :success, :warning, keyword_init: true)
9
+
10
+ module Output
11
+ def with_output
12
+ yield
13
+ puts "\t#{Colors.colorize('[OK]', :green)} #{name}"
14
+ puts "\t#{success}" if success
15
+ puts "\t#{Colors.colorize('Warning: ', :yellow)} #{warning}" if warning
16
+ rescue RSGem::Errors::Base => e
17
+ puts "\t#{Colors.colorize('[X]', :red)} #{e.message}"
18
+ raise e
19
+ end
20
+
21
+ private
22
+
23
+ def deduce_output(value)
24
+ case value
25
+ when String
26
+ value
27
+ when Symbol
28
+ send(value)
29
+ when Proc
30
+ value.call
31
+ end
32
+ end
33
+
34
+ def name
35
+ deduce_output(self.class::OUTPUT.name || self.class.name)
36
+ end
37
+
38
+ def success
39
+ deduce_output(self.class::OUTPUT.success)
40
+ end
41
+
42
+ def warning
43
+ deduce_output(self.class::OUTPUT.warning)
44
+ end
45
+ end
46
+ end
47
+ end
@@ -3,16 +3,13 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class RunRubocop < Base
6
- def perform
7
- puts "\tRubocop:"
8
- @output = `cd #{context.folder_path} && bundle exec rubocop -a`
9
- puts "\t\t#{last_line}"
10
- end
6
+ OUTPUT = OutputStruct.new(name: 'Run rubocop')
11
7
 
12
- private
8
+ def perform
9
+ return if system("cd #{context.folder_path} && bundle exec rubocop -A",
10
+ %i[out err] => '/dev/null')
13
11
 
14
- def last_line
15
- @output.split("\n").last
12
+ raise RSGem::Errors::Base, 'Failed to run `bundle exec rubocop -A\''
16
13
  end
17
14
  end
18
15
  end
@@ -12,6 +12,8 @@ module RSGem
12
12
  # - lib/**/* (everything inside lib)
13
13
  #
14
14
  class SetBundledFiles < Base
15
+ OUTPUT = OutputStruct.new(name: 'Set bundled files')
16
+
15
17
  def perform
16
18
  # Explaining the regular expression:
17
19
  # [spec.files][one or more white spaces][=][one or more white spaces][anything until "do"]
@@ -22,8 +24,6 @@ module RSGem
22
24
  "spec.files = Dir['LICENSE.txt', 'README.md', 'lib/**/*']"
23
25
  )
24
26
  write
25
-
26
- puts "\tGemspec files config updated"
27
27
  end
28
28
 
29
29
  private
@@ -3,14 +3,14 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class SetLicenseFile < Base
6
+ OUTPUT = OutputStruct.new(name: 'Set license file')
7
+
6
8
  def perform
7
9
  license.gsub!(
8
10
  /.*Copyright.*/,
9
11
  "Copyright (c) #{Date.today.year} Rootstrap"
10
12
  )
11
13
  write
12
-
13
- puts "\tLICENSE file updated"
14
14
  end
15
15
 
16
16
  private
@@ -3,6 +3,7 @@
3
3
  module RSGem
4
4
  module Tasks
5
5
  class SimpleCovPostInstall < Base
6
+ OUTPUT = OutputStruct.new
6
7
  def perform
7
8
  spec_helper.sub!("require \"#{gem_name}\"", <<~RUBY)
8
9
  require 'simplecov'
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RSGem
4
- MAJOR = 0
5
- MINOR = 4
4
+ MAJOR = 1
5
+ MINOR = 0
6
6
  PATCH = 0
7
7
  VERSION = [MAJOR, MINOR, PATCH].join('.')
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsgem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Manuel Ramallo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-09-20 00:00:00.000000000 Z
11
+ date: 2020-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-cli
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.13.0
33
+ version: 0.13.1
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.13.0
40
+ version: 0.13.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 13.0.1
55
- - !ruby/object:Gem::Dependency
56
- name: reek
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 5.6.0
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 5.6.0
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rspec
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -81,19 +67,19 @@ dependencies:
81
67
  - !ruby/object:Gem::Version
82
68
  version: 3.9.0
83
69
  - !ruby/object:Gem::Dependency
84
- name: rubocop
70
+ name: rubocop-rootstrap
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: 0.82.0
75
+ version: 1.0.0
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: 0.82.0
82
+ version: 1.0.0
97
83
  - !ruby/object:Gem::Dependency
98
84
  name: simplecov
99
85
  requirement: !ruby/object:Gem::Requirement
@@ -129,6 +115,7 @@ files:
129
115
  - lib/rsgem/cli/commands.rb
130
116
  - lib/rsgem/cli/commands/new.rb
131
117
  - lib/rsgem/cli/commands/version.rb
118
+ - lib/rsgem/colors.rb
132
119
  - lib/rsgem/constants.rb
133
120
  - lib/rsgem/context.rb
134
121
  - lib/rsgem/dependencies/base.rb
@@ -137,13 +124,15 @@ files:
137
124
  - lib/rsgem/dependencies/rspec.rb
138
125
  - lib/rsgem/dependencies/rubocop.rb
139
126
  - lib/rsgem/dependencies/simplecov.rb
140
- - lib/rsgem/errors/missing_gem_name_error.rb
127
+ - lib/rsgem/errors/base.rb
128
+ - lib/rsgem/errors/missing_gem_name.rb
141
129
  - lib/rsgem/gem.rb
142
130
  - lib/rsgem/support/Rakefile
143
131
  - lib/rsgem/support/github_actions.yml
144
132
  - lib/rsgem/support/reek.yml
145
133
  - lib/rsgem/support/rubocop.yml
146
134
  - lib/rsgem/support/travis.yml
135
+ - lib/rsgem/tasks/add_ci_provider.rb
147
136
  - lib/rsgem/tasks/add_code_analysis.rb
148
137
  - lib/rsgem/tasks/add_dependency.rb
149
138
  - lib/rsgem/tasks/base.rb
@@ -151,7 +140,9 @@ files:
151
140
  - lib/rsgem/tasks/clean_gemfile.rb
152
141
  - lib/rsgem/tasks/clean_gemspec.rb
153
142
  - lib/rsgem/tasks/create_gem.rb
143
+ - lib/rsgem/tasks/ensure_author.rb
154
144
  - lib/rsgem/tasks/ignore_gemfile_lock.rb
145
+ - lib/rsgem/tasks/output.rb
155
146
  - lib/rsgem/tasks/run_rubocop.rb
156
147
  - lib/rsgem/tasks/set_bundled_files.rb
157
148
  - lib/rsgem/tasks/set_license_file.rb
@@ -178,7 +169,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
169
  - !ruby/object:Gem::Version
179
170
  version: '0'
180
171
  requirements: []
181
- rubygems_version: 3.1.2
172
+ rubygems_version: 3.2.0
182
173
  signing_key:
183
174
  specification_version: 4
184
175
  summary: Generating gems the Rootstrap way
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module RSGem
4
- class MissingGemNameError < StandardError
5
- end
6
- end