Class: Dependabot::Sbt::FileParser::PropertyValueFinder
- Inherits:
-
Object
- Object
- Dependabot::Sbt::FileParser::PropertyValueFinder
- Extended by:
- T::Sig
- Includes:
- Maven::Shared::PropertyValueFinding
- Defined in:
- lib/dependabot/sbt/file_parser/property_value_finder.rb
Constant Summary collapse
- VAL_DECLARATION_REGEX =
Matches: val someVersion = "1.2.3" Also: val someVersion: String = "1.2.3" Also: lazy val someVersion = "1.2.3"
T.let( /(?:^|\s)(?:lazy\s+)?val\s+(?<name>\w+)(?:\s*:\s*String)?\s*=\s*"(?<value>[^"]+)"/, Regexp )
Instance Method Summary collapse
-
#initialize(dependency_files:) ⇒ PropertyValueFinder
constructor
A new instance of PropertyValueFinder.
- #property_details(property_name:, callsite_buildfile:) ⇒ Object
- #property_value(property_name:, callsite_buildfile:) ⇒ Object
Constructor Details
#initialize(dependency_files:) ⇒ PropertyValueFinder
Returns a new instance of PropertyValueFinder.
26 27 28 29 |
# File 'lib/dependabot/sbt/file_parser/property_value_finder.rb', line 26 def initialize(dependency_files:) @dependency_files = T.let(dependency_files, T::Array[Dependabot::DependencyFile]) @properties = T.let({}, T::Hash[String, T::Hash[String, T::Hash[Symbol, String]]]) end |
Instance Method Details
#property_details(property_name:, callsite_buildfile:) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/dependabot/sbt/file_parser/property_value_finder.rb', line 36 def property_details(property_name:, callsite_buildfile:) # Handle dotted references like "V.scalafixVersion" by looking up the member name if property_name.include?(".") return dotted_property_details(property_name: property_name, callsite_buildfile: callsite_buildfile) end # Look in the callsite file first, then fall back to the root build.sbt, # then check project/*.scala build definition files all_files = [callsite_buildfile, top_level_buildfile].compact all_files += project_scala_files all_files.uniq! all_files.each do |file| details = properties(file).fetch(property_name, nil) return details if details end nil end |
#property_value(property_name:, callsite_buildfile:) ⇒ Object
55 56 57 58 59 60 |
# File 'lib/dependabot/sbt/file_parser/property_value_finder.rb', line 55 def property_value(property_name:, callsite_buildfile:) property_details( property_name: property_name, callsite_buildfile: callsite_buildfile )&.fetch(:value) end |