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.
273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 |
# File 'lib/bundler/source.rb', line 273 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.to_s) end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
266 267 268 |
# File 'lib/bundler/source.rb', line 266 def @options end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
266 267 268 |
# File 'lib/bundler/source.rb', line 266 def path @path end |
#version ⇒ Object
Returns the value of attribute version.
269 270 271 |
# File 'lib/bundler/source.rb', line 269 def version @version end |
Class Method Details
.from_lock(options) ⇒ Object
297 298 299 |
# File 'lib/bundler/source.rb', line 297 def self.from_lock() new(.merge("path" => .delete("remote"))) end |
Instance Method Details
#cache(spec) ⇒ Object
407 408 409 410 411 |
# File 'lib/bundler/source.rb', line 407 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
293 294 295 |
# File 'lib/bundler/source.rb', line 293 def cached! @allow_cached = true end |
#eql?(o) ⇒ Boolean Also known as: ==
316 317 318 319 320 321 |
# File 'lib/bundler/source.rb', line 316 def eql?(o) o.instance_of?(Path) && path.(Bundler.root) == o.path.(Bundler.root) && name == o.name && version == o.version end |
#hash ⇒ Object
312 313 314 |
# File 'lib/bundler/source.rb', line 312 def hash self.class.hash end |
#install(spec) ⇒ Object
395 396 397 398 399 400 401 402 403 |
# File 'lib/bundler/source.rb', line 395 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 |
# 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.map{|c| c.basename.to_s } s.executables = binaries end end end else raise PathError, "The path `#{}` does not exist." end index end |
#local_specs ⇒ Object Also known as: specs
365 366 367 |
# File 'lib/bundler/source.rb', line 365 def local_specs @local_specs ||= load_spec_files end |
#remote! ⇒ Object
289 290 291 |
# File 'lib/bundler/source.rb', line 289 def remote! @allow_remote = true end |
#to_lock ⇒ Object
301 302 303 304 305 306 |
# File 'lib/bundler/source.rb', line 301 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
308 309 310 |
# File 'lib/bundler/source.rb', line 308 def to_s "source at #{@path}" end |