Module: Packs
- Extended by:
- T::Sig
- Defined in:
- lib/packs/pack.rb,
lib/packs/private.rb,
lib/packs-specification.rb,
lib/packs/private/configuration.rb
Overview
typed: strict
Defined Under Namespace
Classes: Pack
Constant Summary collapse
- PACKAGE_FILE =
T.let('package.yml'.freeze, String)
Class Method Summary collapse
- .all ⇒ Object
- .bust_cache! ⇒ Object
- .config ⇒ Object
- .configure {|config| ... } ⇒ Object
- .find(name) ⇒ Object
- .for_file(file_path) ⇒ Object
Class Method Details
.all ⇒ Object
16 17 18 |
# File 'lib/packs-specification.rb', line 16 def all packs_by_name.values end |
.bust_cache! ⇒ Object
34 35 36 37 38 |
# File 'lib/packs-specification.rb', line 34 def bust_cache! @packs_by_name = nil @config = nil @for_file = nil end |
.config ⇒ Object
41 42 43 44 |
# File 'lib/packs-specification.rb', line 41 def config @config = T.let(@config, T.nilable(Private::Configuration)) @config ||= Private::Configuration.fetch end |
.configure {|config| ... } ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/packs-specification.rb', line 47 def configure(&blk) # If packs.yml is being used, then ignore direct configuration. # This is only a stop-gap to permit Stimpack users to more easily migrate # to packs.yml return if Private::Configuration::CONFIGURATION_PATHNAME.exist? yield(config) end |
.find(name) ⇒ Object
21 22 23 |
# File 'lib/packs-specification.rb', line 21 def find(name) packs_by_name[name] end |
.for_file(file_path) ⇒ Object
26 27 28 29 30 31 |
# File 'lib/packs-specification.rb', line 26 def for_file(file_path) path_string = file_path.to_s @for_file = T.let(@for_file, T.nilable(T::Hash[String, T.nilable(Pack)])) @for_file ||= {} @for_file[path_string] ||= all.find { |package| path_string.start_with?("#{package.name}/") || path_string == package.name } end |