Class: Steep::Drivers::Vendor

Inherits:
Object
  • Object
show all
Defined in:
lib/steep/drivers/vendor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(stdout:, stderr:, stdin:) ⇒ Vendor

Returns a new instance of Vendor.



11
12
13
14
15
16
17
18
# File 'lib/steep/drivers/vendor.rb', line 11

def initialize(stdout:, stderr:, stdin:)
  @stdout = stdout
  @stderr = stderr
  @stdin = stdin

  @clean_before = false
  @vendor_dir = nil
end

Instance Attribute Details

#clean_beforeObject

Returns the value of attribute clean_before.



9
10
11
# File 'lib/steep/drivers/vendor.rb', line 9

def clean_before
  @clean_before
end

#stderrObject (readonly)

Returns the value of attribute stderr.



5
6
7
# File 'lib/steep/drivers/vendor.rb', line 5

def stderr
  @stderr
end

#stdinObject (readonly)

Returns the value of attribute stdin.



6
7
8
# File 'lib/steep/drivers/vendor.rb', line 6

def stdin
  @stdin
end

#stdoutObject (readonly)

Returns the value of attribute stdout.



4
5
6
# File 'lib/steep/drivers/vendor.rb', line 4

def stdout
  @stdout
end

#vendor_dirObject

Returns the value of attribute vendor_dir.



8
9
10
# File 'lib/steep/drivers/vendor.rb', line 8

def vendor_dir
  @vendor_dir
end

Instance Method Details

#runObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/steep/drivers/vendor.rb', line 20

def run
  stdout.puts "Vendoring into #{vendor_dir}..."

  vendorer = Ruby::Signature::Vendorer.new(vendor_dir: vendor_dir)

  if clean_before
    stdout.puts "  Cleaning directory..."
    vendorer.clean!
  end

  stdout.puts "  Vendoring standard libraries..."
  vendorer.stdlib!

  if defined?(Bundler)
    Bundler.locked_gems.specs.each do |spec|
      if Ruby::Signature::EnvironmentLoader.gem_sig_path(spec.name, spec.version.to_s).directory?
        stdout.puts "  Vendoring rubygem: #{spec.full_name}..."
        vendorer.gem! spec.name, spec.version.to_s
      end
    end
  end

  0
end