bibliothecary 8.2.6 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/bibliothecary/configuration.rb +0 -2
- data/lib/bibliothecary/parsers/maven.rb +22 -22
- data/lib/bibliothecary/version.rb +1 -1
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: c551b8910bf1a2244fddcde8a12ab29d88816b61237b10c992a53d049b2ad661
         | 
| 4 | 
            +
              data.tar.gz: 55254294ffec08398bc658b117673ea2697d31ddc8ad9592d24225313b9803bb
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 52966b0a1fa300c8115f413ebdc991b3856bb77f8098e5b19ed996b1f9bf3c46b54cc41ed2998f0a157f3544c54296b99437596b2666e8345c6285208f0bd46c
         | 
| 7 | 
            +
              data.tar.gz: e0c980d9065bfbc3c98100c0ebd92f7c0e16ab93f5e0a3f4a8178d8fb4a89ff032225737951486bf704d337d2bf9f2d18d60074e545ee6852297293c5e952b5b
         | 
| @@ -5,7 +5,6 @@ module Bibliothecary | |
| 5 5 | 
             
                attr_accessor :carthage_parser_host
         | 
| 6 6 | 
             
                attr_accessor :clojars_parser_host
         | 
| 7 7 | 
             
                attr_accessor :mix_parser_host
         | 
| 8 | 
            -
                attr_accessor :gradle_parser_host
         | 
| 9 8 | 
             
                attr_accessor :yarn_parser_host
         | 
| 10 9 | 
             
                attr_accessor :conda_parser_host
         | 
| 11 10 | 
             
                attr_accessor :swift_parser_host
         | 
| @@ -17,7 +16,6 @@ module Bibliothecary | |
| 17 16 | 
             
                  @carthage_parser_host = 'https://carthage.libraries.io'
         | 
| 18 17 | 
             
                  @clojars_parser_host  = 'https://clojars.libraries.io'
         | 
| 19 18 | 
             
                  @mix_parser_host      = 'https://mix.libraries.io'
         | 
| 20 | 
            -
                  @gradle_parser_host   = 'https://gradle-parser.libraries.io'
         | 
| 21 19 | 
             
                  @yarn_parser_host     = 'https://yarn-parser.libraries.io'
         | 
| 22 20 | 
             
                  @conda_parser_host    = 'https://conda-parser.libraries.io'
         | 
| 23 21 | 
             
                  @swift_parser_host    = 'http://swift.libraries.io'
         | 
| @@ -13,16 +13,19 @@ module Bibliothecary | |
| 13 13 | 
             
                  GRADLE_DEP_REGEX = /(\+---|\\---){1}/
         | 
| 14 14 |  | 
| 15 15 | 
             
                  # Builtin methods: https://docs.gradle.org/current/userguide/java_plugin.html#tab:configurations
         | 
| 16 | 
            -
                   | 
| 17 | 
            -
                  
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                  #  | 
| 20 | 
            -
                  #  | 
| 21 | 
            -
                  
         | 
| 22 | 
            -
                   | 
| 23 | 
            -
                   | 
| 24 | 
            -
                   | 
| 25 | 
            -
                   | 
| 16 | 
            +
                  # Deprecated methods: https://docs.gradle.org/current/userguide/upgrading_version_6.html#sec:configuration_removal
         | 
| 17 | 
            +
                  GRADLE_DEPENDENCY_METHODS = %w(api compile compileClasspath compileOnly compileOnlyApi implementation runtime runtimeClasspath runtimeOnly testCompile testCompileOnly testImplementation testRuntime testRuntimeOnly)
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  # Intentionally overly-simplified regexes to scrape deps from build.gradle (Groovy) and build.gradle.kts (Kotlin) files. 
         | 
| 20 | 
            +
                  # To be truly useful bibliothecary would need full Groovy / Kotlin parsers that speaks Gradle, 
         | 
| 21 | 
            +
                  # because the Groovy and Kotlin DSLs have many dynamic ways of declaring dependencies.
         | 
| 22 | 
            +
                  GRADLE_VERSION_REGEX = /[\w.-]+/ # e.g. '1.2.3'
         | 
| 23 | 
            +
                  GRADLE_VAR_INTERPOLATION_REGEX = /\$\w+/ # e.g. '$myVersion'
         | 
| 24 | 
            +
                  GRADLE_CODE_INTERPOLATION_REGEX = /\$\{.*\}/ # e.g. '${my-project-settings["version"]}'
         | 
| 25 | 
            +
                  GRADLE_GAV_REGEX = /([\w.-]+)\:([\w.-]+)(?:\:(#{GRADLE_VERSION_REGEX}|#{GRADLE_VAR_INTERPOLATION_REGEX}|#{GRADLE_CODE_INTERPOLATION_REGEX}))?/ # e.g. "group:artifactId:1.2.3"
         | 
| 26 | 
            +
                  GRADLE_COMMENT_REGEX = /\/\/.*|\/\*.*\*\// # '// hello' or '/* hello */'
         | 
| 27 | 
            +
                  GRADLE_GROOVY_SIMPLE_REGEX = /(#{GRADLE_DEPENDENCY_METHODS.join('|')})\s+['"]#{GRADLE_GAV_REGEX}['"]\s*(?:#{GRADLE_COMMENT_REGEX})*$/m 
         | 
| 28 | 
            +
                  GRADLE_KOTLIN_SIMPLE_REGEX = /(#{GRADLE_DEPENDENCY_METHODS.join('|')})\s*\(\s*"#{GRADLE_GAV_REGEX}"\s*\)\s*(?:#{GRADLE_COMMENT_REGEX})*$/m 
         | 
| 26 29 |  | 
| 27 30 | 
             
                  MAVEN_PROPERTY_REGEX = /\$\{(.+?)\}/
         | 
| 28 31 | 
             
                  MAX_DEPTH = 5
         | 
| @@ -233,24 +236,21 @@ module Bibliothecary | |
| 233 236 | 
             
                  end
         | 
| 234 237 |  | 
| 235 238 | 
             
                  def self.parse_gradle(file_contents, options: {})
         | 
| 236 | 
            -
                     | 
| 237 | 
            -
                     | 
| 238 | 
            -
                     | 
| 239 | 
            -
                     | 
| 240 | 
            -
                    json['dependencies'].map do |dependency|
         | 
| 241 | 
            -
                      name = gradle_dependency_name(dependency["group"], dependency["name"])
         | 
| 242 | 
            -
                      next unless name =~ /[\w-]+\.[\w_-]+(\.[\w-])?\:[\w-]/
         | 
| 239 | 
            +
                    file_contents
         | 
| 240 | 
            +
                    .scan(GRADLE_GROOVY_SIMPLE_REGEX)                                                # match 'implementation "group:artifactId:version"'
         | 
| 241 | 
            +
                    .reject { |(_type, group, artifactId, _version)| group.nil? || artifactId.nil? } # remove any matches with missing group/artifactId
         | 
| 242 | 
            +
                    .map { |(type, group, artifactId, version)|
         | 
| 243 243 | 
             
                      {
         | 
| 244 | 
            -
                        name:  | 
| 245 | 
            -
                        requirement:  | 
| 246 | 
            -
                        type:  | 
| 244 | 
            +
                        name: [group, artifactId].join(":"),
         | 
| 245 | 
            +
                        requirement: version || "*",
         | 
| 246 | 
            +
                        type: type
         | 
| 247 247 | 
             
                      }
         | 
| 248 | 
            -
                     | 
| 248 | 
            +
                    }
         | 
| 249 249 | 
             
                  end
         | 
| 250 250 |  | 
| 251 251 | 
             
                  def self.parse_gradle_kts(file_contents, options: {})
         | 
| 252 252 | 
             
                    file_contents
         | 
| 253 | 
            -
                      .scan( | 
| 253 | 
            +
                      .scan(GRADLE_KOTLIN_SIMPLE_REGEX)                                                # match 'implementation("group:artifactId:version")'
         | 
| 254 254 | 
             
                      .reject { |(_type, group, artifactId, _version)| group.nil? || artifactId.nil? } # remove any matches with missing group/artifactId
         | 
| 255 255 | 
             
                      .map { |(type, group, artifactId, version)|
         | 
| 256 256 | 
             
                        {
         |