packs 0.0.3 → 0.0.5

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: 4f911f00f2059f8b472edbfbe099fe0ee0586bb8426c8593d002fb7a0f4e9924
4
- data.tar.gz: fc62651af9566195f83822938122f418ed7dd5cab115a3a27ee91fb4416724f9
3
+ metadata.gz: 59f7fd3aee7635eabbe2a66c748b1083ced17b48c020fd628825ebb47239e7d9
4
+ data.tar.gz: e6d8964d6286a7ba822c15d81cc48f18017997477349ba7b13a3628a634b93e2
5
5
  SHA512:
6
- metadata.gz: 4a39af86905f7d639e98938eb83fd45d898a60991cae834d48365da60785dd1dc75b935eced72fa02da1f766382c5cbf817e4337047fbc7b5df66a1ca4853326
7
- data.tar.gz: d66b67aa6a4b35bccf554390aa5dc23d9ac109dfba0fffe0100ac7d35152afbc6974034c3bbde61d6bcf3278e2a05f28266ea1f3d44614659629beb381704983
6
+ metadata.gz: a566117be564c25d46e673ea53c8d8d4d6fe04948d99d919236848314e5c8bc436b7287bb1cd7ba409bcf12b910d5befb842b0c608dd6d072132c59cd0840bc6
7
+ data.tar.gz: 043c964fa23f0603c8cccbc224e4129f00d86e42a40f3746b46fc550cdfd8a0f61f5c372306ea0548b5638d158629649aa3815cf5bd3c3fe1071ad211d3eadb4
@@ -4,20 +4,21 @@ module Packs
4
4
  module Private
5
5
  class Configuration < T::Struct
6
6
  extend T::Sig
7
+ CONFIGURATION_PATHNAME = T.let(Pathname.new('packs.yml'), Pathname)
8
+
7
9
  DEFAULT_PACK_PATHS = T.let([
8
- 'packs/*',
9
- 'packs/*/*',
10
- ], T::Array[String])
10
+ 'packs/*',
11
+ 'packs/*/*'
12
+ ], T::Array[String])
11
13
 
12
14
  prop :pack_paths, T::Array[String]
13
15
 
14
16
  sig { returns(Configuration) }
15
17
  def self.fetch
16
- configuration_path = Pathname.new('packs.yml')
17
- config_hash = configuration_path.exist? ? YAML.load_file('packs.yml') : {}
18
+ config_hash = CONFIGURATION_PATHNAME.exist? ? YAML.load_file(CONFIGURATION_PATHNAME) : {}
18
19
 
19
20
  new(
20
- pack_paths: pack_paths(config_hash),
21
+ pack_paths: pack_paths(config_hash)
21
22
  )
22
23
  end
23
24
 
@@ -0,0 +1,33 @@
1
+ # typed: strict
2
+ # frozen_string_literal: true
3
+
4
+ module FixtureHelper
5
+ extend T::Sig
6
+
7
+ sig { params(path: String, content: String).returns(String) }
8
+ def write_file(path, content = '')
9
+ pathname = Pathname.pwd.join(path)
10
+ FileUtils.mkdir_p(pathname.dirname)
11
+ pathname.write(content)
12
+ path
13
+ end
14
+
15
+ sig do
16
+ params(
17
+ pack_name: String,
18
+ config: T::Hash[T.untyped, T.untyped]
19
+ ).void
20
+ end
21
+ def write_pack(
22
+ pack_name,
23
+ config = {}
24
+ )
25
+ path = Pathname.pwd.join(pack_name).join('package.yml')
26
+ write_file(path.to_s, YAML.dump(config))
27
+ end
28
+
29
+ sig { params(path: String).void }
30
+ def delete_app_file(path)
31
+ File.delete(path)
32
+ end
33
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'fixture_helper'
2
+
3
+ RSpec.configure do |config|
4
+ config.include FixtureHelper
5
+
6
+ config.before do
7
+ # We bust_cache always because each test may write its own packs
8
+ Packs.bust_cache!
9
+ end
10
+
11
+ # Eventually, we could make this opt-in via metadata so someone can use this support without affecting all their tests.
12
+ config.around do |example|
13
+ prefix = [File.basename($0), Process.pid].join('-') # rubocop:disable Style/SpecialGlobalVars
14
+ tmpdir = Dir.mktmpdir(prefix)
15
+ Dir.chdir(tmpdir) do
16
+ example.run
17
+ end
18
+ ensure
19
+ FileUtils.rm_rf(tmpdir)
20
+ end
21
+ end
data/lib/packs.rb CHANGED
@@ -1,13 +1,13 @@
1
1
  # typed: strict
2
2
 
3
3
  require 'yaml'
4
+ require 'pathname'
4
5
  require 'sorbet-runtime'
5
6
  require 'packs/pack'
6
7
  require 'packs/private'
7
8
 
8
9
  module Packs
9
10
  PACKAGE_FILE = T.let('package.yml'.freeze, String)
10
- ROOTS = T.let(%w[packs components], T::Array[String])
11
11
 
12
12
  class << self
13
13
  extend T::Sig
@@ -45,6 +45,11 @@ module Packs
45
45
 
46
46
  sig { params(blk: T.proc.params(arg0: Private::Configuration).void).void }
47
47
  def configure(&blk)
48
+ # If packs.yml is being used, then ignore direct configuration.
49
+ # This is only a stop-gap to permit Stimpack users to more easily migrate
50
+ # to packs.yml
51
+ return if Private::Configuration::CONFIGURATION_PATHNAME.exist?
52
+
48
53
  yield(config)
49
54
  end
50
55
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
@@ -121,6 +121,8 @@ files:
121
121
  - lib/packs/pack.rb
122
122
  - lib/packs/private.rb
123
123
  - lib/packs/private/configuration.rb
124
+ - lib/packs/rspec/fixture_helper.rb
125
+ - lib/packs/rspec/support.rb
124
126
  homepage: https://github.com/rubyatscale/packs
125
127
  licenses:
126
128
  - MIT