Class: Paquette::GemServer::GemRepacker

Inherits:
Object
  • Object
show all
Defined in:
lib/paquette/gem_server/gem_repacker.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(gem_path, gemspec_extras: {}, magic_comment_replacements: {}, files: {}) ⇒ GemRepacker

Returns a new instance of GemRepacker.



16
17
18
19
20
21
22
23
# File 'lib/paquette/gem_server/gem_repacker.rb', line 16

def initialize(gem_path, gemspec_extras: {}, magic_comment_replacements: {}, files: {})
  @gem_path = gem_path
  @gemspec_extras = gemspec_extras
  @magic_comment_replacements = magic_comment_replacements
  @files = files
  @temp_dir = nil
  @unpacked_gem_dir = nil
end

Class Method Details

.repack(gem_path, gemspec_extras: {}, magic_comment_replacements: {}, files: {}, &block) ⇒ Object



12
13
14
# File 'lib/paquette/gem_server/gem_repacker.rb', line 12

def self.repack(gem_path, gemspec_extras: {}, magic_comment_replacements: {}, files: {}, &block)
  new(gem_path, gemspec_extras: gemspec_extras, magic_comment_replacements: magic_comment_replacements, files: files).repack(&block)
end

Instance Method Details

#repackObject

Raises:

  • (ArgumentError)


25
26
27
28
29
30
31
32
33
34
# File 'lib/paquette/gem_server/gem_repacker.rb', line 25

def repack
  raise ArgumentError, "Gem file not found: #{@gem_path}" unless File.exist?(@gem_path)

  unpack_gem
  process_ruby_files
  inject_files
  new_gem_path = repackage_gem
  cleanup
  new_gem_path
end