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.
276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 |
# File 'lib/bundler/source.rb', line 276 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
328 329 330 |
# File 'lib/bundler/source.rb', line 328 def name File.basename(@path.to_s) end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
269 270 271 |
# File 'lib/bundler/source.rb', line 269 def @options end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
269 270 271 |
# File 'lib/bundler/source.rb', line 269 def path @path end |
#version ⇒ Object
Returns the value of attribute version.
272 273 274 |
# File 'lib/bundler/source.rb', line 272 def version @version end |
Class Method Details
.from_lock(options) ⇒ Object
300 301 302 |
# File 'lib/bundler/source.rb', line 300 def self.from_lock() new(.merge("path" => .delete("remote"))) end |
Instance Method Details
#cache(spec) ⇒ Object
410 411 412 413 414 |
# File 'lib/bundler/source.rb', line 410 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
296 297 298 |
# File 'lib/bundler/source.rb', line 296 def cached! @allow_cached = true end |
#eql?(o) ⇒ Boolean Also known as: ==
319 320 321 322 323 324 |
# File 'lib/bundler/source.rb', line 319 def eql?(o) o.instance_of?(Path) && path.(Bundler.root) == o.path.(Bundler.root) && name == o.name && version == o.version end |
#hash ⇒ Object
315 316 317 |
# File 'lib/bundler/source.rb', line 315 def hash self.class.hash end |
#install(spec) ⇒ Object
398 399 400 401 402 403 404 405 406 |
# File 'lib/bundler/source.rb', line 398 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
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 365 366 |
# File 'lib/bundler/source.rb', line 332 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
368 369 370 |
# File 'lib/bundler/source.rb', line 368 def local_specs @local_specs ||= load_spec_files end |
#remote! ⇒ Object
292 293 294 |
# File 'lib/bundler/source.rb', line 292 def remote! @allow_remote = true end |
#to_lock ⇒ Object
304 305 306 307 308 309 |
# File 'lib/bundler/source.rb', line 304 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
311 312 313 |
# File 'lib/bundler/source.rb', line 311 def to_s "source at #{@path}" end |