Spec-Zone.ru › Ruby 2.6

класс Bundler::LockfileGenerator

Родитель:
Объект

Атрибуты

definition[R]
out[R]

Публичные методы класса

generate(definition) Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 14
def self.generate(definition)
  new(definition).generate!
end
new(definition) Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 9
def initialize(definition)
  @definition = definition
  @out = String.new
end

@приватный

Публичные методы экземпляра

generate!() Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 18
def generate!
  add_sources
  add_platforms
  add_dependencies
  add_locked_ruby_version
  add_bundled_with

  out
end

Приватные методы экземпляра

add_bundled_with() Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 73
def add_bundled_with
  add_section("BUNDLED WITH", definition.locked_bundler_version.to_s)
end
add_dependencies() Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 57
def add_dependencies
  out << "\nDEPENDENCIES\n"

  handled = []
  definition.dependencies.sort_by(&:to_s).each do |dep|
    next if handled.include?(dep.name)
    out << dep.to_lock
    handled << dep.name
  end
end
add_locked_ruby_version() Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 68
def add_locked_ruby_version
  return unless locked_ruby_version = definition.locked_ruby_version
  add_section("RUBY VERSION", locked_ruby_version.to_s)
end
add_platforms() Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 53
def add_platforms
  add_section("PLATFORMS", definition.platforms)
end
add_section(name, value) Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 77
def add_section(name, value)
  out << "\n#{name}\n"
  case value
  when Array
    value.map(&:to_s).sort.each do |val|
      out << "  #{val}\n"
    end
  when Hash
    value.to_a.sort_by {|k, _| k.to_s }.each do |key, val|
      out << "  #{key}: #{val}\n"
    end
  when String
    out << "   #{value}\n"
  else
    raise ArgumentError, "#{value.inspect} can't be serialized in a lockfile"
  end
end
add_sources() Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 30
def add_sources
  definition.send(:sources).lock_sources.each_with_index do |source, idx|
    out << "\n" unless idx.zero?

    # Add the source header
    out << source.to_lock

    # Find all specs for this source
    specs = definition.resolve.select {|s| source.can_lock?(s) }
    add_specs(specs)
  end
end
add_specs(specs) Показать исходный код
# File lib/bundler/lockfile_generator.rb, line 43
def add_specs(specs)
  # This needs to be sorted by full name so that
  # gems with the same name, but different platform
  # are ordered consistently
  specs.sort_by(&:full_name).each do |spec|
    next if spec.name == "bundler".freeze
    out << spec.to_lock
  end
end

Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API