rubysmith 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/README.adoc +0 -7
- data/lib/rubysmith/builders/core.rb +6 -5
- data/lib/rubysmith/cli/parsers/core.rb +1 -1
- data/lib/rubysmith/cli/shell.rb +1 -1
- data/lib/rubysmith/configuration/content.rb +5 -3
- data/lib/rubysmith/container.rb +2 -3
- data/lib/rubysmith/renderers/namespace.rb +3 -3
- data/lib/rubysmith/templates/%project_name%/lib/%project_path%.rb.erb +2 -2
- data/rubysmith.gemspec +3 -4
- data.tar.gz.sig +0 -0
- metadata +19 -5
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70dbc101555ee2f755af1202de17dd12c04bd5a427a483a3c2710bcedad4fdb5
|
4
|
+
data.tar.gz: 723ab4a9bee7cb81f5c46e5011704972922ec6c9d30e408b17935369a7034502
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a735f251308fe224894d35cd6ec488fbb48296d2192371b1cefb7f0dfaaa2a4320cfeebcb91954c4ee6238ff35d3f962b9c5f59496d9c49a215bcbd6250c8bb
|
7
|
+
data.tar.gz: caa4eccf46c21ef081e46530ba780776895d9ee42b10fc87f2bcf43dd4e3ed5b99665a22f4eaf2490dafc44c22650ab67cd9507fa5af7c05202caa2d25bd2604
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/README.adoc
CHANGED
@@ -4,13 +4,6 @@
|
|
4
4
|
|
5
5
|
= Rubysmith
|
6
6
|
|
7
|
-
[link=http://badge.fury.io/rb/rubysmith]
|
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]
|
11
|
-
[link=https://circleci.com/gh/bkuhlmann/rubysmith]
|
12
|
-
image::https://circleci.com/gh/bkuhlmann/rubysmith.svg?style=svg[Circle CI Status]
|
13
|
-
|
14
7
|
Rubysmith is a command line interface for smithing Ruby projects.
|
15
8
|
|
16
9
|
This gem is useful in situations in which you need something more sophisticated than a
|
@@ -1,11 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "refinements/strings"
|
3
4
|
require "refinements/structs"
|
4
5
|
|
5
6
|
module Rubysmith
|
6
7
|
module Builders
|
7
8
|
# Builds project skeleton core structure and minimum file support.
|
8
9
|
class Core
|
10
|
+
using Refinements::Strings
|
9
11
|
using Refinements::Structs
|
10
12
|
|
11
13
|
def self.call(...) = new(...).call
|
@@ -21,18 +23,17 @@ module Rubysmith
|
|
21
23
|
.replace(" require", "require")
|
22
24
|
.replace(/ (?=(Zeit|loader|end))/, "")
|
23
25
|
.replace("\n \n", "\n\n")
|
24
|
-
.insert_before("module #{module_name}", "#{
|
26
|
+
.insert_before("module #{module_name}", "#{indentation}# Main namespace.\n")
|
27
|
+
.replace("end\n end", " end\n end")
|
25
28
|
|
26
29
|
configuration
|
27
30
|
end
|
28
31
|
|
29
32
|
private
|
30
33
|
|
31
|
-
def
|
34
|
+
def indentation = "".indent configuration.project_levels
|
32
35
|
|
33
|
-
def module_name = project_class.split("::").last
|
34
|
-
|
35
|
-
def project_class = configuration.project_class
|
36
|
+
def module_name = configuration.project_class.split("::").last
|
36
37
|
|
37
38
|
attr_reader :configuration, :builder
|
38
39
|
end
|
data/lib/rubysmith/cli/shell.rb
CHANGED
@@ -33,7 +33,7 @@ module Rubysmith
|
|
33
33
|
in action_config: Symbol => action then config action
|
34
34
|
in action_build: true then build configuration
|
35
35
|
in action_publish: true then publish configuration
|
36
|
-
in action_version: true then logger.info {
|
36
|
+
in action_version: true then logger.info { specification.labeled_version }
|
37
37
|
else usage
|
38
38
|
end
|
39
39
|
end
|
@@ -111,14 +111,16 @@ module Rubysmith
|
|
111
111
|
|
112
112
|
def license_label_version = [license_label, license_version].compress.join("-")
|
113
113
|
|
114
|
-
def project_label = project_name.titleize
|
115
|
-
|
116
114
|
def project_class = project_name.camelcase
|
117
115
|
|
118
|
-
def
|
116
|
+
def project_label = project_name.titleize
|
117
|
+
|
118
|
+
def project_levels = project_class.split("::").size - 1
|
119
119
|
|
120
120
|
def project_path = project_name.snakecase
|
121
121
|
|
122
|
+
def project_root = target_root.join(project_name)
|
123
|
+
|
122
124
|
def computed_project_url_community = format_url(__method__)
|
123
125
|
|
124
126
|
def computed_project_url_conduct = format_url(__method__)
|
data/lib/rubysmith/container.rb
CHANGED
@@ -3,16 +3,15 @@
|
|
3
3
|
require "dry-container"
|
4
4
|
require "logger"
|
5
5
|
require "pastel"
|
6
|
+
require "spek"
|
6
7
|
|
7
8
|
module Rubysmith
|
8
9
|
# Provides a global gem container for injection into other objects.
|
9
10
|
module Container
|
10
11
|
extend Dry::Container::Mixin
|
11
12
|
|
12
|
-
SPEC_PATH = "#{__dir__}/../../rubysmith.gemspec".freeze
|
13
|
-
|
14
13
|
register(:configuration) { Configuration::Loader.call }
|
15
|
-
register(:specification) {
|
14
|
+
register(:specification) { Spek::Loader.call "#{__dir__}/../../rubysmith.gemspec" }
|
16
15
|
register(:colorizer) { Pastel.new enabled: $stdout.tty? }
|
17
16
|
register(:kernel) { Kernel }
|
18
17
|
|
@@ -8,10 +8,10 @@ module Rubysmith
|
|
8
8
|
class Namespace
|
9
9
|
using Refinements::Strings
|
10
10
|
|
11
|
-
def initialize namespace
|
11
|
+
def initialize namespace, delimiter: "::"
|
12
12
|
@namespace = namespace
|
13
|
-
@modules = namespace.split
|
14
|
-
@depth = namespace.scan(
|
13
|
+
@modules = namespace.split delimiter
|
14
|
+
@depth = namespace.scan(delimiter).length
|
15
15
|
end
|
16
16
|
|
17
17
|
def call(content = nil) = "#{prefix}#{body content}#{suffix}"
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<% if configuration.build_zeitwerk %>
|
2
2
|
require "zeitwerk"
|
3
|
-
<% if configuration.
|
3
|
+
<% if configuration.project_levels.positive? %>
|
4
4
|
Zeitwerk::Loader.new.then do |loader|
|
5
|
-
loader.push_dir "#{__dir__}/.."
|
5
|
+
loader.push_dir "#{__dir__}<%= Array.new(configuration.project_levels, "/..").join %>"
|
6
6
|
loader.setup
|
7
7
|
end
|
8
8
|
<% else %>
|
data/rubysmith.gemspec
CHANGED
@@ -2,8 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "rubysmith"
|
5
|
-
spec.version = "1.
|
6
|
-
spec.platform = Gem::Platform::RUBY
|
5
|
+
spec.version = "1.3.0"
|
7
6
|
spec.authors = ["Brooke Kuhlmann"]
|
8
7
|
spec.email = ["brooke@alchemists.io"]
|
9
8
|
spec.homepage = "https://github.com/bkuhlmann/rubysmith"
|
@@ -30,7 +29,8 @@ Gem::Specification.new do |spec|
|
|
30
29
|
spec.add_dependency "pragmater", "~> 10.0"
|
31
30
|
spec.add_dependency "refinements", "~> 9.1"
|
32
31
|
spec.add_dependency "rubocop", "~> 1.25"
|
33
|
-
spec.add_dependency "runcom", "~> 8.
|
32
|
+
spec.add_dependency "runcom", "~> 8.2"
|
33
|
+
spec.add_dependency "spek", "~> 0.0"
|
34
34
|
spec.add_dependency "tocer", "~> 13.0"
|
35
35
|
spec.add_dependency "zeitwerk", "~> 2.5"
|
36
36
|
|
@@ -38,5 +38,4 @@ Gem::Specification.new do |spec|
|
|
38
38
|
spec.executables << "rubysmith"
|
39
39
|
spec.extra_rdoc_files = Dir["README*", "LICENSE*"]
|
40
40
|
spec.files = Dir.glob ["*.gemspec", "lib/**/*"], File::FNM_DOTMATCH
|
41
|
-
spec.require_paths = ["lib"]
|
42
41
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
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: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brooke Kuhlmann
|
@@ -28,7 +28,7 @@ cert_chain:
|
|
28
28
|
lkHilIrX69jq8wMPpBhlaw2mRmeSL50Wv5u6xVBvOHhXFSP1crXM95vfLhLyRYod
|
29
29
|
W2A=
|
30
30
|
-----END CERTIFICATE-----
|
31
|
-
date: 2022-
|
31
|
+
date: 2022-02-06 00:00:00.000000000 Z
|
32
32
|
dependencies:
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: dry-container
|
@@ -134,14 +134,28 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: '8.
|
137
|
+
version: '8.2'
|
138
138
|
type: :runtime
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '8.
|
144
|
+
version: '8.2'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: spek
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0.0'
|
152
|
+
type: :runtime
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - "~>"
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0.0'
|
145
159
|
- !ruby/object:Gem::Dependency
|
146
160
|
name: tocer
|
147
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -283,7 +297,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
283
297
|
- !ruby/object:Gem::Version
|
284
298
|
version: '0'
|
285
299
|
requirements: []
|
286
|
-
rubygems_version: 3.3.
|
300
|
+
rubygems_version: 3.3.6
|
287
301
|
signing_key:
|
288
302
|
specification_version: 4
|
289
303
|
summary: A command line interface for smithing Ruby projects.
|
metadata.gz.sig
CHANGED
Binary file
|