Class: LockJar::Registry
- Inherits:
-
Object
- Object
- LockJar::Registry
- Includes:
- Singleton
- Defined in:
- lib/lock_jar/registry.rb
Overview
Registry of resources loaded by LockJar
Instance Attribute Summary collapse
-
#loaded_gems ⇒ Object
Returns the value of attribute loaded_gems.
-
#loaded_jars ⇒ Object
Returns the value of attribute loaded_jars.
-
#loaded_lockfiles ⇒ Object
Returns the value of attribute loaded_lockfiles.
Instance Method Summary collapse
- #gem_registered?(spec) ⇒ Boolean
-
#initialize ⇒ Registry
constructor
A new instance of Registry.
- #load_gem(spec) ⇒ Object
- #load_jars_for_gems ⇒ Object
- #lockfile_registered?(lockfile) ⇒ Boolean
- #register_gem(spec) ⇒ Object
- #register_jars(jars) ⇒ Object
- #register_lockfile(lockfile) ⇒ Object
Constructor Details
#initialize ⇒ Registry
Returns a new instance of Registry.
29 30 31 32 33 |
# File 'lib/lock_jar/registry.rb', line 29 def initialize @loaded_gems = {} @loaded_jars = [] @loaded_lockfiles = [] end |
Instance Attribute Details
#loaded_gems ⇒ Object
Returns the value of attribute loaded_gems.
27 28 29 |
# File 'lib/lock_jar/registry.rb', line 27 def loaded_gems @loaded_gems end |
#loaded_jars ⇒ Object
Returns the value of attribute loaded_jars.
27 28 29 |
# File 'lib/lock_jar/registry.rb', line 27 def loaded_jars @loaded_jars end |
#loaded_lockfiles ⇒ Object
Returns the value of attribute loaded_lockfiles.
27 28 29 |
# File 'lib/lock_jar/registry.rb', line 27 def loaded_lockfiles @loaded_lockfiles end |
Instance Method Details
#gem_registered?(spec) ⇒ Boolean
59 60 61 |
# File 'lib/lock_jar/registry.rb', line 59 def gem_registered?(spec) !@loaded_gems[spec.name].nil? end |
#load_gem(spec) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/lock_jar/registry.rb', line 63 def load_gem(spec) return if gem_registered?(spec) register_gem(spec) gem_dir = spec.gem_dir lockfile = File.join(gem_dir, 'Jarfile.lock') return unless File.exist?(lockfile) puts "#{spec.name} has Jarfile.lock, loading jars" LockJar.load(lockfile) end |
#load_jars_for_gems ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/lock_jar/registry.rb', line 77 def load_jars_for_gems specs = Gem.loaded_specs return if specs.nil? gems = specs.keys - @loaded_gems.keys gems.each { |key| load_gem(specs[key]) } end |
#lockfile_registered?(lockfile) ⇒ Boolean
35 36 37 |
# File 'lib/lock_jar/registry.rb', line 35 def lockfile_registered?(lockfile) @loaded_lockfiles.include? File.(lockfile) if lockfile end |
#register_gem(spec) ⇒ Object
55 56 57 |
# File 'lib/lock_jar/registry.rb', line 55 def register_gem(spec) @loaded_gems[spec.name] = spec end |
#register_jars(jars) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/lock_jar/registry.rb', line 45 def register_jars(jars) return if jars.nil? jars_to_load = jars - @loaded_jars @loaded_jars += jars_to_load jars_to_load end |
#register_lockfile(lockfile) ⇒ Object
39 40 41 42 43 |
# File 'lib/lock_jar/registry.rb', line 39 def register_lockfile(lockfile) return if lockfile.nil? || lockfile_registered?(lockfile) @loaded_lockfiles << File.(lockfile) end |