class Bundler::LockfileGenerator
属性
definition[R]
out[R]
公共类方法
generate(definition) 点击切换源代码
# File bundler/lockfile_generator.rb, line 14 def self.generate(definition) new(definition).generate! end
new(definition) 点击切换源代码
@private
# File bundler/lockfile_generator.rb, line 9 def initialize(definition) @definition = definition @out = String.new end
公共实例方法
generate!() 点击切换源代码
# File bundler/lockfile_generator.rb, line 18 def generate! add_sources add_platforms add_dependencies add_checksums add_locked_ruby_version add_bundled_with out end
私有实例方法
add_bundled_with() 点击切换源代码
# File bundler/lockfile_generator.rb, line 82 def add_bundled_with add_section("BUNDLED WITH", definition.bundler_version_to_lock.to_s) end
add_checksums() 点击切换源代码
# File bundler/lockfile_generator.rb, line 69 def add_checksums return unless definition.locked_checksums checksums = definition.resolve.map do |spec| spec.source.checksum_store.to_lock(spec) end add_section("CHECKSUMS", checksums) end
add_dependencies() 点击切换源代码
# File bundler/lockfile_generator.rb, line 58 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 << "\n" handled << dep.name end end
add_locked_ruby_version() 点击切换源代码
# File bundler/lockfile_generator.rb, line 77 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 bundler/lockfile_generator.rb, line 54 def add_platforms add_section("PLATFORMS", definition.platforms) end
add_section(name, value) 点击切换源代码
# File bundler/lockfile_generator.rb, line 86 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 bundler/lockfile_generator.rb, line 31 def add_sources definition.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 bundler/lockfile_generator.rb, line 44 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" out << spec.to_lock end end