Class: Bundler::Source::Path
- Inherits:
-
Object
- Object
- Bundler::Source::Path
- Defined in:
- lib/bundler/source.rb
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.
274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 |
# File 'lib/bundler/source.rb', line 274 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
325 326 327 |
# File 'lib/bundler/source.rb', line 325 def name File.basename(path.(Bundler.root).to_s) end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
267 268 269 |
# File 'lib/bundler/source.rb', line 267 def @options end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
267 268 269 |
# File 'lib/bundler/source.rb', line 267 def path @path end |
#version ⇒ Object
Returns the value of attribute version.
270 271 272 |
# File 'lib/bundler/source.rb', line 270 def version @version end |
Class Method Details
.from_lock(options) ⇒ Object
298 299 300 |
# File 'lib/bundler/source.rb', line 298 def self.from_lock() new(.merge("path" => .delete("remote"))) end |
Instance Method Details
#cache(spec) ⇒ Object
408 409 410 411 412 |
# File 'lib/bundler/source.rb', line 408 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
294 295 296 |
# File 'lib/bundler/source.rb', line 294 def cached! @allow_cached = true end |
#eql?(o) ⇒ Boolean Also known as: ==
317 318 319 320 321 |
# File 'lib/bundler/source.rb', line 317 def eql?(o) o.instance_of?(Path) && path.(Bundler.root) == o.path.(Bundler.root) && version == o.version end |
#hash ⇒ Object
313 314 315 |
# File 'lib/bundler/source.rb', line 313 def hash self.class.hash end |
#install(spec) ⇒ Object
396 397 398 399 400 401 402 403 404 |
# File 'lib/bundler/source.rb', line 396 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
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 |
# File 'lib/bundler/source.rb', line 329 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" if .join("bin").exist? binaries = .join("bin").children binaries.reject!{|p| File.directory?(p) } s.executables = binaries.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
366 367 368 |
# File 'lib/bundler/source.rb', line 366 def local_specs @local_specs ||= load_spec_files end |
#remote! ⇒ Object
290 291 292 |
# File 'lib/bundler/source.rb', line 290 def remote! @allow_remote = true end |
#to_lock ⇒ Object
302 303 304 305 306 307 |
# File 'lib/bundler/source.rb', line 302 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
309 310 311 |
# File 'lib/bundler/source.rb', line 309 def to_s "source at #{@path}" end |