Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Neodelf/lecter

:boom: Show executable code by request
https://github.com/Neodelf/lecter

code-analyzer debugger-visualizer lecter rails ruby tool

Last synced: 7 days ago
JSON representation

:boom: Show executable code by request

Awesome Lists containing this project

README

        


Lecter Logo

Lecter shows an executed code by a URL request.

Debug an unknown code in SECONDS!

[![Gem Version][0]][1]
[![Ruby Style Guide][15]][16]
[![CircleCI][2]][3]
[![Test Coverage][12]][13]
[![Maintainability][10]][11]
[![All Contributors](https://img.shields.io/badge/all_contributors-5-green.svg)](#contributors-)

> Quid pro quo. I tell you things, you tell me things. Not about this case, though. About yourself.

> -- Hannibal Lecter / The Silence of the Lambs

----------

## Table of contents
* [:rotating_light: Problems](#rotating_light-problems)
* [:rocket: Solutions](#rocket-solutions)
* [:bangbang: Requirements](#bangbang-requirements)
* [:hammer_and_wrench: Installation](#hammer_and_wrench-installation)
* [:joystick: Usage](#joystick-usage)
* [:man_technologist: Examples](#man_technologist-examples)
* [:heart: Sponsors](#card_file_box-license)
* [:desktop_computer: Contributing & Contributors](#desktop_computer-contributing--contributors)
* [:card_file_box: License](#card_file_box-license)

## :rotating_light: Problems
1. Developers **don't know** how their app works.
2. Reading code is a **long** process.
3. Memorizing many lines of code is **difficult**.

## :rocket: Solutions
1. The main purpose of this gem is **to help developers understand which code is executed** by a request.

2. Gem's purpose could be compared to visiting a doctor:
You give the symptoms of your disease and **receive a diagnosis**.

You give the parameters of a request and **receive executable code**.

3. You don't have to work with debuggers, read and remember many lines of code.

Just **give & receive**!

## :bangbang: Requirements
Please **use a multithreading server** such as a [puma][4] server with more than `1` worker.

For more information about how to tune a puma server, please visit this [link][5].

## :hammer_and_wrench: Installation
Installing is a **very simple** process.

1. **Add** the gem to your Gemfile:

```ruby
gem 'lecter'
```

2. **Execute** in a terminal in your app's directory:

```zsh
bundle install
```

3. **Add** routes to your `config/routes.rb`:
```ruby
mount Lecter::Engine => '/lecter' if Rails.env.development?
```

## :joystick: Usage
Follow **two** simple steps:

1. **Go** to `/lecter`

2. **Fill in** the form fields with request parameters:

`HTTP method` - request's method

`Endpoint` - use absolute route like `localhost:3000/blogs`

`Headers` - request's headers
`Body(raw)` - request's parameters

## :man_technologist: Examples
Here is an example with a **POST** request:

1. **Go** to `localhost:3000/lecter`

2. **Fill** in the form with:

`HTTP method` - `POST`

`Endpoint` - `localhost:3000/posts`

`Headers` - `content_type=text/html,accept=*/*`

`Body(raw)` - `"post"=>{"title"=>"New title", "description"=>"Desciption"}`

lecter example post form

3. **Submit** the form
4. **Review** the result

lecter post form result

## :heart: Sponsors
[Evrone Logo][14]

## :desktop_computer: Contributing & Contributors
1. Bug reports and pull requests **are welcome**.
2. There are many issues as a proposal to improve this library. If you have any ideas, please **feel free** to write your thoughts in a [new issue][7].
3. Choose **what you like** to fix or improve on the [issues list][8]. You can ask any questions in the comments.
4. :bangbang: **Mention of each contributor** will be on the README file.

**Thanks** goes to these wonderful people:







Aleksey Glukhov



💻
📖






Alisha Taylor



📖






Vitaliy Emeliyantsev



📖






Oskar Janusz



💻

## :card_file_box: License
The gem is available as open source under the terms of the [MIT License][9].

[0]: https://badge.fury.io/rb/lecter.svg
[1]: https://badge.fury.io/rb/lecter
[2]: https://circleci.com/gh/Neodelf/lecter.svg?style=shield
[3]: https://circleci.com/gh/neodelf/lecter
[4]: https://github.com/puma/puma
[5]: https://github.com/puma/puma#clustered-mode
[7]: https://github.com/Neodelf/lecter/issues/new
[8]: https://github.com/Neodelf/lecter/issues
[9]: https://opensource.org/licenses/MIT
[10]: https://api.codeclimate.com/v1/badges/45d57f439d66990490f1/maintainability
[11]: https://codeclimate.com/github/Neodelf/lecter/maintainability
[12]: https://api.codeclimate.com/v1/badges/45d57f439d66990490f1/test_coverage
[13]: https://codeclimate.com/github/Neodelf/lecter/test_coverage
[14]: https://evrone.com
[15]: https://img.shields.io/badge/code_style-rubocop-brightgreen.svg
[16]: https://rubystyle.guide