Class: Bundler::Source::Path
Direct Known Subclasses
Defined Under Namespace
Classes: Installer
Constant Summary collapse
- DEFAULT_GLOB =
"{,*,*/*}.gemspec"
Instance Attribute Summary collapse
- #name ⇒ Object
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#version ⇒ Object
Returns the value of attribute version.
Class Method Summary collapse
Instance Method Summary collapse
- #cache(spec) ⇒ Object
- #cached! ⇒ Object
- #eql?(o) ⇒ Boolean (also: #==)
- #hash ⇒ Object
-
#initialize(options) ⇒ Path
constructor
A new instance of Path.
- #install(spec) ⇒ Object
- #load_spec_files ⇒ Object
- #local_specs ⇒ Object (also: #specs)
- #remote! ⇒ Object
- #to_lock ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(options) ⇒ Path
Returns a new instance of Path.
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 |
# File 'lib/bundler/source.rb', line 291 def initialize() @options = @glob = ["glob"] || DEFAULT_GLOB @allow_cached = false @allow_remote = false if ["path"] @path = Pathname.new(["path"]) @path = @path.(Bundler.root) unless @path.relative? end @name = ["name"] @version = ["version"] end |
Instance Attribute Details
#name ⇒ Object
342 343 344 |
# File 'lib/bundler/source.rb', line 342 def name File.basename(path.(Bundler.root).to_s) end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
284 285 286 |
# File 'lib/bundler/source.rb', line 284 def @options end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
284 285 286 |
# File 'lib/bundler/source.rb', line 284 def path @path end |
#version ⇒ Object
Returns the value of attribute version.
287 288 289 |
# File 'lib/bundler/source.rb', line 287 def version @version end |
Class Method Details
.from_lock(options) ⇒ Object
315 316 317 |
# File 'lib/bundler/source.rb', line 315 def self.from_lock() new(.merge("path" => .delete("remote"))) end |
Instance Method Details
#cache(spec) ⇒ Object
426 427 428 429 430 |
# File 'lib/bundler/source.rb', line 426 def cache(spec) unless path.(Bundler.root).to_s.index(Bundler.root.to_s) == 0 Bundler.ui.warn " * #{spec.name} at `#{path}` will not be cached." end end |
#cached! ⇒ Object
311 312 313 |
# File 'lib/bundler/source.rb', line 311 def cached! @allow_cached = true end |
#eql?(o) ⇒ Boolean Also known as: ==
334 335 336 337 338 |
# File 'lib/bundler/source.rb', line 334 def eql?(o) o.instance_of?(Path) && path.(Bundler.root) == o.path.(Bundler.root) && version == o.version end |
#hash ⇒ Object
330 331 332 |
# File 'lib/bundler/source.rb', line 330 def hash self.class.hash end |
#install(spec) ⇒ Object
414 415 416 417 418 419 420 421 422 |
# File 'lib/bundler/source.rb', line 414 def install(spec) Bundler.ui.info "Using #{spec.name} (#{spec.version}) from #{to_s} " # Let's be honest, when we're working from a path, we can't # really expect native extensions to work because the whole point # is to just be able to modify what's in that path and go. So, let's # not put ourselves through the pain of actually trying to generate # the full gem. Installer.new(spec).generate_bin end |
#load_spec_files ⇒ Object
346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 |
# File 'lib/bundler/source.rb', line 346 def load_spec_files index = Index.new = path.(Bundler.root) if File.directory?() Dir["#{}/#{@glob}"].each do |file| spec = Bundler.load_gemspec(file) if spec spec.loaded_from = file.to_s spec.source = self index << spec end end if index.empty? && @name && @version index << Gem::Specification.new do |s| s.name = @name s.source = self s.version = Gem::Version.new(@version) s.platform = Gem::Platform::RUBY s.summary = "Fake gemspec for #{@name}" s.relative_loaded_from = "#{@name}.gemspec" s. = ["no one"] if .join("bin").exist? executables = .join("bin").children executables.reject!{|p| File.directory?(p) } s.executables = executables.map{|c| c.basename.to_s } end end end else raise PathError, "The path `#{}` does not exist." end index end |
#local_specs ⇒ Object Also known as: specs
384 385 386 |
# File 'lib/bundler/source.rb', line 384 def local_specs @local_specs ||= load_spec_files end |
#remote! ⇒ Object
307 308 309 |
# File 'lib/bundler/source.rb', line 307 def remote! @allow_remote = true end |
#to_lock ⇒ Object
319 320 321 322 323 324 |
# File 'lib/bundler/source.rb', line 319 def to_lock out = "PATH\n" out << " remote: #{relative_path}\n" out << " glob: #{@glob}\n" unless @glob == DEFAULT_GLOB out << " specs:\n" end |
#to_s ⇒ Object
326 327 328 |
# File 'lib/bundler/source.rb', line 326 def to_s "source at #{@path}" end |