A Ruby analyzer feature detector
1.6K
belugas-ruby is an engine for detecting application features for Ruby projects based on static analysis, in other words belugas-ruby engine can detect the language, framework, database & dependencies your Ruby application is using.
This engine works as command line interface on your local machine of a Docker container:
belugas-ruby is part of the Whales ecosystem: A set of tools to automatically dockerize your applications.
A feature is an application attribute detected during the static analysis. This analysis is the act of derivating data from code such as programming language, frameworks, service dependencies and so on. See here for a list of attributes this engine currently supports.
A feature has the following format:
{
"type":"feature",
"name":"Ruby",
"version":"2.4",
"description":"The application uses Ruby code",
"content":"",
"categories":["Language"],
"cue_locations":[""],
"engines":["belugas","belugas-ruby"]
}
Where:
Currently belugas-ruby can detect the following frameworks, databases, libraries and services:
Frameworks:
Databases:
Libraries & Services:
The Belugas Ruby CLI is distributed and run as a Docker image, so you only need to have Docker installed and running on your machine.
Fire up your terminal and run:
docker pull icalialabs/belugas-ruby:latest
And that's it!
Here's where the magic begins, first of all in your terminal go to the project directory you want to analyze:
cd code/path_to_project/
And then just execute the following command:
docker run \
--interactive --tty --rm \
--volume "$PWD":/code \
icalialabs/belugas-ruby
And voilá! The terminal will stream a json output for each of the features detected in the following format:
{
"type":"feature",
"name":"Ruby",
"version":"2.3.1",
"description":"The application uses Ruby code",
"categories":["Language"],
"engines":["belugas","belugas-ruby"]
}
{
"type":"feature",
"name":"rails",
"version":"4.2.6",
"description":"The application uses rails",
"content":"",
"categories":["Framework"],
"cue_locations":[""],
"engines":["belugas","belugas-ruby"]
}
{
"type":"feature",
"name":"postgresql",
"version":"9.5.6",
"description":"The application uses postgresql",
"content":"",
"categories":["Database"],
"cue_locations":[""],
"engines":["belugas","belugas-ruby"]
}
{
"type":"feature",
"name":"sidekiq",
"version":"0",
"description":"The application uses sidekiq",
"content":"",
"categories":["Service"],
"cue_locations":[""],
"engines":["belugas","belugas-ruby"]
}
Everyone is freely to collaborate, just make sure you follow our code of conduct. Thank you contributors!
Find a bug and don't know how to fix it? Have trouble following the documentation or have a question about the project? Then by all means, please create an issue.
Just please make sure you check existing issues to see if what you're running into has been addressed already.
That's great! Just follow this steps:
masterOnce you've created a pull request, mainteners will chime in to review your proposed changes and to merged it if everything is right :tada:
That's great also! We already have some open issues for you to dive in.
See LICENSE

Belugas-Ruby is maintained by Icalia Labs
Content type
Image
Digest
Size
59.2 MB
Last updated
over 9 years ago
docker pull icalialabs/belugas-ruby