Class: StrongVersions::Dependency
- Inherits:
-
Object
- Object
- StrongVersions::Dependency
- Defined in:
- lib/strong_versions/dependency.rb
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
-
#initialize(dependency, lockfile = nil) ⇒ Dependency
constructor
A new instance of Dependency.
- #suggested_definition ⇒ Object
- #suggested_version ⇒ Object
- #updatable? ⇒ Boolean
- #valid? ⇒ Boolean
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
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
5 6 7 |
# File 'lib/strong_versions/dependency.rb', line 5 def errors @errors end |
#name ⇒ Object (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
#definition ⇒ Object
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 |
#gemfile ⇒ Object
16 17 18 |
# File 'lib/strong_versions/dependency.rb', line 16 def gemfile Pathname.new(@dependency.gemfile) if @dependency.respond_to?(:gemfile) end |
#suggested_definition ⇒ Object
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_version ⇒ Object
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
41 42 43 |
# File 'lib/strong_versions/dependency.rb', line 41 def updatable? gemfile && !suggested_version.missing? && !path_source? end |
#valid? ⇒ Boolean
20 21 22 |
# File 'lib/strong_versions/dependency.rb', line 20 def valid? @errors.empty? end |