module SciRuby
@api public
Constants
- GEMS_YML
- VERSION
SciRuby
version string @api public
Public Instance Methods
autoload_modules()
click to toggle source
Modules which can be autoloaded
# File lib/sciruby/gems.rb, line 10 def autoload_modules @autoload_modules ||= {} end
gems()
click to toggle source
Return map of all known SciRuby
gems
# File lib/sciruby/gems.rb, line 5 def gems @gems ||= {} end
installed_gems()
click to toggle source
Return map of all installed SciRuby
gems
# File lib/sciruby/gems.rb, line 15 def installed_gems @installed_gems ||= Hash[gems.each_value.map(&method(:installed_gem)).compact] end
installed_modules()
click to toggle source
Return list of all installed SciRuby
modules
# File lib/sciruby/gems.rb, line 25 def installed_modules @installed_modules ||= installed_gems.each_value.map {|gem| gem[:module] }.flatten end
modules()
click to toggle source
Return list of all known SciRuby
modules
# File lib/sciruby/gems.rb, line 20 def modules @modules ||= gems.each_value.map {|gem| gem[:module] }.flatten end
Private Instance Methods
installed_gem(gem)
click to toggle source
# File lib/sciruby/gems.rb, line 48 def installed_gem(gem) require 'rubygems' unless defined?(Gem::Specification) [gem[:name], gem.merge(installed_version: Gem::Specification.find_by_name(gem[:name]).version.to_s)] rescue Exception nil end
load_gems(file)
click to toggle source
# File lib/sciruby/gems.rb, line 31 def load_gems(file) YAML.load_file(file).each do |name, gem| gem = Hash[gem.map {|k,v| [k.to_sym, v] }] gem[:name] = name gem[:require] = [*(gem[:require] || name)] gem[:module] = [*gem[:module]] gem[:module].each do |mod| parts = mod.split('::') parts.size.times do |i| m = parts[0..i].join('::') autoload_modules[m] = (i < parts.size - 1 && autoload_modules[m]) || gem[:require] end end gems[name] = gem end end