File: globalize_gems.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (25 lines) | stat: -rw-r--r-- 704 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# frozen_string_literal: true

# This script ...
#   - Opens a Gemfile
#   - Copies the line that contains a specific gem and its version
#   - Pastes the copied lines to EOF
#
# ... to pull the gems out of their defined groups (like :development, :test, etc.)
# @note Duplicate entries will be created which will cause Bundler warnings, but this is expected.
# @usage ruby globalize_gems.rb

GEMS_TO_FIND = %w[factory_bot_rails ffaker parallel].freeze

File.open('Gemfile', 'a+') do |file|
  lines_added = []

  file.each_line do |line|
    next unless line.match?(/gem ['"]#{Regexp.union(GEMS_TO_FIND)}["']/)

    lines_added << line
    puts line
  end

  lines_added.each { |ln| file.write(ln) }
end