hanami-cli 2.0.1 → 2.0.3

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
  SHA256:
3
- metadata.gz: 9a8ba92360e5b27191165618f257f8d4cbfc49ce90941e981e120ff2f2578ed7
4
- data.tar.gz: b8196ca8b7718b90b7f39abbc296984ffb67d63560f1e8d37a968faf8ba96426
3
+ metadata.gz: 4bcebd7bee28802b90462073bbc9def8c6f1c13b7fc032cc8f20859b082310a4
4
+ data.tar.gz: fd38025e1fa7a2b5c6650710e16076fefa8f8697a1b3bba3035eedaa9ce612b4
5
5
  SHA512:
6
- metadata.gz: 8e401bb3b64e4a56f6f582719e85b9812c8c8f005dc5db8bb00684deb1b8f82aa0adef8731192bc446d9e392232d4255d339d471628042160d6dbae78ef15978
7
- data.tar.gz: 2de16396a1520e2d16ff85fcc42ecb80e25fc328574b0c767fa6d847d63eba767835d8c7de8354e138683a8e6222201b9a7e0f2c466a51f42281ddd204b6a716
6
+ metadata.gz: bdebf6ac07bfad66d9a7d37050ce6b91c7d29abc781c44807a0efdc8c7085db42ed7afcbf5b5b32f264213499e59d31754823a670eb43d71acee1be39dd0b5c2
7
+ data.tar.gz: 56a41e42c83896516b0b20d7aea8864743c9a96508fd520d226de683d59de612a85cd99e83f7ed50bf39cfa87564152afb903bbfdc6d4d8e48ed9eb1904705e1
@@ -24,6 +24,7 @@ jobs:
24
24
  fail-fast: false
25
25
  matrix:
26
26
  ruby:
27
+ - "3.2"
27
28
  - "3.1"
28
29
  - "3.0"
29
30
  steps:
@@ -3,9 +3,7 @@
3
3
  sources:
4
4
  - repo: hanami/template-gem
5
5
  sync:
6
- - ".action_hero.yml.erb"
6
+ - ".repobot.yml.erb"
7
7
  - ".github/FUNDING.yml"
8
- - ".rspec"
9
- - ".rubocop.yml"
10
8
  - "CODE_OF_CONDUCT.md"
11
9
  - "LICENSE.md.erb"
data/.rubocop.yml CHANGED
@@ -8,6 +8,8 @@ Layout/LineLength:
8
8
  Exclude:
9
9
  - Gemfile
10
10
  - 'spec/**/*.rb'
11
+ Lint/DuplicateBranch:
12
+ Enabled: false
11
13
  Lint/EmptyFile:
12
14
  Exclude:
13
15
  - 'spec/fixtures/**/*.rb'
@@ -26,6 +28,8 @@ Style/CommentedKeyword:
26
28
  Enabled: false
27
29
  Style/EmptyHeredoc:
28
30
  Enabled: false
31
+ Style/IdenticalConditionalBranches:
32
+ Enabled: false
29
33
  Style/LambdaCall:
30
34
  Enabled: false
31
35
  Style/TrailingCommaInArguments:
data/CHANGELOG.md CHANGED
@@ -2,6 +2,23 @@
2
2
 
3
3
  Hanami Command Line Interface
4
4
 
5
+ ## v2.0.3 - 2023-02-01
6
+
7
+ ### Added
8
+
9
+ - [Luca Guidi] Generate a default `.gitignore` when using `hanami new`
10
+
11
+ ### Fixed
12
+
13
+ - [dsisnero] Ensure to run automatically bundle gems when using `hanami new` on Windows
14
+ - [Luca Guidi] Ensure to generate the correct action identifier in routes when using `hanami generate action` with deeply nested action name
15
+
16
+ ## v2.0.2 - 2022-12-25
17
+
18
+ ### Added
19
+
20
+ - [Luca Guidi] Official support for Ruby 3.2
21
+
5
22
  ## v2.0.1 - 2022-12-06
6
23
 
7
24
  ### Fixed
@@ -146,10 +146,13 @@ module Hanami
146
146
  # @since 2.0.0
147
147
  # @api private
148
148
  def which(cmd)
149
+ exts = ENV["PATHEXT"] ? ENV["PATHEXT"].split(";") : [""]
149
150
  # Adapted from https://stackoverflow.com/a/5471032/498386
150
151
  ENV["PATH"].split(File::PATH_SEPARATOR).each do |path|
151
- exe = fs.join(path, cmd)
152
- return exe if fs.executable?(exe) && !fs.directory?(exe)
152
+ exts.each do |ext|
153
+ exe = fs.join(path, "#{cmd}#{ext}")
154
+ return exe if fs.executable?(exe) && !fs.directory?(exe)
155
+ end
153
156
  end
154
157
 
155
158
  nil
@@ -3,6 +3,7 @@
3
3
  require "dry/inflector"
4
4
  require "dry/files"
5
5
  require "shellwords"
6
+ require_relative "../../../naming"
6
7
  require_relative "../../../errors"
7
8
 
8
9
  module Hanami
@@ -48,7 +49,9 @@ module Hanami
48
49
  # @since 2.0.0
49
50
  # @api private
50
51
  def initialize(fs: Hanami::CLI::Files.new, inflector: Dry::Inflector.new,
52
+ naming: Naming.new(inflector: inflector),
51
53
  generator: Generators::App::Action.new(fs: fs, inflector: inflector), **)
54
+ @naming = naming
52
55
  @generator = generator
53
56
  super(fs: fs)
54
57
  end
@@ -59,7 +62,7 @@ module Hanami
59
62
  # @api private
60
63
  def call(name:, url: nil, http: nil, format: DEFAULT_FORMAT, skip_view: DEFAULT_SKIP_VIEW, slice: nil, **)
61
64
  slice = inflector.underscore(Shellwords.shellescape(slice)) if slice
62
- name = inflector.underscore(Shellwords.shellescape(name))
65
+ name = naming.action_name(name)
63
66
  *controller, action = name.split(ACTION_SEPARATOR)
64
67
 
65
68
  if controller.empty?
@@ -73,7 +76,7 @@ module Hanami
73
76
 
74
77
  private
75
78
 
76
- attr_reader :generator
79
+ attr_reader :naming, :generator
77
80
  end
78
81
  end
79
82
  end
@@ -0,0 +1,2 @@
1
+ .env
2
+ log/*
@@ -34,6 +34,7 @@ module Hanami
34
34
  attr_reader :inflector
35
35
 
36
36
  def generate_app(app, context) # rubocop:disable Metrics/AbcSize
37
+ fs.write(".gitignore", t("gitignore.erb", context))
37
38
  fs.write(".env", t("env.erb", context))
38
39
 
39
40
  fs.write("README.md", t("readme.erb", context))
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "shellwords"
4
+
5
+ module Hanami
6
+ module CLI
7
+ class Naming
8
+ def initialize(inflector:)
9
+ @inflector = inflector
10
+ end
11
+
12
+ def action_name(name)
13
+ inflector.underscore(escape(name)).gsub("/", ".")
14
+ end
15
+
16
+ private
17
+
18
+ attr_reader :inflector
19
+
20
+ def escape(name)
21
+ Shellwords.shellescape(name)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -6,6 +6,6 @@ module Hanami
6
6
  #
7
7
  # @api public
8
8
  # @since 2.0.0
9
- VERSION = "2.0.1"
9
+ VERSION = "2.0.3"
10
10
  end
11
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luca Guidi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-06 00:00:00.000000000 Z
11
+ date: 2023-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -168,10 +168,10 @@ executables:
168
168
  extensions: []
169
169
  extra_rdoc_files: []
170
170
  files:
171
- - ".action_hero.yml"
172
171
  - ".github/FUNDING.yml"
173
172
  - ".github/workflows/ci.yml"
174
173
  - ".gitignore"
174
+ - ".repobot.yml"
175
175
  - ".rspec"
176
176
  - ".rubocop.yml"
177
177
  - ".yardopts"
@@ -245,6 +245,7 @@ files:
245
245
  - lib/hanami/cli/generators/gem/app/config_ru.erb
246
246
  - lib/hanami/cli/generators/gem/app/env.erb
247
247
  - lib/hanami/cli/generators/gem/app/gemfile.erb
248
+ - lib/hanami/cli/generators/gem/app/gitignore.erb
248
249
  - lib/hanami/cli/generators/gem/app/keep.erb
249
250
  - lib/hanami/cli/generators/gem/app/puma.erb
250
251
  - lib/hanami/cli/generators/gem/app/rakefile.erb
@@ -255,6 +256,7 @@ files:
255
256
  - lib/hanami/cli/generators/gem/app/validator.erb
256
257
  - lib/hanami/cli/generators/version.rb
257
258
  - lib/hanami/cli/middleware_stack_inspector.rb
259
+ - lib/hanami/cli/naming.rb
258
260
  - lib/hanami/cli/rake_tasks.rb
259
261
  - lib/hanami/cli/repl/core.rb
260
262
  - lib/hanami/cli/repl/irb.rb
@@ -290,7 +292,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
290
292
  - !ruby/object:Gem::Version
291
293
  version: '0'
292
294
  requirements: []
293
- rubygems_version: 3.3.3
295
+ rubygems_version: 3.4.5
294
296
  signing_key:
295
297
  specification_version: 4
296
298
  summary: Hanami CLI