Coder Social home page Coder Social logo

any_good's Introduction

Gem Version

What's this?

A thing to quickly evaluate Ruby gem maturity and answer "Is it any good?". Like this:

Just a report of some numbers and facts from rubygems.org and GitHub repo of the gem in question, to understand how risky it would be to use it.

Usage

$ gem install any_good
$ any_good <gem_name>

Why?

I find myself constantly repeating this process for some new gems I spotted somewhere: going to their gem page and repo page to understand how well it maintained or is it abandoned, and is it something new that still have to get its ways and popularity.

This gem is just a quick one-evening experiment on whether it can be automated in a helpful manner.

What are the colors? Are you criticizing gems?..

The colors (green-yellow-red) are just based on my own subjective "thresholds". Maybe they could become configurable in future versions, if any. "Yellow" and "red" aren't, in fact, "bad", it is "point of attention" when judging whether you'll give a chance to some gem, and how important are they, depends on the situation.

The colors DO NOT mean to "score" the gems (this gem is bad) or to compare "which gem is better", but the typically DO give some insights on the gem's current status in the community.

Those insights aren't that accurate: for example, tzinfo is used by literally everyone, yet its GitHub repo has just ~200 stars. For another, inflecto is explicitly abandoned by its author, the last version was released four years ago, yet it is robust and widely used.

GitHub?

A large part of stats is taken from gem's GitHub repo.

Yes, the gem is not required to have the link to sources published. Yes, there are gems with sources on GitLab, BitBucket, or even SourceForge, God forbid. But again, as with colors, my subjective experience says me to check its GitHub if it is accessible. So the any_good does.

BTW, any_good connects to GitHub API anonymously, and anonymous connections are subject to harsh rate limiting, so if you use it a lot through one day, you may want to provide GITHUB_ACCESS_TOKEN environment variable (tokens are obtained here).

Is it any good?

Well, it is a quick one-evening experiment. So, no tests, no docs except this README, no config, and just hard-coded thresholds. But it works for me.

Who are you anyways?

Just a humble @zverok.

any_good's People

Contributors

matt-harvey avatar zverok avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

any_good's Issues

You may want to make a feature...

... that would analyze all the gems specified in Gemfile and print these numbers as a table.
Probably the specified/resolved version of gem would matter too.

Octokit::InvalidRepository for carrierwave

This gem (any_good) is going to be helpful, thanks. ❤️

It worked for the first few gems I tried, then I got this error:

any_good carrierwave
.../octokit-4.8.0/lib/octokit/repository.rb:92:in `raise_invalid_repository!': 
"carrierwaveuploader/carrierwave/" is invalid as a repository identifier. 
Use the repo/user (String) format, or the repository ID (Integer), or 
a hash containing :repo and :user keys. (Octokit::InvalidRepository)
from .../octokit-4.8.0/lib/octokit/repository.rb:34:in `initialize'
from .../octokit-4.8.0/lib/octokit/repository.rb:58:in `new'
from .../octokit-4.8.0/lib/octokit/repository.rb:58:in `path'
from .../octokit-4.8.0/lib/octokit/client/repositories.rb:29:in `repository'
from .../any_good-0.0.2/lib/any_good.rb:35:in `fetch'
from .../any_good-0.0.2/exe/any_good:6:in `<top (required)>'
from .../any_good:23:in `load'
from .../any_good:23:in `<main>'

New feature: get the dependent gems of a particular gem

Getting the names of the gems that use a given gem and the version number of the gem that the dependents use is useful information for gem writers. It would also be great to provide details about the proportion of the downloads of the dependent with a given gem to see which dependent gem is most important by number of downloads.

Last commit: -1 months ago

Current date is Sat Aug 18 21:05:30 EDT 2018
Last commit is Sat Aug 18 20:50:32 2018 -0400
Expected: Last commit: 15 minutes ago
Observed: Last commit: -1 months ago

any_good paper_trail
# ...
         Last commit: -1 months ago
      ...last closed: -1 months ago
# ...
date
Sat Aug 18 21:05:30 EDT 2018
git show
commit b0e4477864096832b57c1ef9edc0543f286fdaeb (HEAD -> master, origin/master, origin/HEAD)
Date:   Sat Aug 18 20:50:32 2018 -0400

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.