class EacRubyUtils::GemsRegistry::Gem
Attributes
gemspec[R]
registry[R]
Public Class Methods
new(registry, gemspec)
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 15 def initialize(registry, gemspec) @registry = registry @gemspec = gemspec end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 28 def <=>(other) sd = depend_on(other) od = other.depend_on(self) return 1 if sd && !od return -1 if od && !sd gemspec.name <=> other.gemspec.name end
depend_on(gem)
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 20 def depend_on(gem) dependencies.lazy.map(&:name).include?(gem.gemspec.name) end
dependencies()
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 24 def dependencies @dependencies ||= dependencies_uncached # dependencies_uncached end
found?()
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 37 def found? lib_file_found? && registered_module.is_a?(::Module) end
lib_file_found?()
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 41 def lib_file_found? gemspec.require_paths.any? do |require_path| ::Pathname.new(require_path).expand_path(gemspec.gem_dir).join(path_to_require + '.rb') .file? end end
path_to_require()
click to toggle source
@return [String]
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 56 def path_to_require gemspec.name.gsub('-', '/') + '/' + registry.module_suffix.underscore end
registered_module()
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 48 def registered_module return nil unless lib_file_found? require path_to_require path_to_require.classify.constantize end
Private Instance Methods
dependencies_uncached()
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 62 def dependencies_uncached ::EacRubyUtils::RecursiveBuilder .new(gemspec) { |item| gem_item_dependencies(item) } .result end
gem_item_dependencies(item)
click to toggle source
# File lib/eac_ruby_utils/gems_registry/gem.rb, line 68 def gem_item_dependencies(item) ::Gem::Specification.find_by_name(item.name).dependencies rescue ::Gem::MissingSpecError [] end