class Librarian::Manifest
Attributes
defined_dependencies[RW]
defined_version[RW]
extra[RW]
name[RW]
source[RW]
Public Class Methods
new(source, name, extra = nil)
click to toggle source
# File lib/librarian/manifest.rb, line 46 def initialize(source, name, extra = nil) assert_name_valid! name self.source = source self.name = name self.extra = extra end
Public Instance Methods
dependencies()
click to toggle source
# File lib/librarian/manifest.rb, line 80 def dependencies defined_dependencies || fetched_dependencies end
dependencies=(dependencies)
click to toggle source
# File lib/librarian/manifest.rb, line 84 def dependencies=(dependencies) self.defined_dependencies = _normalize_dependencies(dependencies) end
dependencies?()
click to toggle source
# File lib/librarian/manifest.rb, line 88 def dependencies? return unless defined_dependencies defined_dependencies.zip(fetched_dependencies).all? do |(a, b)| a.name == b.name && a.requirement == b.requirement end end
install!()
click to toggle source
# File lib/librarian/manifest.rb, line 100 def install! source.install!(self) end
latest()
click to toggle source
# File lib/librarian/manifest.rb, line 72 def latest @latest ||= source.manifests(name).first end
outdated?()
click to toggle source
# File lib/librarian/manifest.rb, line 76 def outdated? latest.version > version end
satisfies?(dependency)
click to toggle source
# File lib/librarian/manifest.rb, line 96 def satisfies?(dependency) dependency.requirement.satisfied_by?(version) end
to_s()
click to toggle source
# File lib/librarian/manifest.rb, line 54 def to_s "#{name}/#{version} <#{source}>" end
version()
click to toggle source
# File lib/librarian/manifest.rb, line 58 def version defined_version || fetched_version end
version=(version)
click to toggle source
# File lib/librarian/manifest.rb, line 62 def version=(version) self.defined_version = _normalize_version(version) end
version?()
click to toggle source
# File lib/librarian/manifest.rb, line 66 def version? return unless defined_version defined_version == fetched_version end
Private Instance Methods
_normalize_dependencies(dependencies)
click to toggle source
# File lib/librarian/manifest.rb, line 132 def _normalize_dependencies(dependencies) if Hash === dependencies dependencies = dependencies.map{|k, v| Dependency.new(k, v, nil)} end dependencies.sort_by(&:name) end
_normalize_version(version)
click to toggle source
# File lib/librarian/manifest.rb, line 128 def _normalize_version(version) Version.new(version) end
assert_name_valid!(name)
click to toggle source
# File lib/librarian/manifest.rb, line 139 def assert_name_valid!(name) name =~ /\A\S(?:.*\S)?\z/ and return raise ArgumentError, "name (#{name.inspect}) must be sensible" end
environment()
click to toggle source
# File lib/librarian/manifest.rb, line 108 def environment source.environment end
fetch_dependencies!()
click to toggle source
# File lib/librarian/manifest.rb, line 124 def fetch_dependencies! source.fetch_dependencies(name, version, extra) end
fetch_version!()
click to toggle source
# File lib/librarian/manifest.rb, line 120 def fetch_version! source.fetch_version(name, extra) end
fetched_dependencies()
click to toggle source
# File lib/librarian/manifest.rb, line 116 def fetched_dependencies @fetched_dependencies ||= _normalize_dependencies(fetch_dependencies!) end
fetched_version()
click to toggle source
# File lib/librarian/manifest.rb, line 112 def fetched_version @fetched_version ||= _normalize_version(fetch_version!) end