Module: Spotlight::Assets::GeneratorCommonUtilities
- Included in:
- ImportmapGenerator, PropshaftGenerator
- Defined in:
- lib/generators/spotlight/assets/generator_common_utilities.rb
Overview
Utilities for the Spotlight assets generators
Instance Method Summary collapse
- #blacklight_yarn_version ⇒ Object
- #bootstrap_version ⇒ Object
-
#bootstrap_yarn_version ⇒ Object
Support the gem version format e.g., ‘~> 5.3` for consistency.
-
#package_yarn_version(package_name, requested_version) ⇒ Object
Some versions of the blacklight/spotlight gem do not have a corresponding package on npm.
- #spotlight_yarn_version ⇒ Object
Instance Method Details
#blacklight_yarn_version ⇒ Object
18 19 20 |
# File 'lib/generators/spotlight/assets/generator_common_utilities.rb', line 18 def blacklight_yarn_version package_yarn_version('blacklight-frontend', Blacklight::VERSION) end |
#bootstrap_version ⇒ Object
26 27 28 |
# File 'lib/generators/spotlight/assets/generator_common_utilities.rb', line 26 def bootstrap_version [:'bootstrap-version'].presence || '~> 5.3' end |
#bootstrap_yarn_version ⇒ Object
Support the gem version format e.g., ‘~> 5.3` for consistency.
31 32 33 |
# File 'lib/generators/spotlight/assets/generator_common_utilities.rb', line 31 def bootstrap_yarn_version bootstrap_version.match(/(\d+(\.\d+)*)/)[0] end |
#package_yarn_version(package_name, requested_version) ⇒ Object
Some versions of the blacklight/spotlight gem do not have a corresponding package on npm. Assume we want the most recent version that is compatible with the major version of the gem.
9 10 11 12 13 14 15 16 |
# File 'lib/generators/spotlight/assets/generator_common_utilities.rb', line 9 def package_yarn_version(package_name, requested_version) versions = JSON.parse(`yarn info #{package_name} versions --json`)['data'] exact_match = versions.find { |v| v == requested_version } return exact_match if exact_match major_version = Gem::Version.new(requested_version).segments.first "^#{major_version}" end |