lesli_testing 1.0.0 → 1.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/lib/lesli_testing/config.rb +0 -9
- data/lib/lesli_testing/coverage.rb +9 -8
- data/lib/lesli_testing/loader.rb +13 -19
- data/lib/lesli_testing/reporters/cli_reporter.rb +125 -0
- data/lib/lesli_testing/version.rb +2 -2
- data/lib/minitest/lesli_testing_plugin.rb +11 -0
- metadata +24 -69
- data/.editorconfig +0 -20
- data/Rakefile +0 -8
- data/docs/images/testing-logo.svg +0 -21
- data/lesli.txt +0 -28
- data/sig/lesli_testing.rbs +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a1a8249474087d791bf470b3fe1b8f7e5aab1eaf16482f474157c1826657debc
|
|
4
|
+
data.tar.gz: fde6fbaf49ef6b37ce71af546a5d8e742da43c7dbd4ac672b99ad535270da0ae
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ea2738aa8c621328badb95da25f722003b6439d997141fcaf228c0faab6680df7f4cd6c32aef9335ecf770c764d1c86de66db3511675276b86828735972dca68
|
|
7
|
+
data.tar.gz: b3cd476aaa207022654988df44d4f0515acab88a8b627064c98454655c18a545a1a28e5ac6459f048961092caad2d64a60da51ad22188dfd7a2f014c6939a6b4
|
data/lib/lesli_testing/config.rb
CHANGED
|
@@ -33,9 +33,6 @@ Building a better future, one line of code at a time.
|
|
|
33
33
|
module LesliTesting
|
|
34
34
|
module Config
|
|
35
35
|
def self.apply(engine_module = nil)
|
|
36
|
-
|
|
37
|
-
# Workaround for color_pound_spec_reporter
|
|
38
|
-
Object.const_set(:MiniTest, Minitest) unless defined?(MiniTest)
|
|
39
36
|
|
|
40
37
|
# Load dummy app for unit testing
|
|
41
38
|
# Run tests across all the engines: LESLI_INTEGRATION_TEST=true rails test
|
|
@@ -61,12 +58,6 @@ module LesliTesting
|
|
|
61
58
|
ActiveSupport::TestCase.fixtures :all
|
|
62
59
|
end
|
|
63
60
|
end
|
|
64
|
-
|
|
65
|
-
Minitest::Reporters.use!([
|
|
66
|
-
Minitest::Reporters::DefaultReporter.new(color: true),
|
|
67
|
-
Minitest::Reporters::JUnitReporter.new("coverage/reports"),
|
|
68
|
-
ColorPoundSpecReporter.new
|
|
69
|
-
])
|
|
70
61
|
end
|
|
71
62
|
end
|
|
72
63
|
end
|
|
@@ -44,29 +44,30 @@ module LesliTesting
|
|
|
44
44
|
# Define the limit to allow missing tested code
|
|
45
45
|
SimpleCov::Formatter::Console.missing_len = 10
|
|
46
46
|
|
|
47
|
-
SimpleCov.start do
|
|
48
|
-
|
|
47
|
+
SimpleCov.start "rails" do
|
|
48
|
+
command_name engine_name
|
|
49
49
|
|
|
50
50
|
# Standard filters for all Lesli engines
|
|
51
51
|
add_filter [
|
|
52
52
|
"/app/assets",
|
|
53
53
|
"/app/jobs",
|
|
54
54
|
"/config",
|
|
55
|
+
"/docs",
|
|
55
56
|
"/db",
|
|
56
|
-
"/lib
|
|
57
|
+
"/lib",
|
|
57
58
|
"/test",
|
|
59
|
+
"/test/dummy/",
|
|
58
60
|
"/vendor"
|
|
59
61
|
]
|
|
60
62
|
|
|
61
63
|
# Add your groups
|
|
62
64
|
add_group "Models", "app/models"
|
|
63
|
-
add_group "
|
|
64
|
-
add_group "Validators", "app/validators"
|
|
65
|
+
add_group "Services", "app/services"
|
|
65
66
|
add_group "Controllers", "app/controllers"
|
|
66
|
-
end
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
# Minimum expected coverage percentage
|
|
69
|
+
minimum_coverage min_coverage
|
|
70
|
+
end
|
|
70
71
|
end
|
|
71
72
|
end
|
|
72
73
|
end
|
data/lib/lesli_testing/loader.rb
CHANGED
|
@@ -37,43 +37,37 @@ require "simplecov-cobertura"
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
# Load test frameworks
|
|
40
|
-
|
|
41
|
-
require "
|
|
40
|
+
require_relative "reporters/cli_reporter"
|
|
41
|
+
require "minitest/lesli_testing_plugin"
|
|
42
42
|
|
|
43
|
+
# Force Minitest to know about Lesli Minitest reporter plugin
|
|
44
|
+
unless Minitest.extensions.include?("lesli_testing")
|
|
45
|
+
Minitest.register_plugin("lesli_testing")
|
|
46
|
+
end
|
|
43
47
|
|
|
44
48
|
# Load test configuration and test helper modules
|
|
45
|
-
require_relative "config"
|
|
46
49
|
require_relative "coverage"
|
|
47
50
|
require_relative "testers"
|
|
51
|
+
require_relative "config"
|
|
48
52
|
|
|
49
53
|
module LesliTesting
|
|
50
54
|
class Error < StandardError; end
|
|
51
55
|
|
|
52
56
|
class << self
|
|
53
57
|
|
|
54
|
-
def
|
|
58
|
+
def start_coverage!(engine_module = nil, options = {})
|
|
59
|
+
return if defined?(SimpleCov) && SimpleCov.running
|
|
55
60
|
|
|
56
61
|
name = engine_module ? engine_module.name : "RailsApp"
|
|
57
62
|
|
|
58
|
-
#
|
|
59
|
-
show_welcome_message
|
|
60
|
-
|
|
61
|
-
# 2. Start Coverage
|
|
63
|
+
# Start Coverage
|
|
62
64
|
LesliTesting::Coverage.start(name, options[:min_coverage] || 40)
|
|
63
|
-
|
|
64
|
-
# 3. Apply Minitest/Reporters/Paths
|
|
65
|
-
LesliTesting::Config.apply(engine_module)
|
|
66
65
|
end
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
def configure_tests!(engine_module = nil)
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
"Running Lesli tests...",
|
|
73
|
-
"For a better result run test over a clean database",
|
|
74
|
-
"You can use: rake dev:db:reset")
|
|
75
|
-
|
|
76
|
-
L2.br
|
|
69
|
+
# Apply Minitest/Reporters/Paths
|
|
70
|
+
LesliTesting::Config.apply(engine_module)
|
|
77
71
|
end
|
|
78
72
|
end
|
|
79
73
|
end
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
|
|
2
|
+
# lib/lesli_testing/reporters/cli_reporter.rb
|
|
3
|
+
require "minitest"
|
|
4
|
+
|
|
5
|
+
module LesliTesting
|
|
6
|
+
module Reporters
|
|
7
|
+
class CliReporter < Minitest::StatisticsReporter
|
|
8
|
+
def start
|
|
9
|
+
super
|
|
10
|
+
Termline.m(
|
|
11
|
+
Termline::Style.colorize(" Running Lesli tests...", :blue),
|
|
12
|
+
Termline::Style.colorize(" -> For a better result run test over a clean database", :blue),
|
|
13
|
+
Termline::Style.colorize(" -> You can use: rake dev:db:reset", :blue)
|
|
14
|
+
)
|
|
15
|
+
Termline.br
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def record(test)
|
|
19
|
+
super
|
|
20
|
+
|
|
21
|
+
assert_color = :green
|
|
22
|
+
assert_color = :yellow if test.assertions < 5
|
|
23
|
+
assert_color = :red if test.assertions < 2
|
|
24
|
+
|
|
25
|
+
parts = []
|
|
26
|
+
parts << Termline::Style.colorize('['+Time.now.strftime('%H:%M:%S:%L')+']', :gray)
|
|
27
|
+
|
|
28
|
+
case test.result_code
|
|
29
|
+
when "."
|
|
30
|
+
parts << Termline::Style.colorize("PASS", :green)
|
|
31
|
+
when "F"
|
|
32
|
+
parts << Termline::Style.colorize("FAIL", :red)
|
|
33
|
+
when "E"
|
|
34
|
+
parts << Termline::Style.colorize("ERROR", :red)
|
|
35
|
+
when "S"
|
|
36
|
+
parts << Termline::Style.colorize("SKIP", :yellow)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
parts << '::'
|
|
40
|
+
parts << Termline::Style.colorize(test.klass, :blue)
|
|
41
|
+
parts << '->'
|
|
42
|
+
parts << Termline::Style.colorize(test.name, :skyblue)
|
|
43
|
+
parts << Termline::Style.colorize("(#{ test.assertions} asserts)", assert_color)
|
|
44
|
+
parts << Termline::Style.colorize("#{"(%.2fs)" % test.time}", :red) if test.time > 1
|
|
45
|
+
|
|
46
|
+
puts(parts.compact.join(" ").strip)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def report
|
|
50
|
+
super
|
|
51
|
+
|
|
52
|
+
total_tests = count.to_i
|
|
53
|
+
total_failures = failures.to_i
|
|
54
|
+
total_errors = errors.to_i
|
|
55
|
+
total_skips = skips.to_i
|
|
56
|
+
total_assertions = assertions.to_i
|
|
57
|
+
duration = total_time.to_f
|
|
58
|
+
|
|
59
|
+
passed = total_tests - total_failures - total_errors - total_skips
|
|
60
|
+
success_rate = total_tests.zero? ? 0 : ((passed.to_f / total_tests) * 100).round(1)
|
|
61
|
+
status = (total_failures.zero? && total_errors.zero?) ? "PASS" : "FAIL"
|
|
62
|
+
|
|
63
|
+
Termline.br 2
|
|
64
|
+
|
|
65
|
+
status_color = :blue
|
|
66
|
+
status_color = :red if status == 'FAIL'
|
|
67
|
+
|
|
68
|
+
failures_color = :blue
|
|
69
|
+
failures_color = :red if total_failures > 0
|
|
70
|
+
|
|
71
|
+
Termline::Msg.builder(status, tag:'STATUS . . . . . . . :', color: status_color, timestamp:nil)
|
|
72
|
+
Termline::Msg.builder(total_tests, tag:'TESTS. . . . . . . . :', color: :blue, timestamp:nil)
|
|
73
|
+
Termline::Msg.builder(passed, tag:'PASSED . . . . . . . :', color: :blue, timestamp:nil)
|
|
74
|
+
Termline::Msg.builder(total_failures, tag:'FAILURES . . . . . . :', color: failures_color, timestamp:nil)
|
|
75
|
+
Termline::Msg.builder(total_errors, tag:'ERRORS . . . . . . . :', color: :blue, timestamp:nil)
|
|
76
|
+
Termline::Msg.builder(total_skips, tag:'SKIPPED. . . . . . . :', color: :blue, timestamp:nil)
|
|
77
|
+
Termline::Msg.builder(total_assertions, tag:'ASSERTIONS . . . . . :', color: :blue, timestamp:nil)
|
|
78
|
+
Termline::Msg.builder("#{success_rate}%", tag:'SUCCESS RATE . . . . :', color: failures_color, timestamp:nil)
|
|
79
|
+
Termline::Msg.builder(format("%.2fs", duration),tag:'TIME . . . . . . . . :', color: :blue, timestamp:nil)
|
|
80
|
+
|
|
81
|
+
Termline.br 2
|
|
82
|
+
|
|
83
|
+
if status == "PASS"
|
|
84
|
+
Termline.success("Test suite passed")
|
|
85
|
+
else
|
|
86
|
+
Termline.danger("Test suite failed", tag:'FAILURE')
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
Termline.br
|
|
90
|
+
|
|
91
|
+
print_failure_details if total_failures.positive? || total_errors.positive?
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
private
|
|
96
|
+
|
|
97
|
+
def print_failure_details
|
|
98
|
+
failed_results = Array(results).select { |result| result.failure }
|
|
99
|
+
|
|
100
|
+
return if failed_results.empty?
|
|
101
|
+
|
|
102
|
+
failed_results.each_with_index do |result, index|
|
|
103
|
+
failure = result.failure
|
|
104
|
+
failure_tag = failure.is_a?(Minitest::Assertion) ? "FAILURE" : "ERROR"
|
|
105
|
+
failure_msg = "#{result.class}##{result.name} (#{result.assertions} asserts)"
|
|
106
|
+
|
|
107
|
+
Termline.br
|
|
108
|
+
Termline.line(6)
|
|
109
|
+
Termline.br
|
|
110
|
+
|
|
111
|
+
if failure.is_a?(Minitest::Assertion)
|
|
112
|
+
Termline::Msg.builder(failure_msg, tag: " #{Termline::Style.icon(:error)} #{failure_tag} #{index + 1}:", color: :red, timestamp:nil)
|
|
113
|
+
puts " #{Termline::Style.colorize('Location:', :yellow)} #{result.source_location.first} (line: #{result.source_location.second})"
|
|
114
|
+
puts " #{Termline::Style.colorize(result.failure.message.to_s.lines.first.strip, :green)}"
|
|
115
|
+
puts " #{Termline::Style.colorize(result.failure.message.to_s.lines.second.strip, :red)}"
|
|
116
|
+
else
|
|
117
|
+
Termline.warning(failure_msg, tag: failure_tag)
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
Termline.br
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require "lesli_testing/reporters/cli_reporter"
|
|
2
|
+
|
|
3
|
+
module Minitest
|
|
4
|
+
def self.plugin_lesli_testing_options(opts, options)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
def self.plugin_lesli_testing_init(options)
|
|
8
|
+
reporter.reporters.clear if reporter.respond_to?(:reporters)
|
|
9
|
+
reporter << LesliTesting::Reporters::CliReporter.new($stdout, options)
|
|
10
|
+
end
|
|
11
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: lesli_testing
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- The Lesli Development Team
|
|
@@ -10,131 +10,89 @@ cert_chain: []
|
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
|
-
name: minitest
|
|
14
|
-
requirement: !ruby/object:Gem::Requirement
|
|
15
|
-
requirements:
|
|
16
|
-
- - ">="
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: '0'
|
|
19
|
-
type: :runtime
|
|
20
|
-
prerelease: false
|
|
21
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
-
requirements:
|
|
23
|
-
- - ">="
|
|
24
|
-
- !ruby/object:Gem::Version
|
|
25
|
-
version: '0'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: color_pound_spec_reporter
|
|
13
|
+
name: minitest
|
|
28
14
|
requirement: !ruby/object:Gem::Requirement
|
|
29
15
|
requirements:
|
|
30
|
-
- - "
|
|
16
|
+
- - "~>"
|
|
31
17
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
18
|
+
version: 6.0.0
|
|
33
19
|
type: :runtime
|
|
34
20
|
prerelease: false
|
|
35
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
22
|
requirements:
|
|
37
|
-
- - "
|
|
23
|
+
- - "~>"
|
|
38
24
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
25
|
+
version: 6.0.0
|
|
40
26
|
- !ruby/object:Gem::Dependency
|
|
41
27
|
name: simplecov
|
|
42
28
|
requirement: !ruby/object:Gem::Requirement
|
|
43
29
|
requirements:
|
|
44
|
-
- -
|
|
30
|
+
- - "~>"
|
|
45
31
|
- !ruby/object:Gem::Version
|
|
46
32
|
version: 0.22.0
|
|
47
33
|
type: :runtime
|
|
48
34
|
prerelease: false
|
|
49
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
36
|
requirements:
|
|
51
|
-
- -
|
|
37
|
+
- - "~>"
|
|
52
38
|
- !ruby/object:Gem::Version
|
|
53
39
|
version: 0.22.0
|
|
54
40
|
- !ruby/object:Gem::Dependency
|
|
55
41
|
name: simplecov-console
|
|
56
42
|
requirement: !ruby/object:Gem::Requirement
|
|
57
43
|
requirements:
|
|
58
|
-
- -
|
|
44
|
+
- - "~>"
|
|
59
45
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 0.9.
|
|
46
|
+
version: 0.9.0
|
|
61
47
|
type: :runtime
|
|
62
48
|
prerelease: false
|
|
63
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
50
|
requirements:
|
|
65
|
-
- -
|
|
51
|
+
- - "~>"
|
|
66
52
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: 0.9.
|
|
53
|
+
version: 0.9.0
|
|
68
54
|
- !ruby/object:Gem::Dependency
|
|
69
55
|
name: simplecov-cobertura
|
|
70
56
|
requirement: !ruby/object:Gem::Requirement
|
|
71
57
|
requirements:
|
|
72
|
-
- - "
|
|
58
|
+
- - "~>"
|
|
73
59
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
60
|
+
version: 3.1.0
|
|
75
61
|
type: :runtime
|
|
76
62
|
prerelease: false
|
|
77
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
64
|
requirements:
|
|
79
|
-
- - "
|
|
65
|
+
- - "~>"
|
|
80
66
|
- !ruby/object:Gem::Version
|
|
81
|
-
version:
|
|
67
|
+
version: 3.1.0
|
|
82
68
|
- !ruby/object:Gem::Dependency
|
|
83
69
|
name: brakeman
|
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
|
85
|
-
requirements:
|
|
86
|
-
- - ">="
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
88
|
-
version: '0'
|
|
89
|
-
type: :runtime
|
|
90
|
-
prerelease: false
|
|
91
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
-
requirements:
|
|
93
|
-
- - ">="
|
|
94
|
-
- !ruby/object:Gem::Version
|
|
95
|
-
version: '0'
|
|
96
|
-
- !ruby/object:Gem::Dependency
|
|
97
|
-
name: minitest
|
|
98
70
|
requirement: !ruby/object:Gem::Requirement
|
|
99
71
|
requirements:
|
|
100
72
|
- - "~>"
|
|
101
73
|
- !ruby/object:Gem::Version
|
|
102
|
-
version:
|
|
74
|
+
version: 8.0.0
|
|
103
75
|
type: :runtime
|
|
104
76
|
prerelease: false
|
|
105
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
78
|
requirements:
|
|
107
79
|
- - "~>"
|
|
108
80
|
- !ruby/object:Gem::Version
|
|
109
|
-
version:
|
|
81
|
+
version: 8.0.0
|
|
110
82
|
- !ruby/object:Gem::Dependency
|
|
111
83
|
name: letter_opener
|
|
112
84
|
requirement: !ruby/object:Gem::Requirement
|
|
113
85
|
requirements:
|
|
114
|
-
- - "
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0'
|
|
117
|
-
type: :runtime
|
|
118
|
-
prerelease: false
|
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
-
requirements:
|
|
121
|
-
- - ">="
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
123
|
-
version: '0'
|
|
124
|
-
- !ruby/object:Gem::Dependency
|
|
125
|
-
name: propshaft
|
|
126
|
-
requirement: !ruby/object:Gem::Requirement
|
|
127
|
-
requirements:
|
|
128
|
-
- - ">="
|
|
86
|
+
- - "~>"
|
|
129
87
|
- !ruby/object:Gem::Version
|
|
130
|
-
version:
|
|
88
|
+
version: 1.10.0
|
|
131
89
|
type: :runtime
|
|
132
90
|
prerelease: false
|
|
133
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
134
92
|
requirements:
|
|
135
|
-
- - "
|
|
93
|
+
- - "~>"
|
|
136
94
|
- !ruby/object:Gem::Version
|
|
137
|
-
version:
|
|
95
|
+
version: 1.10.0
|
|
138
96
|
description: "Core testing utilities for the Lesli Platform, providing standardized
|
|
139
97
|
Minitest configuration, \ncoverage setup, and shared testing conventions across
|
|
140
98
|
engines and applications.\n"
|
|
@@ -144,20 +102,17 @@ executables: []
|
|
|
144
102
|
extensions: []
|
|
145
103
|
extra_rdoc_files: []
|
|
146
104
|
files:
|
|
147
|
-
- ".editorconfig"
|
|
148
|
-
- Rakefile
|
|
149
|
-
- docs/images/testing-logo.svg
|
|
150
|
-
- lesli.txt
|
|
151
105
|
- lib/lesli_testing.rb
|
|
152
106
|
- lib/lesli_testing/config.rb
|
|
153
107
|
- lib/lesli_testing/coverage.rb
|
|
154
108
|
- lib/lesli_testing/helpers/response_integration_helper.rb
|
|
155
109
|
- lib/lesli_testing/loader.rb
|
|
110
|
+
- lib/lesli_testing/reporters/cli_reporter.rb
|
|
156
111
|
- lib/lesli_testing/testers.rb
|
|
157
112
|
- lib/lesli_testing/version.rb
|
|
113
|
+
- lib/minitest/lesli_testing_plugin.rb
|
|
158
114
|
- license
|
|
159
115
|
- readme.md
|
|
160
|
-
- sig/lesli_testing.rbs
|
|
161
116
|
homepage: https://www.lesli.dev/
|
|
162
117
|
licenses:
|
|
163
118
|
- GPL-3.0-or-later
|
data/.editorconfig
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Lesli
|
|
2
|
-
# For more information read the license file including with this software.
|
|
3
|
-
|
|
4
|
-
# top-most EditorConfig file
|
|
5
|
-
root = true
|
|
6
|
-
|
|
7
|
-
# Unix-style newlines with a newline ending every file
|
|
8
|
-
[*]
|
|
9
|
-
end_of_line = lf
|
|
10
|
-
insert_final_newline = true
|
|
11
|
-
|
|
12
|
-
[*.{rake,rb,ts,vue,js,json,yml,scss,styl,css,html,haml,erb,md,thor,mjml,.gemspec,.template}]
|
|
13
|
-
indent_style = space
|
|
14
|
-
indent_size = 4
|
|
15
|
-
charset = utf-8
|
|
16
|
-
|
|
17
|
-
[.github/*.{yml}]
|
|
18
|
-
indent_size = 2
|
|
19
|
-
|
|
20
|
-
# EditorConfig is awesome: https://EditorConfig.org
|
data/Rakefile
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="none">
|
|
2
|
-
<rect x="64" y="20" width="320" height="420" rx="20" fill="#E2E8F0" />
|
|
3
|
-
|
|
4
|
-
<rect x="110" y="80" width="230" height="15" rx="7.5" fill="#475569" />
|
|
5
|
-
<rect x="110" y="115" width="230" height="15" rx="7.5" fill="#475569" />
|
|
6
|
-
<rect x="110" y="150" width="120" height="15" rx="7.5" fill="#475569" />
|
|
7
|
-
|
|
8
|
-
<rect x="90" y="210" width="85" height="85" rx="12" fill="#A855F7" />
|
|
9
|
-
<path d="M110 252 l15 15 l30 -30" stroke="#fff" stroke-width="12" fill="none" stroke-linecap="round" stroke-linejoin="round" />
|
|
10
|
-
<rect x="200" y="225" width="120" height="12" rx="6" fill="#475569" />
|
|
11
|
-
<rect x="200" y="255" width="80" height="12" rx="6" fill="#475569" />
|
|
12
|
-
|
|
13
|
-
<rect x="90" y="325" width="85" height="85" rx="12" fill="#22C55E" />
|
|
14
|
-
<path d="M110 367 l15 15 l30 -30" stroke="#fff" stroke-width="12" fill="none" stroke-linecap="round" stroke-linejoin="round" />
|
|
15
|
-
<rect x="200" y="340" width="120" height="12" rx="6" fill="#475569" />
|
|
16
|
-
<rect x="200" y="370" width="80" height="12" rx="6" fill="#475569" />
|
|
17
|
-
|
|
18
|
-
<path d="M305 230 h110 a15 15 0 0 1 15 15 v10 a15 15 0 0 1 -15 15 h-110 a15 15 0 0 1 -15 -15 v-10 a15 15 0 0 1 15 -15" fill="#3B82F6" />
|
|
19
|
-
<path d="M320 270 v150 a50 50 0 0 0 100 0 v-150" fill="#60A5FA" />
|
|
20
|
-
<rect x="340" y="300" width="60" height="110" rx="30" fill="#EAB308" />
|
|
21
|
-
</svg>
|
data/lesli.txt
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
Lesli
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025, Lesli Technologies, S. A.
|
|
4
|
-
|
|
5
|
-
This program is free software: you can redistribute it and/or modify
|
|
6
|
-
it under the terms of the GNU General Public License as published by
|
|
7
|
-
the Free Software Foundation, either version 3 of the License, or
|
|
8
|
-
(at your option) any later version.
|
|
9
|
-
|
|
10
|
-
This program is distributed in the hope that it will be useful,
|
|
11
|
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
-
GNU General Public License for more details.
|
|
14
|
-
|
|
15
|
-
You should have received a copy of the GNU General Public License
|
|
16
|
-
along with this program. If not, see http://www.gnu.org/licenses/.
|
|
17
|
-
|
|
18
|
-
Lesli · Ruby on Rails SaaS Development Framework.
|
|
19
|
-
|
|
20
|
-
Made with ♥ by LesliTech
|
|
21
|
-
Building a better future, one line of code at a time.
|
|
22
|
-
|
|
23
|
-
@contact hello@lesli.tech
|
|
24
|
-
@website https://www.lesli.tech
|
|
25
|
-
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
|
26
|
-
|
|
27
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
|
28
|
-
// ·
|
data/sig/lesli_testing.rbs
DELETED