Skip to content

Commit

Permalink
feat: now support Ruby (dependencies only)
Browse files Browse the repository at this point in the history
  • Loading branch information
bodinsamuel committed Aug 7, 2023
1 parent 31e3513 commit 57e162c
Show file tree
Hide file tree
Showing 73 changed files with 760 additions and 44 deletions.
8 changes: 4 additions & 4 deletions TODO.todo
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ Java:
- Dectect service

Ruby:
- Lockfile
Lockfile @done(23-08-07 16:07)
- Detect service
- Rails

Expand All @@ -121,8 +121,8 @@ PHP:
- Composer

Rust:
- Lockfile
- Detect service
Lockfile @done(23-08-07 16:07)
Detect service @done(23-08-07 16:07)

Python:
- Pipfile
Expand Down Expand Up @@ -152,6 +152,6 @@ DB:
✔ SQLite @done(23-07-06 18:40)
✔ Snowflake @done(23-07-04 15:13)
- Supabase
- Neo4J
Neo4J @done(23-08-07 16:08)
- typesense
- qdrant
45 changes: 39 additions & 6 deletions src/analyser/__snapshots__/index.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ exports[`analyser > should run correctly 1`] = `
],
],
"edges": [],
"id": "19",
"id": "20",
"inComponent": null,
"languages": {},
"name": "GCP",
Expand All @@ -275,7 +275,7 @@ exports[`analyser > should run correctly 1`] = `
],
],
"edges": [],
"id": "20",
"id": "21",
"inComponent": null,
"languages": {},
"name": "Vercel",
Expand All @@ -295,7 +295,7 @@ exports[`analyser > should run correctly 1`] = `
],
],
"edges": [],
"id": "17",
"id": "18",
"inComponent": null,
"languages": {
"TOML": 1,
Expand Down Expand Up @@ -336,6 +336,16 @@ exports[`analyser > should run correctly 1`] = `
"typescript",
"4.9.5",
],
[
"ruby",
"rails",
"6.1.7.4",
],
[
"ruby",
"puma\\", \\"6.3.0",
"latest",
],
[
"terraform",
"registry.terraform.io/hashicorp/google",
Expand Down Expand Up @@ -365,6 +375,7 @@ exports[`analyser > should run correctly 1`] = `
"eslint",
"nodejs",
"prettier",
"ruby",
"terraform",
"typescript",
],
Expand Down Expand Up @@ -539,7 +550,7 @@ exports[`analyser > should run correctly 2`] = `
],
],
"edges": [],
"id": "19",
"id": "20",
"inComponent": null,
"languages": {},
"name": "GCP",
Expand Down Expand Up @@ -611,6 +622,16 @@ exports[`analyser > should run correctly 2`] = `
"typescript",
"4.9.5",
],
[
"ruby",
"rails",
"6.1.7.4",
],
[
"ruby",
"puma\\", \\"6.3.0",
"latest",
],
[
"terraform",
"registry.terraform.io/hashicorp/google",
Expand Down Expand Up @@ -643,6 +664,7 @@ exports[`analyser > should run correctly 2`] = `
"eslint",
"nodejs",
"prettier",
"ruby",
"terraform",
"typescript",
],
Expand Down Expand Up @@ -677,7 +699,7 @@ exports[`analyser > should run correctly 2`] = `
],
],
"edges": [],
"id": "17",
"id": "18",
"inComponent": null,
"languages": {
"TOML": 1,
Expand Down Expand Up @@ -826,9 +848,19 @@ exports[`analyser > should run correctly 2`] = `
"typescript",
"4.9.5",
],
[
"ruby",
"rails",
"6.1.7.4",
],
[
"ruby",
"puma\\", \\"6.3.0",
"latest",
],
],
"edges": [],
"id": "21",
"id": "22",
"inComponent": null,
"languages": {
"HCL": 2,
Expand Down Expand Up @@ -862,6 +894,7 @@ exports[`analyser > should run correctly 2`] = `
"prisma",
"react",
"redis",
"ruby",
"rust",
"scss",
"terraform",
Expand Down
7 changes: 4 additions & 3 deletions src/rules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@ export const dependencies: Record<
SupportedDeps,
Array<{ match: RegExp; tech: AllowedKeys }>
> = {
npm: [],
docker: [],
terraform: [],
'terraform.resource': [],
docker: [],
gomod: [],
npm: [],
ruby: [],
rust: [],
terraform: [],
};

export const rawList: Array<
Expand Down
1 change: 1 addition & 0 deletions src/rules/__snapshots__/hosting.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
exports[`hosting > should match everything with files 1`] = `
[
"expodev",
"firebase",
"flyio",
"github.pages",
"heroku",
Expand Down
1 change: 1 addition & 0 deletions src/rules/app/zookeeper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ register({
dependencies: [
{ type: 'docker', name: /zookeeper/, example: 'zookeeper:0.0.0' },
{ type: 'rust', name: 'zookeeper' },
{ type: 'ruby', name: 'zookeeper' },
],
});
5 changes: 4 additions & 1 deletion src/rules/ci/browserstack.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@ import { register } from '../../rules.js';
register({
tech: 'browserstack',
files: ['browserstack.json'],
dependencies: [{ type: 'npm', name: 'browserstack' }],
dependencies: [
{ type: 'npm', name: 'browserstack' },
{ type: 'ruby', name: 'browserstack-local' },
],
});
1 change: 1 addition & 0 deletions src/rules/ci/circleci.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ import { register } from '../../rules.js';
register({
tech: 'circleci',
files: ['.circleci', 'circle.yml', 'circle.yaml'],
dependencies: [{ type: 'ruby', name: 'circleci' }],
});
1 change: 1 addition & 0 deletions src/rules/ci/cypressci.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ register({
dependencies: [
{ type: 'npm', name: 'cypress' },
{ type: 'docker', name: /cypress/, example: 'cypress:0.0.0' },
{ type: 'ruby', name: 'cypress-on-rails' },
],
});
3 changes: 3 additions & 0 deletions src/rules/ci/dependabot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,7 @@ register({
matchFullPath: true,
files: /.github\/dependabot.y(a)?ml/,
example: '.github/dependabot.yml',
dependencies: [
{ type: 'ruby', name: /^dependabot-/, example: 'dependabot-common' },
],
});
1 change: 1 addition & 0 deletions src/rules/ci/jenkins.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ register({
files: ['.jenkins'],
dependencies: [
{ type: 'docker', name: /jenkins-docker/, example: 'jenkins-docker:0.0.0' },
{ type: 'ruby', name: 'jenkins_api_client' },
],
});
1 change: 1 addition & 0 deletions src/rules/ci/travisci.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ import { register } from '../../rules.js';
register({
tech: 'travisci',
files: ['.travis.yml', '.travis.yaml'],
dependencies: [{ type: 'ruby', name: 'travis' }],
});
11 changes: 10 additions & 1 deletion src/rules/db/aws.dynamodb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,21 @@ import { register } from '../../rules.js';
register({
tech: 'aws.dynamodb',
dependencies: [
{ type: 'npm', name: '@aws-sdk/client-dynamodb' },
{
type: 'npm',
name: /^@aws-sdk\/client-dynamodb/,
example: '@aws-sdk/client-dynamodb-streams',
},
{
type: 'docker',
name: /amazon\/dynamodb-local/,
example: 'amazon/dynamodb-local:0.0.0',
},
{ type: 'rust', name: 'aws-sdk-dynamodb' },
{
type: 'ruby',
name: /^aws-sdk-dynamodb/,
example: 'aws-sdk-dynamodbstreams',
},
],
});
1 change: 1 addition & 0 deletions src/rules/db/couchbase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ register({
{ type: 'npm', name: 'couchbase' },
{ type: 'docker', name: /couchbase/, example: 'couchbase:0.0.0' },
{ type: 'rust', name: 'couchbase' },
{ type: 'ruby', name: 'couchbase' },
],
});
2 changes: 2 additions & 0 deletions src/rules/db/elasticsearch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,7 @@ register({
},
{ type: 'rust', name: 'elasticsearch' },
{ type: 'rust', name: 'aws-sdk-elasticsearch' },
{ type: 'ruby', name: 'elasticsearch' },
{ type: 'ruby', name: 'aws-sdk-elasticsearchservice' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/gcp.bigquery.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,6 @@ register({
name: 'google_bigquery_table',
},
{ type: 'rust', name: 'gcp-bigquery-client' },
{ type: 'ruby', name: 'google-cloud-bigquery' },
],
});
5 changes: 5 additions & 0 deletions src/rules/db/gcp.sql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,10 @@ register({
type: 'terraform.resource',
name: 'google_sql_database',
},
{
type: 'ruby',
name: /^google-apis-sql/,
example: 'google-apis-sqladmin_v1beta4',
},
],
});
1 change: 1 addition & 0 deletions src/rules/db/hashicorp_vault.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ register({
{ type: 'docker', name: /vault/, example: 'vault:0.0.0' },
{ type: 'terraform', name: 'registry.terraform.io/hashicorp/vault' },
{ type: 'rust', name: 'hashicorp_vault' },
{ type: 'ruby', name: 'vault' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/influxdb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ register({
{ type: 'docker', name: /influxdb/, example: 'influxdb:0.0.0' },
{ type: 'rust', name: 'influxdb' },
{ type: 'rust', name: 'influxdb2' },
{ type: 'ruby', name: 'influxdb-client' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/mariadb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ register({
dependencies: [
{ type: 'npm', name: /mariadb/, example: 'mariadb' },
{ type: 'docker', name: /mariadb/, example: 'mariadb:0.0.0' },
{ type: 'ruby', name: 'tencentcloud-sdk-mariadb' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/memcached.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ register({
{ type: 'docker', name: /memcached/, example: 'memcached:0.0.0' },
{ type: 'rust', name: 'memcache-async' },
{ type: 'rust', name: 'memcache' },
{ type: 'ruby', name: 'dalli' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/mongodb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ register({
{ type: 'npm', name: /mongodb/, example: '@mikro-orm/mongodb' },
{ type: 'docker', name: /mongo/, example: 'mongo:0.0.0' },
{ type: 'rust', name: 'mongodb' },
{ type: 'ruby', name: 'mongo' },
],
});
2 changes: 2 additions & 0 deletions src/rules/db/mysql.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,7 @@ register({
{ type: 'npm', name: /mysql/, example: 'mysql' },
{ type: 'docker', name: /mysql/, example: 'mysql:0.0.0' },
{ type: 'rust', name: /^mysql/, example: 'mysql_async' },
{ type: 'ruby', name: 'ruby-mysql' },
{ type: 'ruby', name: 'mysql2' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/neo4j.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ register({
{ type: 'npm', name: 'neo4j-driver' },
{ type: 'docker', name: /neo4j/, example: 'neo4j:0.0.0' },
{ type: 'rust', name: 'neo4rs' },
{ type: 'ruby', name: 'neo4j-ruby-driver' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/postgres.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ register({
{ type: 'npm', name: /postgres/, example: '@mikro-orm/postgresql' },
{ type: 'docker', name: /postgres/, example: 'postgres:0.0.0' },
{ type: 'rust', name: 'postgres' },
{ type: 'ruby', name: 'pg' },
],
});
2 changes: 2 additions & 0 deletions src/rules/db/redis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,7 @@ register({
{ type: 'docker', name: /redis/, example: 'redis:0.0.0' },
{ type: 'rust', name: 'redis' },
{ type: 'rust', name: 'redis-async' },
{ type: 'ruby', name: 'redis' },
{ type: 'ruby', name: 'redis-client' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/snowflake.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ register({
},
{ type: 'rust', name: 'snowflake' },
{ type: 'rust', name: 'rs-snowflake' },
{ type: 'ruby', name: 'sequel-snowflake' },
],
});
1 change: 1 addition & 0 deletions src/rules/db/sqlite.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ register({
{ type: 'rust', name: 'sqlite' },
{ type: 'rust', name: 'rusqlite' },
{ type: 'rust', name: 'libsqlite3-sys' },
{ type: 'ruby', name: 'sqlite3' },
],
});
2 changes: 2 additions & 0 deletions src/rules/hosting/aws.s3.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@ register({
dependencies: [
{ type: 'npm', name: '@aws-sdk/client-s3' },
{ type: 'docker', name: 'adobe/s3mock' },
{ type: 'rust', name: 'aws-sdk-s3' },
{ type: 'ruby', name: 'aws-sdk-s3' },
],
});
5 changes: 4 additions & 1 deletion src/rules/hosting/aws.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ register({
tech: 'aws',
dependencies: [
{ type: 'npm', name: 'aws-sdk' },
{ type: 'npm', name: /@aws-sdk\//, example: '@aws-sdk/client-s3' },
{ type: 'npm', name: /^@aws-sdk\//, example: '@aws-sdk/client-s3' },
{ type: 'terraform', name: 'registry.terraform.io/hashicorp/aws' },
{ type: 'gomod', name: 'github.com/aws/aws-sdk-go' },
{ type: 'gomod', name: 'github.com/aws/aws-sdk-go-v2' },
{ type: 'gomod', name: 'github.com/aws/aws-sdk-go-v2' },
{ type: 'rust', name: /^aws-sdk/, example: 'aws-sdk-e2' },
{ type: 'ruby', name: /^aws-sdk/, example: 'aws-sdk-e2' },
],
});
2 changes: 2 additions & 0 deletions src/rules/hosting/azure.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,7 @@ register({
dependencies: [
{ type: 'terraform', name: 'registry.terraform.io/hashicorp/azurerm' },
{ type: 'gomod', name: 'github.com/Azure/azure-sdk-for-go' },
{ type: 'rust', name: 'azure_core' },
{ type: 'ruby', name: 'azure-armrest' },
],
});
Loading

0 comments on commit 57e162c

Please sign in to comment.