Sha256: 1dab6956b013db91ac04b4913daa0572b2f0cddd2154fb9551bd411ec9f2b8a9

Contents?: true

Size: 644 Bytes

Versions: 7

Compression:

Stored size: 644 Bytes

Contents

# frozen_string_literal: true

module KeepUp
  # Filter to update dependency information in a Gemfile.
  module GemfileFilter
    def self.apply(contents, dependency)
      matcher = dependency_matcher(dependency)
      contents.each_line.map do |line|
        if line =~ matcher
          match = Regexp.last_match
          "#{match[1]}#{dependency.version}#{match[2]}"
        else
          line
        end
      end.join
    end

    def self.dependency_matcher(dependency)
      /
        ^(\s*gem\s+['"]#{dependency.name}['"],
        \s+\[?['"](?:~>|=)?\ *)
        [^'"]*
        (['"]\]?[^\]]*)
        $
      /mx
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
keep_up-0.10.1 lib/keep_up/gemfile_filter.rb
keep_up-0.10.0 lib/keep_up/gemfile_filter.rb
keep_up-0.9.0 lib/keep_up/gemfile_filter.rb
keep_up-0.8.1 lib/keep_up/gemfile_filter.rb
keep_up-0.8.0 lib/keep_up/gemfile_filter.rb
keep_up-0.7.1 lib/keep_up/gemfile_filter.rb
keep_up-0.7.0 lib/keep_up/gemfile_filter.rb