Class: Bundler::StubSpecification
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
           RemoteSpecification | |
| Instance Chain: | |
| Inherits: | Bundler::RemoteSpecification 
 | 
| Defined in: | lib/bundler/stub_specification.rb | 
Constant Summary
GemHelpers - Included
  
Class Method Summary
Instance Attribute Summary
- #activated rw
- #activated=(activated) rw
- #ignored rw
- 
    
      #missing_extensions?  ⇒ Boolean 
    
    readonly
    This is defined directly to avoid having to load every installed spec. 
- #source=(source) writeonly
- #stub rw
RemoteSpecification - Inherited
Instance Method Summary
- #default_gem
- #full_gem_path
- #full_require_paths
- 
    
      #load_paths  
    
    This is what we do in bundler/rubygems_ext full_require_paths is always implemented in >= 2.2.0. 
- #loaded_from
- #matches_for_glob(glob)
- #raw_require_paths
- #to_yaml
- #_remote_specification private
RemoteSpecification - Inherited
| #<=> | Compare this specification against another object. | 
| #__swap__ | Because Rubyforge cannot be trusted to provide valid specifications once the remote gem is downloaded, the backend specification will be swapped out. | 
| #fetch_platform | Needed before installs, since the arch matters then and quick specs don’t bother to include the arch in the platform string. | 
| #full_name, #git_version, #respond_to?, | |
| #sort_obj | Create a delegate used for sorting. | 
| #to_s, #_remote_specification, #method_missing, #to_ary | |
MatchPlatform - Included
GemHelpers - Included
Constructor Details
This class inherits a constructor from Bundler::RemoteSpecification
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Bundler::RemoteSpecification
Class Method Details
.from_stub(stub)
[ GitHub ]Instance Attribute Details
#activated (rw)
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 42
def activated stub.activated end
#activated=(activated) (rw)
[ GitHub ]#ignored (rw)
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 14
attr_accessor :stub, :ignored
    #missing_extensions?  ⇒ Boolean  (readonly)
  
This is defined directly to avoid having to load every installed spec
# File 'lib/bundler/stub_specification.rb', line 37
def missing_extensions? stub.missing_extensions? end
#source=(source) (writeonly)
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 19
def source=(source) super # Stub has no concept of source, which means that extension_dir may be wrong # This is the case for git-based gems. So, instead manually assign the extension dir return unless source.respond_to?(:extension_dir_name) path = File.join(stub.extensions_dir, source.extension_dir_name) stub.extension_dir = File.(path) end
#stub (rw)
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 14
attr_accessor :stub, :ignored
Instance Method Details
#_remote_specification (private)
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 88
def _remote_specification @_remote_specification ||= begin rs = stub.to_spec if rs.equal?(self) # happens when to_spec gets the spec from Gem.loaded_specs rs = Gem::Specification.load(loaded_from) Bundler.rubygems.stub_set_spec(stub, rs) end unless rs raise GemspecError, "The gemspec for #{full_name} at #{loaded_from}" \ " was missing or broken. Try running `gem pristine #{name} -v #{version}`" \ " to fix the cached spec." end rs.source = source rs end end
#default_gem
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 50
def default_gem stub.default_gem end
#full_gem_path
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 54
def full_gem_path # deleted gems can have their stubs return nil, so in that case grab the # expired path from the full spec stub.full_gem_path || method_missing(:full_gem_path) end
#full_require_paths
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 61
def full_require_paths stub.full_require_paths end
#load_paths
This is what we do in bundler/rubygems_ext full_require_paths is always implemented in >= 2.2.0
# File 'lib/bundler/stub_specification.rb', line 67
def load_paths full_require_paths end
#loaded_from
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 72
def loaded_from stub.loaded_from end
#matches_for_glob(glob)
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 77
def matches_for_glob(glob) stub.matches_for_glob(glob) end
#raw_require_paths
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 82
def raw_require_paths stub.raw_require_paths end
#to_yaml
[ GitHub ]# File 'lib/bundler/stub_specification.rb', line 29
def to_yaml _remote_specification.to_yaml end