packs-specification 0.0.10 → 0.0.11

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: a95a4c598305baa6990d07093e98b49f55c3289c80d384e7beb558bcafde63ca
4
- data.tar.gz: b6f2537d04165bee29925da1d29d9613da1b0219227ab397973efc65a1e64259
3
+ metadata.gz: 122afd26ffb01ea123411f9efecf42dfd3773ceb65f77bd961788284ad3b16db
4
+ data.tar.gz: d48b1a2e41405ca2c8d5d0abd99e2f75e171ea4e27cbf498a40a8b297c45d2d8
5
5
  SHA512:
6
- metadata.gz: 4cc9f93bad4fd2fe25d1d5ac32c4895d6dfcdf64de56b0f6aec31b29129a9a9f902e62f8c5820972efee538e0ecf6f45efd976f2b2bf8dcff577f2369c62d68f
7
- data.tar.gz: 0cb00ea631d12ee411150657650da2864303e24c92ce3747471e9328a4018478d490db599f94e3b69e9b9727259e6b4fe5e2ca51e80e881c8e8ec3384b328e00
6
+ metadata.gz: 54dd61ad4422dd16b24143d3c82e4f18e4062e61eb0d95311aad3fb14cb34125a978dad366907cc937c612bbd3aa98ee3ab4d4bd2d57805c83995b416b107ada
7
+ data.tar.gz: edd3354022070ee6bf9a8c54050a2e1cd76ded04f434fc34bb9bb6af176dd90ca07eb47a988db9e714732777156fdfdef658b0c6e1e6531366ec003644983f9e
data/lib/packs/pack.rb CHANGED
@@ -1,17 +1,29 @@
1
1
  # typed: strict
2
2
 
3
3
  module Packs
4
- class Pack < T::Struct
4
+ class Pack
5
5
  extend T::Sig
6
6
 
7
- const :name, String
8
- const :path, Pathname
9
- const :relative_path, Pathname
10
- const :raw_hash, T::Hash[T.untyped, T.untyped]
7
+ sig { returns(String) }
8
+ attr_reader :name
9
+
10
+ sig { returns(Pathname) }
11
+ attr_reader :path
12
+
13
+ sig { returns(Pathname) }
14
+ attr_reader :relative_path
15
+
16
+ sig { params(name: String, path: Pathname, relative_path: Pathname).void }
17
+ def initialize(name:, path:, relative_path:)
18
+ @name = name
19
+ @path = path
20
+ @relative_path = relative_path
21
+ @raw_hash = T.let(nil, T.nilable(T::Hash[T.untyped, T.untyped]))
22
+ @is_gem = T.let(nil, T.nilable(T::Boolean))
23
+ end
11
24
 
12
25
  sig { params(package_yml_absolute_path: Pathname).returns(Pack) }
13
26
  def self.from(package_yml_absolute_path)
14
- package_loaded_yml = YAML.load_file(package_yml_absolute_path)
15
27
  path = package_yml_absolute_path.dirname
16
28
  relative_path = path.relative_path_from(Specification.root)
17
29
  package_name = relative_path.cleanpath.to_s
@@ -19,11 +31,15 @@ module Packs
19
31
  Pack.new(
20
32
  name: package_name,
21
33
  path: path,
22
- relative_path: relative_path,
23
- raw_hash: package_loaded_yml || {}
34
+ relative_path: relative_path
24
35
  )
25
36
  end
26
37
 
38
+ sig { returns(T::Hash[T.untyped, T.untyped]) }
39
+ def raw_hash
40
+ @raw_hash ||= YAML.load_file(yml(relative: false)) || {}
41
+ end
42
+
27
43
  sig { params(relative: T::Boolean).returns(Pathname) }
28
44
  def yml(relative: true)
29
45
  path_to_use = relative ? relative_path : path
@@ -37,12 +53,25 @@ module Packs
37
53
 
38
54
  sig { returns(T::Boolean) }
39
55
  def is_gem? # rubocop:disable Naming/PredicateName
40
- @is_gem ||= T.let(relative_path.glob('*.gemspec').any?, T.nilable(T::Boolean))
56
+ @is_gem ||= relative_path.glob('*.gemspec').any?
41
57
  end
42
58
 
43
59
  sig { returns(T::Hash[T.untyped, T.untyped]) }
44
60
  def metadata
45
61
  raw_hash['metadata'] || {}
46
62
  end
63
+
64
+ sig { returns(T::Array[Symbol]) }
65
+ private def instance_variables_to_inspect = [:@name]
66
+
67
+ if RUBY_VERSION < '4'
68
+ sig { returns(String) }
69
+ def inspect
70
+ ivars = instance_variables_to_inspect.map do |ivar|
71
+ "#{ivar}=#{instance_variable_get(ivar).inspect}"
72
+ end.join(', ')
73
+ "#<#{self.class.name}:0x#{object_id.to_s(16)} #{ivars}>"
74
+ end
75
+ end
47
76
  end
48
77
  end
@@ -1,3 +1,5 @@
1
+ require 'fileutils'
2
+ require 'tmpdir'
1
3
  require_relative 'fixture_helper'
2
4
 
3
5
  RSpec.configure do |config|
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packs-specification
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-08-11 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: sorbet-runtime
@@ -28,16 +27,30 @@ dependencies:
28
27
  name: bundler
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - "~>"
30
+ - - ">="
32
31
  - !ruby/object:Gem::Version
33
- version: 2.2.16
32
+ version: '0'
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
- - - "~>"
37
+ - - ">="
39
38
  - !ruby/object:Gem::Version
40
- version: 2.2.16
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: debug
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
41
54
  - !ruby/object:Gem::Dependency
42
55
  name: rake
43
56
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +69,16 @@ dependencies:
56
69
  name: rspec
57
70
  requirement: !ruby/object:Gem::Requirement
58
71
  requirements:
59
- - - "~>"
72
+ - - ">="
60
73
  - !ruby/object:Gem::Version
61
- version: '3.0'
74
+ version: '0'
62
75
  type: :development
63
76
  prerelease: false
64
77
  version_requirements: !ruby/object:Gem::Requirement
65
78
  requirements:
66
- - - "~>"
79
+ - - ">="
67
80
  - !ruby/object:Gem::Version
68
- version: '3.0'
81
+ version: '0'
69
82
  - !ruby/object:Gem::Dependency
70
83
  name: rubocop
71
84
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +143,6 @@ metadata:
130
143
  source_code_uri: https://github.com/rubyatscale/packs-specification
131
144
  changelog_uri: https://github.com/rubyatscale/packs-specification/releases
132
145
  allowed_push_host: https://rubygems.org
133
- post_install_message:
134
146
  rdoc_options: []
135
147
  require_paths:
136
148
  - lib
@@ -138,15 +150,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
138
150
  requirements:
139
151
  - - ">="
140
152
  - !ruby/object:Gem::Version
141
- version: '2.6'
153
+ version: '3.1'
142
154
  required_rubygems_version: !ruby/object:Gem::Requirement
143
155
  requirements:
144
156
  - - ">="
145
157
  - !ruby/object:Gem::Version
146
158
  version: '0'
147
159
  requirements: []
148
- rubygems_version: 3.1.6
149
- signing_key:
160
+ rubygems_version: 3.6.9
150
161
  specification_version: 4
151
162
  summary: The specification for packs in the `rubyatscale` ecosystem.
152
163
  test_files: []