Class: Tetra::MavenWebsite
- Inherits:
-
Object
- Object
- Tetra::MavenWebsite
- Includes:
- Logging
- Defined in:
- lib/tetra/maven_website.rb
Overview
Facade to search.maven.org
Instance Method Summary collapse
-
#download_pom(group_id, artifact_id, version) ⇒ Object
downloads a POM from a search.maven.com search result.
- #get(url, params) ⇒ Object
-
#get_maven_id_from(result) ⇒ Object
returns a Maven’s triple (artifactId, groupId, version) from a result object.
-
#search(params) ⇒ Object
returns a search result object from search.maven.com see input and output format at search.maven.org/#api.
-
#search_by_group_id_and_artifact_id(group_id, artifact_id) ⇒ Object
returns a search result object from search.maven.com searching by Maven’s group id and artifact id see output format at search.maven.org/#api.
-
#search_by_maven_id(group_id, artifact_id, version) ⇒ Object
returns a search result object from search.maven.com searching by Maven’s id (group id, artifact id and version) see output format at search.maven.org/#api.
-
#search_by_name(name) ⇒ Object
returns a search result object from search.maven.com searching by keyword (name) see output format at search.maven.org/#api.
-
#search_by_sha1(sha1) ⇒ Object
returns a search result object from search.maven.com searching by a jar sha1 hash see output format at search.maven.org/#api.
Methods included from Logging
Instance Method Details
#download_pom(group_id, artifact_id, version) ⇒ Object
downloads a POM from a search.maven.com search result
51 52 53 54 55 |
# File 'lib/tetra/maven_website.rb', line 51 def download_pom(group_id, artifact_id, version) path = "#{group_id.gsub('.', '/')}/#{artifact_id}/#{version}/#{artifact_id}-#{version}.pom" log.debug("downloading #{path}...") get("http://repo1.maven.org/maven2/#{path}", {}).to_s end |
#get(url, params) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/tetra/maven_website.rb', line 57 def get(url, params) response = Net::HTTP.get_response(URI.parse(url + URI.encode_www_form(params))) fail NotFoundOnMavenWebsiteError if response.code == "404" response.body end |
#get_maven_id_from(result) ⇒ Object
returns a Maven’s triple (artifactId, groupId, version) from a result object
46 47 48 |
# File 'lib/tetra/maven_website.rb', line 46 def get_maven_id_from(result) [result["g"], result["a"], result["v"]] end |
#search(params) ⇒ Object
returns a search result object from search.maven.com see input and output format at search.maven.org/#api
38 39 40 41 42 |
# File 'lib/tetra/maven_website.rb', line 38 def search(params) response = get("http://search.maven.org/solrsearch/select?", params.merge("rows" => "100", "wt" => "json")) json = JSON.parse(response.to_s) json["response"]["docs"] end |
#search_by_group_id_and_artifact_id(group_id, artifact_id) ⇒ Object
returns a search result object from search.maven.com searching by Maven’s group id and artifact id see output format at search.maven.org/#api
25 26 27 |
# File 'lib/tetra/maven_website.rb', line 25 def search_by_group_id_and_artifact_id(group_id, artifact_id) search(q: "g:\"#{group_id}\" AND a:\"#{artifact_id}\"", core: "gav") end |
#search_by_maven_id(group_id, artifact_id, version) ⇒ Object
returns a search result object from search.maven.com searching by Maven’s id (group id, artifact id and version) see output format at search.maven.org/#api
32 33 34 |
# File 'lib/tetra/maven_website.rb', line 32 def search_by_maven_id(group_id, artifact_id, version) search(q: "g:\"#{group_id}\" AND a:\"#{artifact_id}\" AND v:\"#{version}\"") end |
#search_by_name(name) ⇒ Object
returns a search result object from search.maven.com searching by keyword (name) see output format at search.maven.org/#api
18 19 20 |
# File 'lib/tetra/maven_website.rb', line 18 def search_by_name(name) search(q: name) end |
#search_by_sha1(sha1) ⇒ Object
returns a search result object from search.maven.com searching by a jar sha1 hash see output format at search.maven.org/#api
11 12 13 |
# File 'lib/tetra/maven_website.rb', line 11 def search_by_sha1(sha1) search(q: "1:\"#{sha1}\"") end |