Class: StrongVersions::Dependency
- Inherits:
-
Object
- Object
- StrongVersions::Dependency
- Defined in:
- lib/strong_versions/dependency.rb
Overview
rubocop:disable Metrics/ClassLength
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
- #definition ⇒ Object
- #gemfile ⇒ Object
- #gemspec ⇒ Object
-
#initialize(dependency, lockfile = nil) ⇒ Dependency
constructor
A new instance of Dependency.
- #suggested_definition(subject = :gemfile) ⇒ Object
- #suggested_version ⇒ Object
- #to_s ⇒ Object
- #updatable? ⇒ Boolean
- #valid? ⇒ Boolean
Constructor Details
#initialize(dependency, lockfile = nil) ⇒ Dependency
Returns a new instance of Dependency.
8 9 10 11 12 13 14 15 |
# File 'lib/strong_versions/dependency.rb', line 8 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
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
6 7 8 |
# File 'lib/strong_versions/dependency.rb', line 6 def errors @errors end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
6 7 8 |
# File 'lib/strong_versions/dependency.rb', line 6 def name @name end |
Instance Method Details
#definition ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/strong_versions/dependency.rb', line 43 def definition versions.map do |operator, version| next t('version_not_specified') if operator == '>=' && version.zero? "'#{operator} #{version}'" end.join(', ') end |
#gemfile ⇒ Object
21 22 23 |
# File 'lib/strong_versions/dependency.rb', line 21 def gemfile Pathname.new(@dependency.gemfile) if @dependency.respond_to?(:gemfile) end |
#gemspec ⇒ Object
25 26 27 |
# File 'lib/strong_versions/dependency.rb', line 25 def gemspec Pathname.new(gemspec_path) unless gemspec_path.nil? end |
#suggested_definition(subject = :gemfile) ⇒ Object
37 38 39 40 41 |
# File 'lib/strong_versions/dependency.rb', line 37 def suggested_definition(subject = :gemfile) guards = guard_versions.map { |op, version| "'#{op} #{version}'" } constraints = [suggested_version.suggestion, *guards].join(', ') send(:"suggested_#{subject}_definition", constraints) end |
#suggested_version ⇒ Object
33 34 35 |
# File 'lib/strong_versions/dependency.rb', line 33 def suggested_version GemVersion.new(GemVersion.new(lockfile_version).version_string) end |
#to_s ⇒ Object
17 18 19 |
# File 'lib/strong_versions/dependency.rb', line 17 def to_s "#<StrongVersions::Dependency name=#{@dependency.name}>" end |
#updatable? ⇒ Boolean
51 52 53 |
# File 'lib/strong_versions/dependency.rb', line 51 def updatable? !valid? && !suggested_version.missing? && !path_source? end |
#valid? ⇒ Boolean
29 30 31 |
# File 'lib/strong_versions/dependency.rb', line 29 def valid? @errors.empty? end |