lecter 0.1.3 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.all-contributorsrc +26 -0
- data/.circleci/config.yml +86 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +16 -0
- data/.gitignore +2 -0
- data/.rubocop.yml +25 -0
- data/CHANGELOG.md +20 -0
- data/CONTRIBUTING.md +35 -0
- data/Gemfile +3 -2
- data/Gemfile.lock +37 -69
- data/LICENSE.txt +1 -1
- data/README.md +160 -35
- data/Rakefile +5 -3
- data/app/controllers/lecter/diagnosis_controller.rb +40 -54
- data/app/views/layouts/lecter.html.erb +258 -0
- data/app/views/lecter/diagnosis/new.html.erb +61 -0
- data/app/views/lecter/diagnosis/show.html.erb +54 -0
- data/bin/console +1 -0
- data/bin/rails +16 -0
- data/config/locales/en.yml +16 -0
- data/config/locales/ru.yml +16 -0
- data/config/routes.rb +7 -0
- data/lecter.gemspec +9 -5
- data/lib/lecter/engine.rb +7 -0
- data/lib/lecter/formatter_headers.rb +26 -0
- data/lib/lecter/formatter_payload.rb +35 -0
- data/lib/lecter/html_generator.rb +66 -0
- data/lib/lecter/html_row.rb +42 -0
- data/lib/lecter/rack.rb +32 -31
- data/lib/lecter/railtie.rb +9 -0
- data/lib/lecter/requester.rb +63 -0
- data/lib/lecter/trace_point.rb +30 -0
- data/lib/lecter/version.rb +3 -1
- data/lib/lecter.rb +15 -12
- metadata +50 -23
- data/.idea/encodings.xml +0 -6
- data/.idea/lecter.iml +0 -52
- data/.idea/misc.xml +0 -7
- data/.idea/modules.xml +0 -8
- data/.idea/workspace.xml +0 -857
- data/.travis.yml +0 -7
- data/app/assets/javascripts/highlight.pack.js +0 -2
- data/app/assets/stylesheets/railscasts.css +0 -106
- data/app/views/lecter/diagnosis/new.erb +0 -18
- data/app/views/lecter/diagnosis/show.slim +0 -56
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'json'
|
|
4
|
+
|
|
5
|
+
module Lecter
|
|
6
|
+
class FormatterPayload
|
|
7
|
+
WRONG_PARAMETERS_MSG = 'Wrong parameters'
|
|
8
|
+
attr_reader :result, :error_message
|
|
9
|
+
|
|
10
|
+
def initialize(payload)
|
|
11
|
+
@dirty_payload = payload
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def call
|
|
15
|
+
@result = json_parse(dirty_payload).merge(lecter_enabled_parameter)
|
|
16
|
+
rescue JSON::ParserError
|
|
17
|
+
@error_message = WRONG_PARAMETERS_MSG
|
|
18
|
+
false
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
private
|
|
22
|
+
|
|
23
|
+
attr_accessor :dirty_payload
|
|
24
|
+
|
|
25
|
+
def json_parse(string)
|
|
26
|
+
string = '{' + string + '}' unless string.match(/\A{.*}\z/)
|
|
27
|
+
string.gsub!('=>', ':')&.gsub!(/(“|”)/, '"')
|
|
28
|
+
JSON.parse(string)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def lecter_enabled_parameter
|
|
32
|
+
{ lecter_enabled: true }
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lecter
|
|
4
|
+
class HtmlGenerator
|
|
5
|
+
COUNT_LINES_AROUND_RUNNING_ROW = 5
|
|
6
|
+
ELLIPSIS = '...'
|
|
7
|
+
NEW_LINE = "\n"
|
|
8
|
+
|
|
9
|
+
def initialize(data)
|
|
10
|
+
@data = data
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def call
|
|
14
|
+
@data.each.map do |item|
|
|
15
|
+
@file_path = item.keys.first
|
|
16
|
+
@executable_row_numbers = item.values.flatten
|
|
17
|
+
previous_row_is_empty = false
|
|
18
|
+
|
|
19
|
+
html_rows = file_context.each_with_index.map do |file_row, file_row_index|
|
|
20
|
+
@file_row_index = file_row_index
|
|
21
|
+
row_executable = executable_row_numbers.include?(file_row_index + 1)
|
|
22
|
+
|
|
23
|
+
if row_executable || file_row_in_showing_range?(file_row_index)
|
|
24
|
+
previous_row_is_empty = false
|
|
25
|
+
Lecter::HtmlRow.new(
|
|
26
|
+
file_row,
|
|
27
|
+
file_row_index + 1,
|
|
28
|
+
row_executable,
|
|
29
|
+
executable_row_numbers
|
|
30
|
+
).create
|
|
31
|
+
elsif !previous_row_is_empty
|
|
32
|
+
previous_row_is_empty = true
|
|
33
|
+
ELLIPSIS + NEW_LINE
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
FileListing.new(file_path, html_rows)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
private
|
|
42
|
+
|
|
43
|
+
attr_accessor :executable_row_numbers, :file_row_index, :file_path
|
|
44
|
+
|
|
45
|
+
def file_row_in_showing_range?(_index)
|
|
46
|
+
executable_row_numbers.reduce(false) do |memo, row_number|
|
|
47
|
+
memo ||
|
|
48
|
+
(row_number - COUNT_LINES_AROUND_RUNNING_ROW - 1..
|
|
49
|
+
row_number + COUNT_LINES_AROUND_RUNNING_ROW - 1).include?(file_row_index)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def file_context
|
|
54
|
+
File.open(file_path, 'r').read.split(NEW_LINE)
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
class FileListing
|
|
59
|
+
attr_reader :file_path, :html_rows
|
|
60
|
+
|
|
61
|
+
def initialize(file_path, html_rows)
|
|
62
|
+
@file_path = file_path
|
|
63
|
+
@html_rows = html_rows
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lecter
|
|
4
|
+
class HtmlRow
|
|
5
|
+
ARROW = '-> '
|
|
6
|
+
BACKGROUND_INCLUDED_ROW = '#4a4a4a'
|
|
7
|
+
NEW_LINE_SYMBOL = "\n"
|
|
8
|
+
|
|
9
|
+
def initialize(row, row_number, row_executable, order_of_executed_lines)
|
|
10
|
+
@row = row
|
|
11
|
+
@row_number = row_number
|
|
12
|
+
@row_executable = row_executable
|
|
13
|
+
@order_of_executed_lines = order_of_executed_lines
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def create
|
|
17
|
+
"<div style='#{style}'><code>#{html_row}</code></div>"
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
attr_reader :row, :row_number, :row_executable, :order_of_executed_lines
|
|
23
|
+
|
|
24
|
+
def html_row
|
|
25
|
+
[row_number, row, row_calling_order_number].join(' ') + NEW_LINE_SYMBOL
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def row_calling_order_number
|
|
29
|
+
return unless row_executable
|
|
30
|
+
|
|
31
|
+
ARROW + order_of_executed_lines
|
|
32
|
+
.each_with_index
|
|
33
|
+
.select { |_, index| order_of_executed_lines[index] == row_number }
|
|
34
|
+
.map { |_, index| index + 1 }
|
|
35
|
+
.join(', ')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def style
|
|
39
|
+
row_executable ? "background-color: #{BACKGROUND_INCLUDED_ROW};" : nil
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/lib/lecter/rack.rb
CHANGED
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
def initialize(app)
|
|
3
|
-
@app = app
|
|
4
|
-
end
|
|
1
|
+
# frozen_string_literal: true
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if tp.path &&
|
|
13
|
-
!tp.path.include?('/app/views') &&
|
|
14
|
-
!tp.path.include?('/app/helpers') &&
|
|
15
|
-
tp.path.include?(Rails.root.to_s) &&
|
|
16
|
-
tp.method_id != :method_added &&
|
|
17
|
-
tp.defined_class != Module &&
|
|
18
|
-
tp.defined_class != Class &&
|
|
19
|
-
tp.defined_class != String &&
|
|
20
|
-
tp.defined_class != Kernel &&
|
|
21
|
-
tp.defined_class != NilClass
|
|
3
|
+
module Lecter
|
|
4
|
+
class Rack
|
|
5
|
+
def initialize(app)
|
|
6
|
+
@app = app
|
|
7
|
+
@tp = Lecter::TracePoint.new.build
|
|
8
|
+
end
|
|
22
9
|
|
|
23
|
-
|
|
24
|
-
|
|
10
|
+
def call(env)
|
|
11
|
+
if ::Rack::Request.new(env).params['lecter_enabled']
|
|
12
|
+
thread = Thread.current
|
|
13
|
+
thread[:items] = ''
|
|
14
|
+
tp.enable
|
|
15
|
+
ActionController::Base.allow_forgery_protection = false
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
status, headers, response = @app.call(env)
|
|
19
|
+
|
|
20
|
+
if tp.enabled?
|
|
21
|
+
response = [status.to_s + thread[:items]]
|
|
22
|
+
status = 200
|
|
23
|
+
headers = {}
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
[status, headers, response]
|
|
27
|
+
ensure
|
|
28
|
+
if tp.enabled?
|
|
29
|
+
tp.disable
|
|
30
|
+
ActionController::Base.allow_forgery_protection = true
|
|
31
|
+
Thread.current[:items] = nil
|
|
25
32
|
end
|
|
26
|
-
tp.enable
|
|
27
|
-
end
|
|
28
|
-
status, headers, response = @app.call(env)
|
|
29
|
-
if tp
|
|
30
|
-
status = 200
|
|
31
|
-
response = [thread[:items]]
|
|
32
33
|
end
|
|
33
34
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
attr_reader :tp
|
|
37
38
|
end
|
|
38
39
|
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lecter
|
|
4
|
+
class Requester
|
|
5
|
+
WRONG_URL_MSG = 'Wrong url'
|
|
6
|
+
|
|
7
|
+
attr_reader :lines, :error_message
|
|
8
|
+
|
|
9
|
+
def initialize(params)
|
|
10
|
+
@method = params[:method]
|
|
11
|
+
@url = params[:url]
|
|
12
|
+
@payload = params[:payload]
|
|
13
|
+
@lines = []
|
|
14
|
+
@headers = params[:headers]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def call
|
|
18
|
+
return false unless response
|
|
19
|
+
|
|
20
|
+
prepare_lines
|
|
21
|
+
rescue URI::InvalidURIError
|
|
22
|
+
@error_message = WRONG_URL_MSG
|
|
23
|
+
false
|
|
24
|
+
rescue RestClient::ExceptionWithResponse => e
|
|
25
|
+
@error_message = e.message
|
|
26
|
+
false
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
attr_accessor :method, :url, :payload, :headers
|
|
32
|
+
|
|
33
|
+
def prepare_lines
|
|
34
|
+
items.each do |item|
|
|
35
|
+
file, line_number = item.split(' ')
|
|
36
|
+
line_number = line_number.to_i
|
|
37
|
+
|
|
38
|
+
if line_belongs_to_last?(file)
|
|
39
|
+
lines.last[file] = lines.last[file] << line_number
|
|
40
|
+
else
|
|
41
|
+
lines << { file.to_s => [line_number] }
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def response
|
|
47
|
+
@response ||= RestClient::Request.execute(
|
|
48
|
+
method: method,
|
|
49
|
+
url: url,
|
|
50
|
+
payload: payload,
|
|
51
|
+
headers: headers
|
|
52
|
+
)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def items
|
|
56
|
+
@items ||= response.body[3..-1].split(';')
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def line_belongs_to_last?(file)
|
|
60
|
+
lines.last.is_a?(Hash) && lines.last.keys.first.to_s == file
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Lecter
|
|
4
|
+
class TracePoint
|
|
5
|
+
def build
|
|
6
|
+
tp = ::TracePoint.new(:line, :class, :call, :c_call, :return) do |trace_point|
|
|
7
|
+
if trace_point.path&.exclude?('/app/views') &&
|
|
8
|
+
trace_point.path&.exclude?('/app/helpers') &&
|
|
9
|
+
trace_point.path&.include?(Rails.root.to_s) &&
|
|
10
|
+
trace_point.method_id != :method_added &&
|
|
11
|
+
trace_point.defined_class != Module &&
|
|
12
|
+
trace_point.defined_class != Class &&
|
|
13
|
+
trace_point.defined_class != String &&
|
|
14
|
+
trace_point.defined_class != Kernel &&
|
|
15
|
+
trace_point.defined_class != NilClass
|
|
16
|
+
|
|
17
|
+
Thread.current[:items] += [
|
|
18
|
+
trace_point.path,
|
|
19
|
+
trace_point.lineno,
|
|
20
|
+
trace_point.defined_class,
|
|
21
|
+
trace_point.method_id,
|
|
22
|
+
trace_point.event
|
|
23
|
+
].join(' ') + ';'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
tp
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
data/lib/lecter/version.rb
CHANGED
data/lib/lecter.rb
CHANGED
|
@@ -1,16 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
require 'lecter/engine' if defined?(Rails::Engine)
|
|
4
|
+
require 'lecter/formatter_payload'
|
|
5
|
+
require 'lecter/html_generator'
|
|
6
|
+
require 'lecter/html_row'
|
|
7
|
+
require 'lecter/rack'
|
|
8
|
+
require 'lecter/railtie' if defined?(Rails::Railtie)
|
|
9
|
+
require 'lecter/requester'
|
|
10
|
+
require 'lecter/version'
|
|
11
|
+
require 'lecter/trace_point'
|
|
12
|
+
require 'lecter/formatter_headers'
|
|
6
13
|
|
|
7
|
-
|
|
14
|
+
require 'rest-client'
|
|
8
15
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
app.middleware.use Lecter::Rack
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
+
module Lecter
|
|
17
|
+
AVAILABLE_METHODS = %w[GET POST PUT PATCH DELETE].freeze
|
|
18
|
+
DEFAULT_METHOD = 'GET'
|
|
16
19
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lecter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Neodelf
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-02-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '13.0'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '13.0'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rspec
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -53,13 +53,13 @@ dependencies:
|
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '3.0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: rubocop
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">="
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
61
|
version: '0'
|
|
62
|
-
type: :
|
|
62
|
+
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
@@ -80,37 +80,65 @@ dependencies:
|
|
|
80
80
|
- - ">="
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
82
|
version: '0'
|
|
83
|
-
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: simplecov
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - '='
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 0.17.1
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - '='
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 0.17.1
|
|
97
|
+
description: The main purpose of that gem is helping developers to understand which
|
|
98
|
+
code executes by request.<br>
|
|
84
99
|
email:
|
|
85
100
|
- neodelf@gmail.com
|
|
86
101
|
executables: []
|
|
87
102
|
extensions: []
|
|
88
103
|
extra_rdoc_files: []
|
|
89
104
|
files:
|
|
105
|
+
- ".all-contributorsrc"
|
|
106
|
+
- ".circleci/config.yml"
|
|
107
|
+
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
|
108
|
+
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
|
109
|
+
- ".github/PULL_REQUEST_TEMPLATE.md"
|
|
90
110
|
- ".gitignore"
|
|
91
|
-
- ".idea/encodings.xml"
|
|
92
|
-
- ".idea/lecter.iml"
|
|
93
|
-
- ".idea/misc.xml"
|
|
94
|
-
- ".idea/modules.xml"
|
|
95
|
-
- ".idea/workspace.xml"
|
|
96
111
|
- ".rspec"
|
|
97
|
-
- ".
|
|
112
|
+
- ".rubocop.yml"
|
|
113
|
+
- CHANGELOG.md
|
|
98
114
|
- CODE_OF_CONDUCT.md
|
|
115
|
+
- CONTRIBUTING.md
|
|
99
116
|
- Gemfile
|
|
100
117
|
- Gemfile.lock
|
|
101
118
|
- LICENSE.txt
|
|
102
119
|
- README.md
|
|
103
120
|
- Rakefile
|
|
104
|
-
- app/assets/javascripts/highlight.pack.js
|
|
105
|
-
- app/assets/stylesheets/railscasts.css
|
|
106
121
|
- app/controllers/lecter/diagnosis_controller.rb
|
|
107
|
-
- app/views/lecter
|
|
108
|
-
- app/views/lecter/diagnosis/
|
|
122
|
+
- app/views/layouts/lecter.html.erb
|
|
123
|
+
- app/views/lecter/diagnosis/new.html.erb
|
|
124
|
+
- app/views/lecter/diagnosis/show.html.erb
|
|
109
125
|
- bin/console
|
|
126
|
+
- bin/rails
|
|
110
127
|
- bin/setup
|
|
128
|
+
- config/locales/en.yml
|
|
129
|
+
- config/locales/ru.yml
|
|
130
|
+
- config/routes.rb
|
|
111
131
|
- lecter.gemspec
|
|
112
132
|
- lib/lecter.rb
|
|
133
|
+
- lib/lecter/engine.rb
|
|
134
|
+
- lib/lecter/formatter_headers.rb
|
|
135
|
+
- lib/lecter/formatter_payload.rb
|
|
136
|
+
- lib/lecter/html_generator.rb
|
|
137
|
+
- lib/lecter/html_row.rb
|
|
113
138
|
- lib/lecter/rack.rb
|
|
139
|
+
- lib/lecter/railtie.rb
|
|
140
|
+
- lib/lecter/requester.rb
|
|
141
|
+
- lib/lecter/trace_point.rb
|
|
114
142
|
- lib/lecter/version.rb
|
|
115
143
|
homepage: https://github.com/neodelf/lecter
|
|
116
144
|
licenses:
|
|
@@ -118,7 +146,7 @@ licenses:
|
|
|
118
146
|
metadata:
|
|
119
147
|
allowed_push_host: https://rubygems.org
|
|
120
148
|
homepage_uri: https://github.com/neodelf/lecter
|
|
121
|
-
post_install_message:
|
|
149
|
+
post_install_message:
|
|
122
150
|
rdoc_options: []
|
|
123
151
|
require_paths:
|
|
124
152
|
- lib
|
|
@@ -133,9 +161,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
133
161
|
- !ruby/object:Gem::Version
|
|
134
162
|
version: '0'
|
|
135
163
|
requirements: []
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
signing_key:
|
|
164
|
+
rubygems_version: 3.0.8
|
|
165
|
+
signing_key:
|
|
139
166
|
specification_version: 4
|
|
140
|
-
summary:
|
|
167
|
+
summary: Show executable code by request.
|
|
141
168
|
test_files: []
|
data/.idea/encodings.xml
DELETED
data/.idea/lecter.iml
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<module type="RUBY_MODULE" version="4">
|
|
3
|
-
<component name="ModuleRunConfigurationManager">
|
|
4
|
-
<shared />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="NewModuleRootManager">
|
|
7
|
-
<content url="file://$MODULE_DIR$" />
|
|
8
|
-
<orderEntry type="jdk" jdkName="RVM: ruby-2.5.5" jdkType="RUBY_SDK" />
|
|
9
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
10
|
-
<orderEntry type="library" scope="PROVIDED" name="actionpack (v5.2.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
11
|
-
<orderEntry type="library" scope="PROVIDED" name="actionview (v5.2.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
12
|
-
<orderEntry type="library" scope="PROVIDED" name="activesupport (v5.2.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
13
|
-
<orderEntry type="library" scope="PROVIDED" name="builder (v3.2.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
14
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.0.2, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
15
|
-
<orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.5, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
16
|
-
<orderEntry type="library" scope="PROVIDED" name="crass (v1.0.4, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
17
|
-
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
18
|
-
<orderEntry type="library" scope="PROVIDED" name="domain_name (v0.5.20190701, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
19
|
-
<orderEntry type="library" scope="PROVIDED" name="erubi (v1.8.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
20
|
-
<orderEntry type="library" scope="PROVIDED" name="http-cookie (v1.0.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
21
|
-
<orderEntry type="library" scope="PROVIDED" name="i18n (v1.6.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
22
|
-
<orderEntry type="library" scope="PROVIDED" name="loofah (v2.2.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
23
|
-
<orderEntry type="library" scope="PROVIDED" name="method_source (v0.9.2, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
24
|
-
<orderEntry type="library" scope="PROVIDED" name="mime-types (v3.2.2, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
25
|
-
<orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2019.0331, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
26
|
-
<orderEntry type="library" scope="PROVIDED" name="mini_portile2 (v2.4.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
27
|
-
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.11.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
28
|
-
<orderEntry type="library" scope="PROVIDED" name="netrc (v0.11.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
29
|
-
<orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.10.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
30
|
-
<orderEntry type="library" scope="PROVIDED" name="rack (v2.0.7, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
31
|
-
<orderEntry type="library" scope="PROVIDED" name="rack-test (v1.1.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
32
|
-
<orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.0.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
33
|
-
<orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.0.4, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
34
|
-
<orderEntry type="library" scope="PROVIDED" name="railties (v5.2.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
35
|
-
<orderEntry type="library" scope="PROVIDED" name="rake (v10.5.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
36
|
-
<orderEntry type="library" scope="PROVIDED" name="rest-client (v2.0.2, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
37
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.8.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
38
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.8.2, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
39
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.8.4, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
40
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.8.1, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
41
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.8.2, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
42
|
-
<orderEntry type="library" scope="PROVIDED" name="slim (v4.0.1, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
43
|
-
<orderEntry type="library" scope="PROVIDED" name="slim-rails (v3.2.0, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
44
|
-
<orderEntry type="library" scope="PROVIDED" name="temple (v0.8.1, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
45
|
-
<orderEntry type="library" scope="PROVIDED" name="thor (v0.20.3, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
46
|
-
<orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
47
|
-
<orderEntry type="library" scope="PROVIDED" name="tilt (v2.0.9, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
48
|
-
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.5, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
49
|
-
<orderEntry type="library" scope="PROVIDED" name="unf (v0.1.4, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
50
|
-
<orderEntry type="library" scope="PROVIDED" name="unf_ext (v0.0.7.6, RVM: ruby-2.5.5) [gem]" level="application" />
|
|
51
|
-
</component>
|
|
52
|
-
</module>
|
data/.idea/misc.xml
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<project version="4">
|
|
3
|
-
<component name="JavaScriptSettings">
|
|
4
|
-
<option name="languageLevel" value="ES6" />
|
|
5
|
-
</component>
|
|
6
|
-
<component name="ProjectRootManager" version="2" project-jdk-name="RVM: ruby-2.5.1" project-jdk-type="RUBY_SDK" />
|
|
7
|
-
</project>
|
data/.idea/modules.xml
DELETED