spoom 1.1.13 → 1.1.15

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: 5cad6017cf76302bc359d170fce6c2e33c4ff5923a564b26e2f270b42c102e3d
4
- data.tar.gz: 734654483394f8520346d0ddab7872e1c7f42de4eed7523e503264f8045bf2c9
3
+ metadata.gz: 2a61ae83fa56b7a78027c8954c5680d4784c5a3f8b2d717ed3ba49b36409ede2
4
+ data.tar.gz: b339a398e57f92f71b797dd8d427e18749d1afd6246be42fe549baf96563706e
5
5
  SHA512:
6
- metadata.gz: a67da9fa2811e15d5bfc5f554a2b1cb23bed4a0744617d1168b3d3d4c08f4f6828b207142996fb8cebc57ca8732d901e3e390c43939eaa504a2ed1cc1fe611b4
7
- data.tar.gz: 1b98af8f37acd554f908fdde1257f9c53eaab0a37b21847e619caee5cdda44e9f06e248545ec247cb43c6ac434d5e00bce4b6731eb434c62bd3a60a72c67313f
6
+ metadata.gz: 981c7b625e31b732ce731c600fd1291afb9635818918d77424750ba152633f06e8f4515037c5044badcc951ded1dd9fd768ae135ff2305359005a2cb7ad47a38
7
+ data.tar.gz: 123baadb32b3341271b323eab29a1ddb4561c74b9afbe6cfa71af61ff1547783a24a1d439406f482b3c40920b960e4b04fc19ca7c0423c18407af00bc35fa692
@@ -28,6 +28,7 @@ module Spoom
28
28
  desc: "Command to suggest if files can be bumped"
29
29
  option :count_errors, type: :boolean, default: false,
30
30
  desc: "Count the number of errors if all files were bumped"
31
+ option :sorbet_options, type: :string, default: "", desc: "Pass options to Sorbet"
31
32
  sig { params(directory: String).void }
32
33
  def bump(directory = ".")
33
34
  in_sorbet_project!
@@ -85,6 +86,7 @@ module Spoom
85
86
 
86
87
  error_url_base = Spoom::Sorbet::Errors::DEFAULT_ERROR_URL_BASE
87
88
  result = Sorbet.srb_tc(
89
+ *options[:sorbet_options].split(" "),
88
90
  "--error-url-base=#{error_url_base}",
89
91
  path: exec_path,
90
92
  capture_err: true,
@@ -105,6 +107,14 @@ module Spoom
105
107
  exit(files_to_bump.empty?)
106
108
  end
107
109
 
110
+ unless result.exit_code == 100
111
+ # Sorbet will return exit code 100 if there are type checking errors.
112
+ # If Sorbet returned something else, it means it didn't terminate normally.
113
+ say_error(result.err, status: nil, nl: false)
114
+ undo_changes(files_to_bump, from)
115
+ exit(1)
116
+ end
117
+
108
118
  errors = Sorbet::Errors::Parser.parse_string(result.err, error_url_base: error_url_base)
109
119
 
110
120
  all_files = errors.flat_map do |err|
data/lib/spoom/cli/run.rb CHANGED
@@ -64,6 +64,13 @@ module Spoom
64
64
  exit(0)
65
65
  end
66
66
 
67
+ unless result.exit_code == 100
68
+ # Sorbet will return exit code 100 if there are type checking errors.
69
+ # If Sorbet returned something else, it means it didn't terminate normally.
70
+ say_error(result.err, status: nil, nl: false)
71
+ exit(1)
72
+ end
73
+
67
74
  errors = Spoom::Sorbet::Errors::Parser.parse_string(result.err, error_url_base: error_url_base)
68
75
  errors_count = errors.size
69
76
 
data/lib/spoom/context.rb CHANGED
@@ -46,6 +46,12 @@ module Spoom
46
46
 
47
47
  # File System
48
48
 
49
+ # Does the context directory at `absolute_path` exist and is a directory?
50
+ sig { returns(T::Boolean) }
51
+ def exist?
52
+ File.directory?(@absolute_path)
53
+ end
54
+
49
55
  # Create the context directory at `absolute_path`
50
56
  sig { void }
51
57
  def mkdir!
@@ -190,6 +196,12 @@ module Spoom
190
196
  Spoom::Git.current_branch(path: @absolute_path)
191
197
  end
192
198
 
199
+ # Get the last commit in the currently checked out branch
200
+ sig { params(short_sha: T::Boolean).returns(T.nilable(Git::Commit)) }
201
+ def git_last_commit(short_sha: true)
202
+ Spoom::Git.last_commit(path: @absolute_path, short_sha: short_sha)
203
+ end
204
+
193
205
  # Sorbet
194
206
 
195
207
  # Run `bundle exec srb` in this context directory
data/lib/spoom/git.rb CHANGED
@@ -75,9 +75,9 @@ module Spoom
75
75
  # Utils
76
76
 
77
77
  # Get the last commit in the currently checked out branch
78
- sig { params(path: String).returns(T.nilable(Commit)) }
79
- def last_commit(path: ".")
80
- result = log("HEAD --format='%h %at' -1", path: path)
78
+ sig { params(path: String, short_sha: T::Boolean).returns(T.nilable(Commit)) }
79
+ def last_commit(path: ".", short_sha: true)
80
+ result = log("HEAD --format='%#{short_sha ? "h" : "H"} %at' -1", path: path)
81
81
  return nil unless result.status
82
82
 
83
83
  out = result.out.strip
data/lib/spoom/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Spoom
5
- VERSION = "1.1.13"
5
+ VERSION = "1.1.15"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spoom
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.13
4
+ version: 1.1.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandre Terrasa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-11-24 00:00:00.000000000 Z
11
+ date: 2022-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.5.9204
75
+ version: 0.5.10187
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 0.5.9204
82
+ version: 0.5.10187
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sorbet-runtime
85
85
  requirement: !ruby/object:Gem::Requirement