rubysmith 0.1.0 → 0.5.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: 6500ee76663913e7e85d064b5629c7f2e7366e6c4ac0015108c68ef58347be58
4
- data.tar.gz: 7999ae8f922c9548314599c551523005c09dfbf4aa72a8c5c4358cc2bc2d8feb
3
+ metadata.gz: dbfa61773bde7189ba8d0dec9afe63668e816f133fca51c30ca842e385725374
4
+ data.tar.gz: cdc26262659c4d509445a4b0bda9354ff7de9ba5b444efdb6ddc218b44302cb3
5
5
  SHA512:
6
- metadata.gz: 4fa61bddb36ed3e1932c8992ed2ebfefefd294f1d2ff13b309d4b536c4d2984abbf78555fc5fad414814c8aa162ac1f9a6e2aa8c67ba31fdead382838aab6ae0
7
- data.tar.gz: 5940e066becdd98146ce18991bb510b2bb8a4d66d165be5c1325b1217e7c3478213323921978fd97e5bc3a88e63acd7ff5fc5f58100ebd5988557ed6772e334b
6
+ metadata.gz: 6b3eabb2cb6dfc9e05f255b0258638a5e299911c8250d2f36f97d33748c1e021050a26295b473d35c7d2bbef7aed3b010423b606f4e4c1821c6e14f326f97c7d
7
+ data.tar.gz: '028679978997133b526267f6835a5cad6ef76c6a87e8976d3a0012f843fb3ae8565751fcbff35ee4b2f1dbb81c6b216bec95807cd9fecb00fa4cb088ccc3a72a'
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -6,10 +6,17 @@
6
6
 
7
7
  [link=http://badge.fury.io/rb/rubysmith]
8
8
  image::https://badge.fury.io/rb/rubysmith.svg[Gem Version]
9
+ [link=https://www.alchemists.io/projects/code_quality]
10
+ image::https://img.shields.io/badge/code_style-alchemists-brightgreen.svg[Alchemists Style Guide]
9
11
  [link=https://circleci.com/gh/bkuhlmann/rubysmith]
10
12
  image::https://circleci.com/gh/bkuhlmann/rubysmith.svg?style=svg[Circle CI Status]
11
13
 
12
- A command line interface for smithing Ruby projects.
14
+ Rubysmith is a command line interface for smithing Ruby projects.
15
+
16
+ This gem is useful in situations in which you need something more sophisticated than a
17
+ link:https://bundler.io/guides/bundler_in_a_single_file_ruby_script.html[Bundler Inline] script but
18
+ less complicated than a Ruby Gem as provided by
19
+ link:https://www.alchemists.io/projects/gemsmith[Gemsmith].
13
20
 
14
21
  toc::[]
15
22
 
@@ -20,7 +27,8 @@ toc::[]
20
27
  * Uses link:https://www.alchemists.io/projects/runcom[Runcom] for resource configuration management.
21
28
  * Uses link:https://www.alchemists.io/projects/pragmater[Pragmater] for Ruby source pragma directives.
22
29
  * Supports link:https://github.com/rubysec/bundler-audit[Bundler Audit].
23
- * Supports link:https://git-scm.com[Git]
30
+ * Supports link:https://github.com/rubymem/bundler-leak[Bundler Leak].
31
+ * Supports link:https://git-scm.com[Git].
24
32
  * Supports link:https://www.alchemists.io/projects/git-lint[Git Lint].
25
33
  * Supports link:https://github.com/guard/guard[Guard].
26
34
  * Supports link:http://pryrepl.org[Pry].
@@ -37,10 +45,10 @@ toc::[]
37
45
  ** CODE OF CONDUCT
38
46
  ** LICENSE
39
47
 
40
- == Screencasts
48
+ // == Screencasts
41
49
 
42
- [link=https://www.alchemists.io/screencasts/rubysmith]
43
- image::https://www.alchemists.io/images/screencasts/rubysmith/cover.svg[Screencast,600,240,role=focal_point]
50
+ // [link=https://www.alchemists.io/screencasts/rubysmith]
51
+ // image::https://www.alchemists.io/images/screencasts/rubysmith/cover.svg[Screencast,600,240,role=focal_point]
44
52
 
45
53
  == Requirements
46
54
 
@@ -51,8 +59,6 @@ image::https://www.alchemists.io/images/screencasts/rubysmith/cover.svg[Screenca
51
59
 
52
60
  == Setup
53
61
 
54
- === Production
55
-
56
62
  To install, run:
57
63
 
58
64
  [source,bash]
@@ -60,24 +66,6 @@ To install, run:
60
66
  gem install rubysmith
61
67
  ----
62
68
 
63
- === Development
64
-
65
- To contribute, run:
66
-
67
- [source,bash]
68
- ----
69
- git clone https://github.com/bkuhlmann/rubysmith.git
70
- cd rubysmith
71
- bin/setup
72
- ----
73
-
74
- You can also use the IRB console for direct access to all objects:
75
-
76
- [source,bash]
77
- ----
78
- bin/console
79
- ----
80
-
81
69
  == Usage
82
70
 
83
71
  === Command Line Interface (CLI)
@@ -86,26 +74,62 @@ From the command line, type: `rubysmith --help`
86
74
 
87
75
  ....
88
76
  USAGE:
77
+ -b, --build NAME [options] Build new project.
89
78
  -v, --version Show gem version.
90
79
  -h, --help Show this message.
91
80
  -c, --config ACTION Manage gem configuration: edit or view.
92
- -b, --build NAME [options] Build new gem.
93
81
 
94
82
  BUILD OPTIONS:
95
83
  --[no-]bundler-audit Add Bundler Audit.
96
- --[no-]console Add console support.
97
- --[no-]documentation Add Documentation.
84
+ --[no-]bundler-leak Add Bundler Leak.
85
+ --[no-]console Add console script.
86
+ --[no-]documentation Add documentation.
98
87
  --[no-]git Add Git.
99
88
  --[no-]git-lint Add Git Lint.
100
89
  --[no-]guard Add Guard.
101
- --[no-]reek Add Reek.
102
90
  --[no-]pry Add Pry.
103
- --[no-]rubocop Add Rubocop.
91
+ --[no-]reek Add Reek.
104
92
  --[no-]rspec Add RSpec.
93
+ --[no-]rubocop Add Rubocop.
94
+ --[no-]setup Add setup script.
105
95
  --[no-]simple_cov Add SimpleCov.
106
- --[no-]setup Add setup support.
96
+ --min Use minimum/no options.
107
97
  ....
108
98
 
99
+ === Building
100
+
101
+ The core functionality of this gem centers around the `--build` command with optional customization
102
+ provided via build options. By default, all build options are enabled. Example:
103
+
104
+ [source,bash]
105
+ ----
106
+ rubysmith --build demo
107
+ ----
108
+
109
+ Running the above will generate a new `demo` Ruby project with all options enabled. Should you wish
110
+ to disable specific options, you can use the `--no-*` prefix. Example:
111
+
112
+ [source,bash]
113
+ ----
114
+ rubysmith --build demo --no-pry --no-guard
115
+ ----
116
+
117
+ With the above example, both Pry and Guard support would have been disabled when building the `demo`
118
+ project. Taking this a step further, you can also use the `--min` option to generate a project with
119
+ bare minimum of options. Example:
120
+
121
+ [source,bash]
122
+ ----
123
+ rubysmith --build demo --min
124
+ ----
125
+
126
+ The above is essentially the same as building with _all_ options disabled. This is handy in
127
+ situations where you need to quickly script something up for sharing with others yet still want to
128
+ avoid using a Bundler Inline script so gem dependencies are not installed each time the code is run.
129
+
130
+ To have specific options enabled/disabled _every time_ you build a new Ruby project, you can edit
131
+ your global configuration for making these settings permanent (see below for details).
132
+
109
133
  === Configuration
110
134
 
111
135
  This gem can be configured via a global configuration:
@@ -130,11 +154,13 @@ The default configuration is as follows:
130
154
  :license: "mit"
131
155
  :build:
132
156
  :bundler_audit: true
157
+ :bundler_leak: true
133
158
  :console: true
134
159
  :documentation: true
135
160
  :git: true
136
161
  :git_lint: true
137
162
  :guard: true
163
+ :minimum: false
138
164
  :pry: true
139
165
  :reek: true
140
166
  :rspec: true
@@ -158,9 +184,18 @@ The default configuration is as follows:
158
184
  Feel free to take this default configuration, modify, and save as your own custom
159
185
  `configuration.yml`.
160
186
 
161
- === Console
187
+ == Development
188
+
189
+ To contribute, run:
190
+
191
+ [source,bash]
192
+ ----
193
+ git clone https://github.com/bkuhlmann/rubysmith.git
194
+ cd rubysmith
195
+ bin/setup
196
+ ----
162
197
 
163
- To use the IRB console to invesitage and/or experiment with all project objects, run:
198
+ You can also use the IRB console for direct access to all objects:
164
199
 
165
200
  [source,bash]
166
201
  ----
@@ -20,8 +20,11 @@ module Rubysmith
20
20
  def call
21
21
  builder.call(realm.with(template_path: "%project_name%/Gemfile.erb"))
22
22
  .render
23
- .replace(/"\n\s{2,}/, "\"\n")
23
+ .replace(/\n\s*group/, "\n\ngroup")
24
24
  .replace(/\n\s*gem/, "\n gem")
25
+ .replace(/\s{4}\n/, "")
26
+ .replace(" end", "end")
27
+ .replace(/\n{1,}\Z/, "\n")
25
28
  Dir.chdir(realm.project_root) { runner.start %w[install --quiet] }
26
29
  nil
27
30
  end
@@ -14,8 +14,6 @@ module Rubysmith
14
14
  end
15
15
 
16
16
  def call
17
- builder.call(realm.with(template_path: "%project_name%/lib/%project_name%/identity.rb.erb"))
18
- .render
19
17
  builder.call(realm.with(template_path: "%project_name%/lib/%project_name%.rb.erb")).render
20
18
  builder.call(realm.with(template_path: "%project_name%/.ruby-version.erb")).render
21
19
  nil
@@ -16,7 +16,7 @@ module Rubysmith
16
16
  def call
17
17
  return unless realm.build_documentation
18
18
 
19
- private_methods.grep(/render_/).each(&method(:__send__))
19
+ private_methods.grep(/render_/).each { |method| __send__ method }
20
20
  end
21
21
 
22
22
  private
@@ -45,7 +45,9 @@ module Rubysmith
45
45
  end
46
46
 
47
47
  def render_readme
48
- builder.call(realm.with(template_path: "%project_name%/README.#{kind}.erb")).render
48
+ builder.call(realm.with(template_path: "%project_name%/README.#{kind}.erb"))
49
+ .render
50
+ .replace("\n\n\n", "\n\n")
49
51
  end
50
52
 
51
53
  def kind
@@ -1,12 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "rubocop"
4
- require "stringio"
4
+ require "refinements/ios"
5
5
 
6
6
  module Rubysmith
7
7
  module Builders
8
8
  # Builds project skeleton Rubocop code quality support.
9
9
  class Rubocop
10
+ using Refinements::IOs
11
+
10
12
  def self.call realm, builder: Builder
11
13
  new(realm, builder: builder).call
12
14
  end
@@ -33,10 +35,7 @@ module Rubysmith
33
35
  attr_reader :realm, :builder, :runner
34
36
 
35
37
  def auto_correct
36
- backup = $stdout
37
- $stdout = StringIO.new
38
- runner.run ["--auto-correct", "--format", "quiet", realm.project_root.to_s]
39
- $stdout = backup
38
+ STDOUT.squelch { runner.run ["--auto-correct", realm.project_root.to_s] }
40
39
  end
41
40
  end
42
41
  end
@@ -9,11 +9,13 @@
9
9
  :license: "mit"
10
10
  :build:
11
11
  :bundler_audit: true
12
+ :bundler_leak: true
12
13
  :console: true
13
14
  :documentation: true
14
15
  :git: true
15
16
  :git_lint: true
16
17
  :guard: true
18
+ :minimum: false
17
19
  :pry: true
18
20
  :reek: true
19
21
  :rspec: true
@@ -4,6 +4,7 @@ module Rubysmith
4
4
  module CLI
5
5
  module Parsers
6
6
  # Handles parsing of Command Line Interface (CLI) build options.
7
+ # :reek:TooManyMethods
7
8
  class Build
8
9
  def self.call client:, options:
9
10
  new(client: client, options: options).call
@@ -16,7 +17,7 @@ module Rubysmith
16
17
 
17
18
  def call arguments = []
18
19
  client.separator "\nBUILD OPTIONS:\n"
19
- private_methods.grep(/add_/).each(&method(:__send__))
20
+ private_methods.grep(/add_/).each { |method| __send__ method }
20
21
  arguments.empty? ? arguments : client.parse!(arguments)
21
22
  end
22
23
 
@@ -24,20 +25,32 @@ module Rubysmith
24
25
 
25
26
  attr_reader :client, :options
26
27
 
28
+ def add_minimum
29
+ client.on "--min", "Use minimum/no options." do |value|
30
+ options[:build_minimum] = value
31
+ end
32
+ end
33
+
27
34
  def add_bundler_audit
28
35
  client.on "--[no-]bundler-audit", "Add Bundler Audit." do |value|
29
36
  options[:build_bundler_audit] = value
30
37
  end
31
38
  end
32
39
 
40
+ def add_bundler_leak
41
+ client.on "--[no-]bundler-leak", "Add Bundler Leak." do |value|
42
+ options[:build_bundler_leak] = value
43
+ end
44
+ end
45
+
33
46
  def add_console
34
- client.on "--[no-]console", "Add console support." do |value|
47
+ client.on "--[no-]console", "Add console script." do |value|
35
48
  options[:build_console] = value
36
49
  end
37
50
  end
38
51
 
39
52
  def add_documentation
40
- client.on "--[no-]documentation", "Add Documentation." do |value|
53
+ client.on "--[no-]documentation", "Add documentation." do |value|
41
54
  options[:build_documentation] = value
42
55
  end
43
56
  end
@@ -85,7 +98,7 @@ module Rubysmith
85
98
  end
86
99
 
87
100
  def add_setup
88
- client.on "--[no-]setup", "Add setup support." do |value|
101
+ client.on "--[no-]setup", "Add setup script." do |value|
89
102
  options[:build_setup] = value
90
103
  end
91
104
  end
@@ -19,7 +19,7 @@ module Rubysmith
19
19
  def call arguments = []
20
20
  client.banner = "#{Identity::LABEL} - #{Identity::SUMMARY}"
21
21
  client.separator "\nUSAGE:\n"
22
- private_methods.grep(/add_/).each(&method(:__send__))
22
+ collate
23
23
  arguments.empty? ? arguments : client.parse!(arguments)
24
24
  end
25
25
 
@@ -27,6 +27,10 @@ module Rubysmith
27
27
 
28
28
  attr_reader :client, :options
29
29
 
30
+ def collate
31
+ private_methods.grep(/add_/).each { |method| __send__ method }
32
+ end
33
+
30
34
  def add_config
31
35
  client.on "-c",
32
36
  "--config ACTION",
@@ -37,7 +41,7 @@ module Rubysmith
37
41
  end
38
42
 
39
43
  def add_build
40
- client.on "-b", "--build NAME [options]", "Build new gem." do |value|
44
+ client.on "-b", "--build NAME [options]", "Build new project." do |value|
41
45
  options[:build] = value
42
46
  end
43
47
  end
@@ -3,32 +3,39 @@
3
3
  module Rubysmith
4
4
  module CLI
5
5
  module Processors
6
- # Order is important.
7
- BUILDERS = [
8
- Builders::Core,
9
- Builders::Documentation,
10
- Builders::Git::Setup,
11
- Builders::Bundler,
12
- Builders::Rake,
13
- Builders::Console,
14
- Builders::Setup,
15
- Builders::Guard,
16
- Builders::Reek,
17
- Builders::RSpec::Context,
18
- Builders::RSpec::Helper,
19
- Builders::Pragma,
20
- Builders::Rubocop,
21
- Builders::Git::Commit
22
- ].freeze
23
-
24
6
  # Handles the Command Line Interface (CLI) for building of a project skeleton.
25
7
  class Build
26
- def initialize builders: BUILDERS
8
+ # Order is important.
9
+ MINIMUM = [
10
+ Builders::Core,
11
+ Builders::Bundler,
12
+ Builders::Pragma
13
+ ].freeze
14
+
15
+ # Order is important.
16
+ MAXIMUM = [
17
+ Builders::Core,
18
+ Builders::Documentation,
19
+ Builders::Git::Setup,
20
+ Builders::Bundler,
21
+ Builders::Rake,
22
+ Builders::Console,
23
+ Builders::Setup,
24
+ Builders::Guard,
25
+ Builders::Reek,
26
+ Builders::RSpec::Context,
27
+ Builders::RSpec::Helper,
28
+ Builders::Pragma,
29
+ Builders::Rubocop,
30
+ Builders::Git::Commit
31
+ ].freeze
32
+
33
+ def initialize builders: MAXIMUM
27
34
  @builders = builders
28
35
  end
29
36
 
30
37
  def call options
31
- Realm[**options].then(&method(:process))
38
+ Realm[**options].then { |realm| process realm }
32
39
  end
33
40
 
34
41
  private
@@ -11,7 +11,8 @@ module Rubysmith
11
11
 
12
12
  PROCESSORS = {
13
13
  config: Processors::Config.new,
14
- build: Processors::Build.new
14
+ build_minimum: Processors::Build.new(builders: Processors::Build::MINIMUM),
15
+ build_maximum: Processors::Build.new
15
16
  }.freeze
16
17
 
17
18
  def initialize parser: Parsers::Assembler.new, processors: PROCESSORS
@@ -22,13 +23,16 @@ module Rubysmith
22
23
  def call arguments = []
23
24
  parse arguments
24
25
 
26
+ # rubocop:disable Style/MethodCallWithArgsParentheses
25
27
  case options
26
28
  in config: action, **remainder then config action
27
- in build:, **remainder then build options.rekey(build: :project_name).merge now: Time.now
29
+ in build_minimum: true, **remainder then build(:build_minimum, options)
30
+ in build:, **remainder then build(:build_maximum, options)
28
31
  in version:, **remainder then puts version
29
32
  in help:, **remainder then usage
30
33
  else usage
31
34
  end
35
+ # rubocop:enable Style/MethodCallWithArgsParentheses
32
36
  end
33
37
 
34
38
  private
@@ -45,8 +49,8 @@ module Rubysmith
45
49
  processors.fetch(__method__).call action
46
50
  end
47
51
 
48
- def build settings
49
- processors.fetch(__method__).call settings
52
+ def build kind, settings
53
+ processors.fetch(kind).call settings.rekey(build: :project_name).merge(now: Time.now)
50
54
  end
51
55
 
52
56
  def options
@@ -4,7 +4,7 @@ module Rubysmith
4
4
  module Identity
5
5
  NAME = "rubysmith"
6
6
  LABEL = "Rubysmith"
7
- VERSION = "0.1.0"
7
+ VERSION = "0.5.0"
8
8
  VERSION_LABEL = "#{LABEL} #{VERSION}"
9
9
  SUMMARY = "A command line interface for smithing Ruby projects."
10
10
  end
@@ -16,7 +16,9 @@ module Rubysmith
16
16
  now
17
17
  documentation_format
18
18
  documentation_license
19
+ build_minimum
19
20
  build_bundler_audit
21
+ build_bundler_leak
20
22
  build_console
21
23
  build_documentation
22
24
  build_git
@@ -1,33 +1,38 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- group :development do
4
- <% if realm.build_bundler_audit %>
5
- gem "bundler-audit", "~> 0.7"
6
- <% end %>
7
- <% if realm.build_git && realm.build_git_lint %>
8
- gem "git-lint", "~> 1.0"
9
- <% end %>
10
- <% if realm.build_guard %>
11
- gem "guard-rspec", "~> 4.7"
12
- <% end %>
13
- <% if realm.build_pry %>
14
- gem "pry", "~> 0.13"
15
- gem "pry-byebug", "~> 3.9"
16
- <% end %>
17
- gem "rake", "~> 13.0"
18
- <% if realm.build_reek %>
19
- gem "reek", "~> 6.0"
20
- <% end %>
21
- <% if realm.build_rspec %>
22
- gem "rspec", "~> 3.9"
23
- <% end %>
24
- <% if realm.build_rubocop %>
25
- gem "rubocop", "~> 0.92"
26
- gem "rubocop-performance", "~> 1.8"
27
- gem "rubocop-rake", "~> 0.5"
28
- gem "rubocop-rspec", "~> 1.43"
29
- <% end %>
30
- <% if realm.build_simple_cov %>
31
- gem "simplecov", "~> 0.19"
32
- <% end %>
33
- end
3
+ <% unless realm.build_minimum %>
4
+ group :development do
5
+ <% if realm.build_bundler_audit %>
6
+ gem "bundler-audit", "~> 0.7"
7
+ <% end %>
8
+ <% if realm.build_bundler_leak %>
9
+ gem "bundler-leak", "~> 0.2"
10
+ <% end %>
11
+ <% if realm.build_git && realm.build_git_lint %>
12
+ gem "git-lint", "~> 1.3"
13
+ <% end %>
14
+ <% if realm.build_guard %>
15
+ gem "guard-rspec", "~> 4.7"
16
+ <% end %>
17
+ <% if realm.build_pry %>
18
+ gem "pry", "~> 0.13"
19
+ gem "pry-byebug", "~> 3.9"
20
+ <% end %>
21
+ gem "rake", "~> 13.0"
22
+ <% if realm.build_reek %>
23
+ gem "reek", "~> 6.0"
24
+ <% end %>
25
+ <% if realm.build_rspec %>
26
+ gem "rspec", "~> 3.10"
27
+ <% end %>
28
+ <% if realm.build_rubocop %>
29
+ gem "rubocop", "~> 1.3"
30
+ gem "rubocop-performance", "~> 1.8"
31
+ gem "rubocop-rake", "~> 0.5"
32
+ gem "rubocop-rspec", "~> 2.0"
33
+ <% end %>
34
+ <% if realm.build_simple_cov %>
35
+ gem "simplecov", "~> 0.19"
36
+ <% end %>
37
+ end
38
+ <% end %>
@@ -4,6 +4,11 @@
4
4
 
5
5
  = <%= realm.project_label %>
6
6
 
7
+ <% if realm.build_rubocop %>
8
+ [link=https://www.alchemists.io/projects/code_quality]
9
+ image::https://img.shields.io/badge/code_style-alchemists-brightgreen.svg[Alchemists Style Guide]
10
+ <% end %>
11
+
7
12
  toc::[]
8
13
 
9
14
  == Features
@@ -26,11 +31,11 @@ bin/setup
26
31
  <% end %>
27
32
 
28
33
  == Usage
29
- <% if realm.build_console %>
30
34
 
31
- === Console
35
+ == Development
36
+ <% if realm.build_console %>
32
37
 
33
- To use the IRB console to invesitage and/or experiment with all project objects, run:
38
+ You can also use the IRB console for direct access to all objects:
34
39
 
35
40
  [source,bash]
36
41
  ----
@@ -1,5 +1,9 @@
1
1
  # <%= realm.project_label %>
2
2
 
3
+ <% if realm.build_rubocop %>
4
+ [![Alchemists Style Guide](https://img.shields.io/badge/code_style-alchemists-brightgreen.svg)](https://www.alchemists.io/projects/code_quality)
5
+ <% end %>
6
+
3
7
  <!-- Tocer[start]: Auto-generated, don't remove. -->
4
8
  <!-- Tocer[finish]: Auto-generated, don't remove. -->
5
9
 
@@ -20,11 +24,11 @@ To set up the project, run:
20
24
  <% end %>
21
25
 
22
26
  ## Usage
23
- <% if realm.build_console %>
24
27
 
25
- ### Console
28
+ ## Development
29
+ <% if realm.build_console %>
26
30
 
27
- To use the IRB console to invesitage and/or experiment with all project objects, run:
31
+ You can also use the IRB console for direct access to all objects:
28
32
 
29
33
  bin/console
30
34
  <% end %>
@@ -1,6 +1,9 @@
1
1
  <% if realm.build_bundler_audit %>
2
2
  require "bundler/audit/task"
3
3
  <% end %>
4
+ <% if realm.build_bundler_leak %>
5
+ require "bundler/plumber/task"
6
+ <% end %>
4
7
  <% if realm.build_git && realm.build_git_lint %>
5
8
  require "git/lint/rake/setup"
6
9
  <% end %>
@@ -17,6 +20,9 @@
17
20
  <% if realm.build_bundler_audit %>
18
21
  Bundler::Audit::Task.new
19
22
  <% end %>
23
+ <% if realm.build_bundler_leak %>
24
+ Bundler::Plumber::Task.new
25
+ <% end %>
20
26
  <% if realm.build_reek %>
21
27
  Reek::Rake::Task.new
22
28
  <% end %>
@@ -28,6 +34,6 @@
28
34
  <% end %>
29
35
 
30
36
  desc "Run code quality checks"
31
- task code_quality: %i[<% if realm.build_bundler_audit %>bundle:audit<% end %> <% if realm.build_git && realm.build_git_lint %>git_lint<% end %> <% if realm.build_reek %>reek<% end %> <% if realm.build_rubocop %>rubocop<% end %>]
37
+ task code_quality: %i[<% if realm.build_bundler_audit %>bundle:audit<% end %> <% if realm.build_bundler_leak %>bundle:leak<% end %> <% if realm.build_git && realm.build_git_lint %>git_lint<% end %> <% if realm.build_reek %>reek<% end %> <% if realm.build_rubocop %>rubocop<% end %>]
32
38
 
33
39
  task default: %i[code_quality <% if realm.build_rspec %>spec<% end %>]
@@ -1 +0,0 @@
1
- require "<%= realm.project_name %>/identity"
@@ -9,8 +9,9 @@ require "bundler/setup"
9
9
  require "pry"
10
10
  require "pry-byebug"
11
11
  <% end %>
12
+ require "<%= realm.project_name %>"
12
13
 
13
- Dir[File.join(__dir__, "support", "shared_contexts", "**/*.rb")].sort.each(&method(:require))
14
+ Dir[File.join(__dir__, "support", "shared_contexts", "**/*.rb")].sort.each { |path| require path }
14
15
 
15
16
  RSpec.configure do |config|
16
17
  config.color = true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubysmith
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -28,7 +28,7 @@ cert_chain:
28
28
  2XV8FRa7/JimI07sPLC13eLY3xd/aYTi85Z782KIA4j0G8XEEWAX0ouBhlXPocZv
29
29
  QWc=
30
30
  -----END CERTIFICATE-----
31
- date: 2020-09-27 00:00:00.000000000 Z
31
+ date: 2020-11-21 00:00:00.000000000 Z
32
32
  dependencies:
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: pragmater
@@ -36,56 +36,56 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '8.0'
39
+ version: '8.1'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '8.0'
46
+ version: '8.1'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: refinements
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '7.10'
53
+ version: '7.15'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '7.10'
60
+ version: '7.15'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: rubocop
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.92'
67
+ version: '1.3'
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0.92'
74
+ version: '1.3'
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: runcom
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '6.2'
81
+ version: '6.4'
82
82
  type: :runtime
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '6.2'
88
+ version: '6.4'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: bundler-audit
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -100,34 +100,48 @@ dependencies:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0.7'
103
+ - !ruby/object:Gem::Dependency
104
+ name: bundler-leak
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '0.2'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.2'
103
117
  - !ruby/object:Gem::Dependency
104
118
  name: gemsmith
105
119
  requirement: !ruby/object:Gem::Requirement
106
120
  requirements:
107
121
  - - "~>"
108
122
  - !ruby/object:Gem::Version
109
- version: '14.6'
123
+ version: '14.8'
110
124
  type: :development
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
113
127
  requirements:
114
128
  - - "~>"
115
129
  - !ruby/object:Gem::Version
116
- version: '14.6'
130
+ version: '14.8'
117
131
  - !ruby/object:Gem::Dependency
118
132
  name: git-lint
119
133
  requirement: !ruby/object:Gem::Requirement
120
134
  requirements:
121
135
  - - "~>"
122
136
  - !ruby/object:Gem::Version
123
- version: '1.0'
137
+ version: '1.3'
124
138
  type: :development
125
139
  prerelease: false
126
140
  version_requirements: !ruby/object:Gem::Requirement
127
141
  requirements:
128
142
  - - "~>"
129
143
  - !ruby/object:Gem::Version
130
- version: '1.0'
144
+ version: '1.3'
131
145
  - !ruby/object:Gem::Dependency
132
146
  name: guard-rspec
133
147
  requirement: !ruby/object:Gem::Requirement
@@ -204,14 +218,14 @@ dependencies:
204
218
  requirements:
205
219
  - - "~>"
206
220
  - !ruby/object:Gem::Version
207
- version: '3.9'
221
+ version: '3.10'
208
222
  type: :development
209
223
  prerelease: false
210
224
  version_requirements: !ruby/object:Gem::Requirement
211
225
  requirements:
212
226
  - - "~>"
213
227
  - !ruby/object:Gem::Version
214
- version: '3.9'
228
+ version: '3.10'
215
229
  - !ruby/object:Gem::Dependency
216
230
  name: rubocop-performance
217
231
  requirement: !ruby/object:Gem::Requirement
@@ -246,14 +260,14 @@ dependencies:
246
260
  requirements:
247
261
  - - "~>"
248
262
  - !ruby/object:Gem::Version
249
- version: '1.43'
263
+ version: '2.0'
250
264
  type: :development
251
265
  prerelease: false
252
266
  version_requirements: !ruby/object:Gem::Requirement
253
267
  requirements:
254
268
  - - "~>"
255
269
  - !ruby/object:Gem::Version
256
- version: '1.43'
270
+ version: '2.0'
257
271
  - !ruby/object:Gem::Dependency
258
272
  name: simplecov
259
273
  requirement: !ruby/object:Gem::Requirement
@@ -333,13 +347,12 @@ files:
333
347
  - lib/rubysmith/templates/%project_name%/bin/rubocop.erb
334
348
  - lib/rubysmith/templates/%project_name%/bin/setup.erb
335
349
  - lib/rubysmith/templates/%project_name%/lib/%project_name%.rb.erb
336
- - lib/rubysmith/templates/%project_name%/lib/%project_name%/identity.rb.erb
337
350
  - lib/rubysmith/templates/%project_name%/spec/spec_helper.rb.erb
338
351
  - lib/rubysmith/templates/%project_name%/spec/support/shared_contexts/temp_dir.rb.erb
339
352
  - lib/rubysmith/text/inserter.rb
340
353
  homepage: https://github.com/bkuhlmann/rubysmith
341
354
  licenses:
342
- - MIT
355
+ - Apache-2.0
343
356
  metadata:
344
357
  bug_tracker_uri: https://github.com/bkuhlmann/rubysmith/issues
345
358
  changelog_uri: https://www.alchemists.io/projects/rubysmith/changes.html
metadata.gz.sig CHANGED
Binary file
@@ -1,8 +0,0 @@
1
- <% namespace do %>
2
- module Identity
3
- NAME = "<%= realm.project_name %>"
4
- LABEL = "<%= realm.project_label %>"
5
- VERSION = "0.1.0"
6
- VERSION_LABEL = "#{LABEL} #{VERSION}"
7
- end
8
- <% end %>