gemdex.org

Scoring

Search

Expression Type

Exclude

Expression
downloads versions latest
version
date
avg
version
date
download
slope
dependents


gemdex.org is a Ruby gem search tool for Ruby developers.


It combines a powerful text search function with a flexible scoring system that helps you find the best gem for the task at hand.

Searching


  • Put some search terms in the search expression box.
  • gemdex.org will search both gem names and gem summary text.
  • The default operator is AND.
  • You can also use:

    Symbol Function
    *
    wildcard
    +
    AND
    -
    NOT
    |
    OR
    "
    surrounds literal phrase
    (..)
    surrounds grouping e.g. "teams (microsoft | ms)"
    \
    escape for all of the above
  • Select search type "Query String"
  • Adjust scoring weights to your liking (see Scoring below). You can use presets or adjust by hand.
  • If there are things you'd like to exclude from the results, you can put that inthe Exclude Expression entry. Same syntax as above, but the default operator is OR
  • Add words to the filter box if you want to exclude certain things
  • Press Search

Examples


  • zabbix == find gems with "zabbix" in the gem's name and summary fields
  • zabbix api == find gems with "zabbix" AND "api" in the same fields
  • (puma | rack | sinatra) cache == match any gem that matches puma or rack or sinatra AND cache


Hints

  • Use wildcards (*) to widen your search if you suspect you're not seeing everything
  • The "Equal Weights" preset is a good starting point and is the default.
  • "Trending Newer Work" is good one for finding projects that are both recently actively maintained and seem to be becoming popular.
  • Scoring only by downloads is problematic as it involves the whole community in perpetuating a positive feedback loop that may be undeserved for old/dead/bad projects. e.g. if you download the most downloaded gem and find out that it's lousy, not only have you wasted your time, but you've also "voted" for it yourself. It is the fallback scoring option in cases where your search matched too many gems. You should try to narrow things down so you're not constrained to this.


Scoring


A "Query String" search will present you with a score-ordered list of gems (low scores are best) , where the score is derived from multiplying the metric weight you've selected with the rank order each gem falls in for each metric. The metrics are:

  • Total number of downloads this gem has had over it's entire life. More is better.
  • The number of versions of it that have been released. More is better
  • The date of the latest version. Newer is better
  • The "average date" of all versions, indicating whether development is more recent or not. Newer is better
  • Download slope based on applying linear regression to the version downloads slope. Positive slope is better
  • The number of other gems that list the gem as a dependency. More is better