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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/.all-contributorsrc +26 -0
  3. data/.circleci/config.yml +86 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. data/.github/PULL_REQUEST_TEMPLATE.md +16 -0
  7. data/.gitignore +2 -0
  8. data/.rubocop.yml +25 -0
  9. data/CHANGELOG.md +20 -0
  10. data/CONTRIBUTING.md +35 -0
  11. data/Gemfile +3 -2
  12. data/Gemfile.lock +37 -69
  13. data/LICENSE.txt +1 -1
  14. data/README.md +160 -35
  15. data/Rakefile +5 -3
  16. data/app/controllers/lecter/diagnosis_controller.rb +40 -54
  17. data/app/views/layouts/lecter.html.erb +258 -0
  18. data/app/views/lecter/diagnosis/new.html.erb +61 -0
  19. data/app/views/lecter/diagnosis/show.html.erb +54 -0
  20. data/bin/console +1 -0
  21. data/bin/rails +16 -0
  22. data/config/locales/en.yml +16 -0
  23. data/config/locales/ru.yml +16 -0
  24. data/config/routes.rb +7 -0
  25. data/lecter.gemspec +9 -5
  26. data/lib/lecter/engine.rb +7 -0
  27. data/lib/lecter/formatter_headers.rb +26 -0
  28. data/lib/lecter/formatter_payload.rb +35 -0
  29. data/lib/lecter/html_generator.rb +66 -0
  30. data/lib/lecter/html_row.rb +42 -0
  31. data/lib/lecter/rack.rb +32 -31
  32. data/lib/lecter/railtie.rb +9 -0
  33. data/lib/lecter/requester.rb +63 -0
  34. data/lib/lecter/trace_point.rb +30 -0
  35. data/lib/lecter/version.rb +3 -1
  36. data/lib/lecter.rb +15 -12
  37. metadata +50 -23
  38. data/.idea/encodings.xml +0 -6
  39. data/.idea/lecter.iml +0 -52
  40. data/.idea/misc.xml +0 -7
  41. data/.idea/modules.xml +0 -8
  42. data/.idea/workspace.xml +0 -857
  43. data/.travis.yml +0 -7
  44. data/app/assets/javascripts/highlight.pack.js +0 -2
  45. data/app/assets/stylesheets/railscasts.css +0 -106
  46. data/app/views/lecter/diagnosis/new.erb +0 -18
  47. 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
- class Lecter::Rack
2
- def initialize(app)
3
- @app = app
4
- end
1
+ # frozen_string_literal: true
5
2
 
6
- def call(env)
7
- request = Rack::Request.new(env)
8
- if request.params['lecter_analysis']
9
- thread = Thread.current
10
- thread[:items] = ''
11
- tp = TracePoint.new(:line, :class, :call, :c_call, :return) do |tp|
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
- thread[:items] += [tp.path, tp.lineno, tp.defined_class, tp.method_id, tp.event].join(' ') + ';'
24
- end
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
- [status, headers, response]
35
- ensure
36
- tp.disable if tp
35
+ private
36
+
37
+ attr_reader :tp
37
38
  end
38
39
  end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Lecter
4
+ class LecterRailtie < Rails::Railtie
5
+ initializer 'lecter.configure_rails_initialization' do |app|
6
+ app.middleware.use Lecter::Rack
7
+ end
8
+ end
9
+ 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
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Lecter
2
- VERSION = '0.1.3'
4
+ VERSION = '0.2.0'
3
5
  end
data/lib/lecter.rb CHANGED
@@ -1,16 +1,19 @@
1
- require "lecter/version"
1
+ # frozen_string_literal: true
2
2
 
3
- module Lecter
4
- class Engine < ::Rails::Engine
5
- end
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
- autoload :Rack, 'lecter/rack'
14
+ require 'rest-client'
8
15
 
9
- if defined? Rails::Railtie
10
- class LecterRailtie < Rails::Railtie
11
- initializer 'lecter.configure_rails_initialization' do |app|
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.1.3
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: 2019-07-13 00:00:00.000000000 Z
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: '10.0'
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: '10.0'
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: slim-rails
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: :runtime
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
- description: Write a longer description or delete this line.
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
- - ".travis.yml"
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/diagnosis/new.erb
108
- - app/views/lecter/diagnosis/show.slim
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
- rubyforge_project:
137
- rubygems_version: 2.7.9
138
- signing_key:
164
+ rubygems_version: 3.0.8
165
+ signing_key:
139
166
  specification_version: 4
140
- summary: Write a short summary, because RubyGems requires one.
167
+ summary: Show executable code by request.
141
168
  test_files: []
data/.idea/encodings.xml DELETED
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="Encoding">
4
- <file url="PROJECT" charset="UTF-8" />
5
- </component>
6
- </project>
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
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/lecter.iml" filepath="$PROJECT_DIR$/.idea/lecter.iml" />
6
- </modules>
7
- </component>
8
- </project>