Class: StrongVersions::Dependency

Inherits:
Object
  • Object
show all
Defined in:
lib/strong_versions/dependency.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dependency, lockfile = nil) ⇒ Dependency

Returns a new instance of Dependency.



7
8
9
10
11
12
13
14
# File 'lib/strong_versions/dependency.rb', line 7

def initialize(dependency, lockfile = nil)
  @dependency = dependency
  @name = dependency.name
  @errors = []
  @lockfile = lockfile || default_lockfile

  versions.each { |operator, version| validate_version(operator, version) }
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



5
6
7
# File 'lib/strong_versions/dependency.rb', line 5

def errors
  @errors
end

#nameObject (readonly)

Returns the value of attribute name.



5
6
7
# File 'lib/strong_versions/dependency.rb', line 5

def name
  @name
end

Instance Method Details

#definitionObject



33
34
35
36
37
38
39
# File 'lib/strong_versions/dependency.rb', line 33

def definition
  versions.map do |operator, version|
    next t('version_not_specified') if operator == '>=' && version.zero?

    "'#{operator} #{version}'"
  end.join(', ')
end

#gemfileObject



16
17
18
# File 'lib/strong_versions/dependency.rb', line 16

def gemfile
  Pathname.new(@dependency.gemfile) if @dependency.respond_to?(:gemfile)
end

#suggested_definitionObject



28
29
30
31
# File 'lib/strong_versions/dependency.rb', line 28

def suggested_definition
  guards = guard_versions.map { |op, version| "'#{op} #{version}'" }
  "gem '#{@name}', #{[suggested_version.suggestion, *guards].join(', ')}"
end

#suggested_versionObject



24
25
26
# File 'lib/strong_versions/dependency.rb', line 24

def suggested_version
  GemVersion.new(GemVersion.new(lockfile_version).version_string)
end

#updatable?Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/strong_versions/dependency.rb', line 41

def updatable?
  gemfile && !suggested_version.missing? && !path_source?
end

#valid?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/strong_versions/dependency.rb', line 20

def valid?
  @errors.empty?
end