Class: Contextizer::Providers::Ruby::Gems
- Inherits:
-
BaseProvider
- Object
- BaseProvider
- Contextizer::Providers::Ruby::Gems
- Defined in:
- lib/contextizer/providers/ruby/gems.rb
Class Method Summary collapse
Class Method Details
.call(context:, config:) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/contextizer/providers/ruby/gems.rb', line 7 def self.call(context:, config:) key_gems = config.settings.dig("gems", "key_gems") return if key_gems.nil? || key_gems.empty? gemfile_lock = File.join(context.target_path, "Gemfile.lock") return unless File.exist?(gemfile_lock) context.[:gems] = parse_gemfile_lock(gemfile_lock, key_gems) end |
.parse_gemfile_lock(path, key_gems) ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'lib/contextizer/providers/ruby/gems.rb', line 17 def self.parse_gemfile_lock(path, key_gems) found_gems = {} content = File.read(path) key_gems.each do |gem_name| match = content.match(/^\s{4}#{gem_name}\s\((.+?)\)/) found_gems[gem_name] = match[1] if match end found_gems end |