Sha256: 27b430a4c270a2bb29403660c943f4db464cff839e3e2c5b731dc2cf8a49964f

Contents?: true

Size: 775 Bytes

Versions: 1

Compression:

Stored size: 775 Bytes

Contents

module DRG
  module Tasks
    class GemfileLine < Struct.new(:line, :index, :name)
      alias to_s line
      alias to_int index

      def ==(other)
        line.to_s == other.to_s
      end

      # @param [String] version is the new value for the gem (add/replace)
      def update(version)
        if line =~ /,.+\n?/
          if line =~ /,\s*['"].+['"]/
            line[/,\s*['"].+['"]/] = ", '#{version.to_s}'"
          else
            line[/,\s*/] = ", '#{version.to_s}', "
          end
        elsif line.end_with?("\n")
          line.sub!("\n", ", '#{version.to_s}'\n")
        else
          line << ", '#{version.to_s}'\n"
        end
        line
      end

      # @note not used
      def version
        line[/, (.+)\n?/, 1]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
drg-0.4.2 lib/drg/tasks/gemfile_line.rb