light-services 2.0.0.beta1 → 2.0.0.rc4
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/.gitignore +9 -1
- data/Gemfile.lock +58 -57
- data/lib/light/services/base.rb +36 -5
- data/lib/light/services/base_with_context.rb +4 -3
- data/lib/light/services/collection/base.rb +8 -0
- data/lib/light/services/messages.rb +7 -10
- data/lib/light/services/settings/step.rb +18 -3
- data/lib/light/services/version.rb +1 -1
- metadata +2 -8
- data/.idea/.gitignore +0 -8
- data/.idea/inspectionProfiles/Project_Default.xml +0 -6
- data/.idea/light-services.iml +0 -53
- data/.idea/misc.xml +0 -7
- data/.idea/modules.xml +0 -8
- data/.idea/vcs.xml +0 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0cb56d628d4f4fa27faee797fb1292542a4804441b51bbad04063629ad85bf1a
|
|
4
|
+
data.tar.gz: 30ceeeed2d98b8e78d7d1ebe8d3aaee614d6f320a7038931eae2bcceb5518a69
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '0987294172814178aeec11f380433a361e1e469806958e1c6e12dc7465b9a166af58506531ee99c8d39ec78a45a57968fbd67973b10c45ee792ac7796ca0a4bc'
|
|
7
|
+
data.tar.gz: 63b6d21e02e68e93487f177a0096b341f55398b05a2876100e2c729eee10c33b75284e1f5a433038e9e431c60bf4296c5c477544b19938994b575e0dff4aa8b4
|
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,85 +1,86 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
light-services (2.0.0.
|
|
4
|
+
light-services (2.0.0.rc3)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
activemodel (6.
|
|
10
|
-
activesupport (= 6.
|
|
11
|
-
activerecord (6.
|
|
12
|
-
activemodel (= 6.
|
|
13
|
-
activesupport (= 6.
|
|
14
|
-
activesupport (6.
|
|
9
|
+
activemodel (6.1.4)
|
|
10
|
+
activesupport (= 6.1.4)
|
|
11
|
+
activerecord (6.1.4)
|
|
12
|
+
activemodel (= 6.1.4)
|
|
13
|
+
activesupport (= 6.1.4)
|
|
14
|
+
activesupport (6.1.4)
|
|
15
15
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
16
|
-
i18n (>=
|
|
17
|
-
minitest (
|
|
18
|
-
tzinfo (~>
|
|
19
|
-
zeitwerk (~> 2.
|
|
20
|
-
ast (2.4.
|
|
21
|
-
codecov (0.1.
|
|
16
|
+
i18n (>= 1.6, < 2)
|
|
17
|
+
minitest (>= 5.1)
|
|
18
|
+
tzinfo (~> 2.0)
|
|
19
|
+
zeitwerk (~> 2.3)
|
|
20
|
+
ast (2.4.2)
|
|
21
|
+
codecov (0.1.21)
|
|
22
22
|
json
|
|
23
23
|
simplecov
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
database_cleaner (1.
|
|
27
|
-
database_cleaner-active_record (1.8.0)
|
|
24
|
+
concurrent-ruby (1.1.9)
|
|
25
|
+
database_cleaner (1.99.0)
|
|
26
|
+
database_cleaner-active_record (1.99.0)
|
|
28
27
|
activerecord
|
|
29
|
-
database_cleaner (~> 1.
|
|
30
|
-
diff-lcs (1.4.
|
|
31
|
-
docile (1.
|
|
32
|
-
i18n (1.8.
|
|
28
|
+
database_cleaner (~> 1.99.0)
|
|
29
|
+
diff-lcs (1.4.4)
|
|
30
|
+
docile (1.4.0)
|
|
31
|
+
i18n (1.8.10)
|
|
33
32
|
concurrent-ruby (~> 1.0)
|
|
34
|
-
json (2.
|
|
35
|
-
minitest (5.14.
|
|
36
|
-
parallel (1.
|
|
37
|
-
parser (
|
|
33
|
+
json (2.5.1)
|
|
34
|
+
minitest (5.14.4)
|
|
35
|
+
parallel (1.20.1)
|
|
36
|
+
parser (3.0.2.0)
|
|
38
37
|
ast (~> 2.4.1)
|
|
39
38
|
rainbow (3.0.0)
|
|
40
|
-
rake (13.0.
|
|
41
|
-
regexp_parser (1.
|
|
42
|
-
rexml (3.2.
|
|
43
|
-
rspec (3.
|
|
44
|
-
rspec-core (~> 3.
|
|
45
|
-
rspec-expectations (~> 3.
|
|
46
|
-
rspec-mocks (~> 3.
|
|
47
|
-
rspec-core (3.
|
|
48
|
-
rspec-support (~> 3.
|
|
49
|
-
rspec-expectations (3.
|
|
39
|
+
rake (13.0.6)
|
|
40
|
+
regexp_parser (2.1.1)
|
|
41
|
+
rexml (3.2.5)
|
|
42
|
+
rspec (3.10.0)
|
|
43
|
+
rspec-core (~> 3.10.0)
|
|
44
|
+
rspec-expectations (~> 3.10.0)
|
|
45
|
+
rspec-mocks (~> 3.10.0)
|
|
46
|
+
rspec-core (3.10.1)
|
|
47
|
+
rspec-support (~> 3.10.0)
|
|
48
|
+
rspec-expectations (3.10.1)
|
|
50
49
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
51
|
-
rspec-support (~> 3.
|
|
52
|
-
rspec-mocks (3.
|
|
50
|
+
rspec-support (~> 3.10.0)
|
|
51
|
+
rspec-mocks (3.10.2)
|
|
53
52
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
54
|
-
rspec-support (~> 3.
|
|
55
|
-
rspec-support (3.
|
|
56
|
-
rubocop (0.
|
|
53
|
+
rspec-support (~> 3.10.0)
|
|
54
|
+
rspec-support (3.10.2)
|
|
55
|
+
rubocop (0.93.1)
|
|
57
56
|
parallel (~> 1.10)
|
|
58
|
-
parser (>= 2.7.
|
|
57
|
+
parser (>= 2.7.1.5)
|
|
59
58
|
rainbow (>= 2.2.2, < 4.0)
|
|
60
|
-
regexp_parser (>= 1.
|
|
59
|
+
regexp_parser (>= 1.8)
|
|
61
60
|
rexml
|
|
62
|
-
rubocop-ast (>= 0.
|
|
61
|
+
rubocop-ast (>= 0.6.0)
|
|
63
62
|
ruby-progressbar (~> 1.7)
|
|
64
63
|
unicode-display_width (>= 1.4.0, < 2.0)
|
|
65
|
-
rubocop-ast (
|
|
66
|
-
parser (>=
|
|
67
|
-
rubocop-performance (1.
|
|
68
|
-
rubocop (>= 0.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
64
|
+
rubocop-ast (1.8.0)
|
|
65
|
+
parser (>= 3.0.1.1)
|
|
66
|
+
rubocop-performance (1.10.2)
|
|
67
|
+
rubocop (>= 0.90.0, < 2.0)
|
|
68
|
+
rubocop-ast (>= 0.4.0)
|
|
69
|
+
rubocop-rspec (1.44.1)
|
|
70
|
+
rubocop (~> 0.87)
|
|
71
|
+
rubocop-ast (>= 0.7.1)
|
|
72
|
+
ruby-progressbar (1.11.0)
|
|
73
|
+
simplecov (0.21.2)
|
|
73
74
|
docile (~> 1.1)
|
|
74
75
|
simplecov-html (~> 0.11)
|
|
75
|
-
|
|
76
|
+
simplecov_json_formatter (~> 0.1)
|
|
77
|
+
simplecov-html (0.12.3)
|
|
78
|
+
simplecov_json_formatter (0.1.3)
|
|
76
79
|
sqlite3 (1.4.2)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
thread_safe (~> 0.1)
|
|
80
|
+
tzinfo (2.0.4)
|
|
81
|
+
concurrent-ruby (~> 1.0)
|
|
80
82
|
unicode-display_width (1.7.0)
|
|
81
|
-
|
|
82
|
-
zeitwerk (2.3.1)
|
|
83
|
+
zeitwerk (2.4.2)
|
|
83
84
|
|
|
84
85
|
PLATFORMS
|
|
85
86
|
ruby
|
data/lib/light/services/base.rb
CHANGED
|
@@ -26,8 +26,14 @@ module Light
|
|
|
26
26
|
mount_class_based_collection :outputs, item_class: Settings::Output, shortcut: :output
|
|
27
27
|
mount_class_based_collection :arguments, item_class: Settings::Argument, shortcut: :arg, allow_redefine: true
|
|
28
28
|
|
|
29
|
+
# Arguments
|
|
30
|
+
# TODO: Rename internal arguments
|
|
31
|
+
arg :benchmark, default: false
|
|
32
|
+
arg :deepness, default: 0, context: true
|
|
33
|
+
|
|
29
34
|
# Steps
|
|
30
35
|
step :load_defaults_and_validate
|
|
36
|
+
step :log_header, if: :benchmark?
|
|
31
37
|
|
|
32
38
|
# Getters
|
|
33
39
|
attr_reader :outputs, :arguments, :errors, :warnings
|
|
@@ -39,6 +45,7 @@ module Light
|
|
|
39
45
|
@outputs = Collection::Outputs.new(self)
|
|
40
46
|
@arguments = Collection::Arguments.new(self, args)
|
|
41
47
|
|
|
48
|
+
@done = false
|
|
42
49
|
@launched_steps = []
|
|
43
50
|
|
|
44
51
|
initialize_errors
|
|
@@ -61,12 +68,27 @@ module Light
|
|
|
61
68
|
@warnings.any?
|
|
62
69
|
end
|
|
63
70
|
|
|
71
|
+
def done!
|
|
72
|
+
@done = true
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def done?
|
|
76
|
+
@done
|
|
77
|
+
end
|
|
78
|
+
|
|
64
79
|
def call
|
|
65
|
-
|
|
66
|
-
|
|
80
|
+
time = Benchmark.ms do
|
|
81
|
+
run_steps
|
|
82
|
+
run_steps_with_always
|
|
83
|
+
|
|
84
|
+
copy_warnings_to_parent_service
|
|
85
|
+
copy_errors_to_parent_service
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
return unless benchmark
|
|
67
89
|
|
|
68
|
-
|
|
69
|
-
|
|
90
|
+
log "🟢 Finished #{self.class} in #{time}ms"
|
|
91
|
+
puts
|
|
70
92
|
end
|
|
71
93
|
|
|
72
94
|
class << self
|
|
@@ -83,6 +105,11 @@ module Light
|
|
|
83
105
|
end
|
|
84
106
|
end
|
|
85
107
|
|
|
108
|
+
# TODO: Add possibility to specify logger
|
|
109
|
+
def log(message)
|
|
110
|
+
puts "#{' ' * deepness}→ #{message}"
|
|
111
|
+
end
|
|
112
|
+
|
|
86
113
|
private
|
|
87
114
|
|
|
88
115
|
def initialize_errors
|
|
@@ -104,7 +131,7 @@ module Light
|
|
|
104
131
|
def run_steps
|
|
105
132
|
within_transaction do
|
|
106
133
|
self.class.steps.each do |name, step|
|
|
107
|
-
@launched_steps << name if step.run(self)
|
|
134
|
+
@launched_steps << name if step.run(self, benchmark: benchmark)
|
|
108
135
|
|
|
109
136
|
break if @errors.break? || @warnings.break?
|
|
110
137
|
end
|
|
@@ -146,6 +173,10 @@ module Light
|
|
|
146
173
|
@arguments.validate!
|
|
147
174
|
end
|
|
148
175
|
|
|
176
|
+
def log_header
|
|
177
|
+
log "🏎 Run service #{self.class}"
|
|
178
|
+
end
|
|
179
|
+
|
|
149
180
|
def within_transaction
|
|
150
181
|
if @config[:use_transactions] && defined?(ActiveRecord::Base)
|
|
151
182
|
ActiveRecord::Base.transaction(requires_new: true) { yield }
|
|
@@ -22,10 +22,11 @@ module Light
|
|
|
22
22
|
private
|
|
23
23
|
|
|
24
24
|
def extend_arguments(args)
|
|
25
|
-
return args unless @parent_service
|
|
26
|
-
|
|
27
25
|
# TODO: Do we need `.dup` here?
|
|
28
|
-
@parent_service.arguments.extend_with_context(args)
|
|
26
|
+
args = @parent_service.arguments.extend_with_context(args) if @parent_service
|
|
27
|
+
args[:deepness] += 1 if args[:deepness]
|
|
28
|
+
|
|
29
|
+
args
|
|
29
30
|
end
|
|
30
31
|
end
|
|
31
32
|
end
|
|
@@ -28,6 +28,14 @@ module Light
|
|
|
28
28
|
@storage[key]
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
+
def [](key)
|
|
32
|
+
get(key)
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def []=(key, value)
|
|
36
|
+
set(key, value)
|
|
37
|
+
end
|
|
38
|
+
|
|
31
39
|
def load_defaults
|
|
32
40
|
settings_collection.each do |name, settings|
|
|
33
41
|
next if !settings.default_exists || key?(name)
|
|
@@ -10,18 +10,13 @@ module Light
|
|
|
10
10
|
@messages = {}
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def add(key, message, opts = {})
|
|
13
|
+
def add(key, message, opts = {}, last: nil)
|
|
14
14
|
@messages[key] ||= []
|
|
15
|
-
|
|
16
|
-
if message.is_a?(Array)
|
|
17
|
-
@messages[key] += message
|
|
18
|
-
else
|
|
19
|
-
@messages[key] << message
|
|
20
|
-
end
|
|
15
|
+
@messages[key] += [*message]
|
|
21
16
|
|
|
22
17
|
raise!(key, message)
|
|
23
18
|
break!(opts[:break])
|
|
24
|
-
rollback!(opts[:rollback])
|
|
19
|
+
rollback!(opts[:rollback]) if last.nil? || last
|
|
25
20
|
end
|
|
26
21
|
|
|
27
22
|
def break?
|
|
@@ -32,8 +27,10 @@ module Light
|
|
|
32
27
|
if defined?(ActiveRecord::Base) && entity.is_a?(ActiveRecord::Base)
|
|
33
28
|
copy_from(entity.errors.messages, opts)
|
|
34
29
|
elsif entity.respond_to?(:each)
|
|
35
|
-
entity.
|
|
36
|
-
|
|
30
|
+
last_index = entity.size - 1
|
|
31
|
+
|
|
32
|
+
entity.each_with_index do |(key, message), index|
|
|
33
|
+
add(key, message, opts, last: index == last_index)
|
|
37
34
|
end
|
|
38
35
|
else
|
|
39
36
|
# TODO: Update error
|
|
@@ -20,13 +20,26 @@ module Light
|
|
|
20
20
|
raise Light::Services::TwoConditions, "#{service_class} `if` and `unless` cannot be specified " \
|
|
21
21
|
"for the step `#{name}` at the same time"
|
|
22
22
|
end
|
|
23
|
+
|
|
24
|
+
if @always && (@if || @unless)
|
|
25
|
+
raise Light::Services::Error, "#{service_class} `always` cannot be combined with `if` and `unless`"
|
|
26
|
+
end
|
|
23
27
|
end
|
|
24
28
|
|
|
25
|
-
def run(instance)
|
|
29
|
+
def run(instance, benchmark: false)
|
|
26
30
|
return false unless run?(instance)
|
|
27
31
|
|
|
28
32
|
if instance.respond_to?(name, true)
|
|
29
|
-
|
|
33
|
+
if benchmark
|
|
34
|
+
time = Benchmark.ms do
|
|
35
|
+
instance.send(name)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
instance.log "⏱️ Step #{name} took #{time}ms"
|
|
39
|
+
else
|
|
40
|
+
instance.send(name)
|
|
41
|
+
end
|
|
42
|
+
|
|
30
43
|
true
|
|
31
44
|
else
|
|
32
45
|
raise Light::Services::NoStepError, "Cannot find step `#{name}` in service `#{@service_class}`"
|
|
@@ -36,6 +49,8 @@ module Light
|
|
|
36
49
|
private
|
|
37
50
|
|
|
38
51
|
def run?(instance)
|
|
52
|
+
return false if instance.done?
|
|
53
|
+
|
|
39
54
|
if @if
|
|
40
55
|
check_condition(@if, instance)
|
|
41
56
|
elsif @unless
|
|
@@ -48,7 +63,7 @@ module Light
|
|
|
48
63
|
def check_condition(condition, instance)
|
|
49
64
|
case condition
|
|
50
65
|
when Symbol
|
|
51
|
-
instance.
|
|
66
|
+
instance.send(condition)
|
|
52
67
|
when Proc
|
|
53
68
|
condition.call
|
|
54
69
|
else
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: light-services
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.0.
|
|
4
|
+
version: 2.0.0.rc4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Andrew Emelianenko
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-08-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: Powerful implementation of Service Object pattern for Ruby and Rails
|
|
14
14
|
email:
|
|
@@ -20,12 +20,6 @@ files:
|
|
|
20
20
|
- ".github/config/rubocop_linter_action.yml"
|
|
21
21
|
- ".github/workflows/ci.yml"
|
|
22
22
|
- ".gitignore"
|
|
23
|
-
- ".idea/.gitignore"
|
|
24
|
-
- ".idea/inspectionProfiles/Project_Default.xml"
|
|
25
|
-
- ".idea/light-services.iml"
|
|
26
|
-
- ".idea/misc.xml"
|
|
27
|
-
- ".idea/modules.xml"
|
|
28
|
-
- ".idea/vcs.xml"
|
|
29
23
|
- ".rspec"
|
|
30
24
|
- ".rubocop.yml"
|
|
31
25
|
- CHANGELOG.md
|
data/.idea/.gitignore
DELETED
data/.idea/light-services.iml
DELETED
|
@@ -1,53 +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
|
-
<sourceFolder url="file://$MODULE_DIR$/features" isTestSource="true" />
|
|
9
|
-
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
|
10
|
-
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
|
11
|
-
</content>
|
|
12
|
-
<orderEntry type="jdk" jdkName="rbenv: 2.7.1" jdkType="RUBY_SDK" />
|
|
13
|
-
<orderEntry type="sourceFolder" forTests="false" />
|
|
14
|
-
<orderEntry type="library" scope="PROVIDED" name="activemodel (v6.0.3.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
15
|
-
<orderEntry type="library" scope="PROVIDED" name="activerecord (v6.0.3.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
16
|
-
<orderEntry type="library" scope="PROVIDED" name="activesupport (v6.0.3.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
17
|
-
<orderEntry type="library" scope="PROVIDED" name="ast (v2.4.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
18
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v2.1.4, rbenv: 2.7.1) [gem]" level="application" />
|
|
19
|
-
<orderEntry type="library" scope="PROVIDED" name="codecov (v0.1.17, rbenv: 2.7.1) [gem]" level="application" />
|
|
20
|
-
<orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.1.6, rbenv: 2.7.1) [gem]" level="application" />
|
|
21
|
-
<orderEntry type="library" scope="PROVIDED" name="database_cleaner (v1.8.5, rbenv: 2.7.1) [gem]" level="application" />
|
|
22
|
-
<orderEntry type="library" scope="PROVIDED" name="database_cleaner-active_record (v1.8.0, rbenv: 2.7.1) [gem]" level="application" />
|
|
23
|
-
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.4.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
24
|
-
<orderEntry type="library" scope="PROVIDED" name="docile (v1.3.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
25
|
-
<orderEntry type="library" scope="PROVIDED" name="i18n (v1.8.3, rbenv: 2.7.1) [gem]" level="application" />
|
|
26
|
-
<orderEntry type="library" scope="PROVIDED" name="json (v2.3.0, rbenv: 2.7.1) [gem]" level="application" />
|
|
27
|
-
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.14.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
28
|
-
<orderEntry type="library" scope="PROVIDED" name="parallel (v1.19.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
29
|
-
<orderEntry type="library" scope="PROVIDED" name="parser (v2.7.1.4, rbenv: 2.7.1) [gem]" level="application" />
|
|
30
|
-
<orderEntry type="library" scope="PROVIDED" name="rainbow (v3.0.0, rbenv: 2.7.1) [gem]" level="application" />
|
|
31
|
-
<orderEntry type="library" scope="PROVIDED" name="rake (v13.0.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
32
|
-
<orderEntry type="library" scope="PROVIDED" name="regexp_parser (v1.7.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
33
|
-
<orderEntry type="library" scope="PROVIDED" name="rexml (v3.2.4, rbenv: 2.7.1) [gem]" level="application" />
|
|
34
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.9.0, rbenv: 2.7.1) [gem]" level="application" />
|
|
35
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.9.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
36
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.9.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
37
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.9.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
38
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.9.3, rbenv: 2.7.1) [gem]" level="application" />
|
|
39
|
-
<orderEntry type="library" scope="PROVIDED" name="rubocop (v0.86.0, rbenv: 2.7.1) [gem]" level="application" />
|
|
40
|
-
<orderEntry type="library" scope="PROVIDED" name="rubocop-ast (v0.0.3, rbenv: 2.7.1) [gem]" level="application" />
|
|
41
|
-
<orderEntry type="library" scope="PROVIDED" name="rubocop-performance (v1.6.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
42
|
-
<orderEntry type="library" scope="PROVIDED" name="rubocop-rspec (v1.40.0, rbenv: 2.7.1) [gem]" level="application" />
|
|
43
|
-
<orderEntry type="library" scope="PROVIDED" name="ruby-progressbar (v1.10.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
44
|
-
<orderEntry type="library" scope="PROVIDED" name="simplecov (v0.18.5, rbenv: 2.7.1) [gem]" level="application" />
|
|
45
|
-
<orderEntry type="library" scope="PROVIDED" name="simplecov-html (v0.12.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
46
|
-
<orderEntry type="library" scope="PROVIDED" name="sqlite3 (v1.4.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
47
|
-
<orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.6, rbenv: 2.7.1) [gem]" level="application" />
|
|
48
|
-
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.7, rbenv: 2.7.1) [gem]" level="application" />
|
|
49
|
-
<orderEntry type="library" scope="PROVIDED" name="unicode-display_width (v1.7.0, rbenv: 2.7.1) [gem]" level="application" />
|
|
50
|
-
<orderEntry type="library" scope="PROVIDED" name="url (v0.3.2, rbenv: 2.7.1) [gem]" level="application" />
|
|
51
|
-
<orderEntry type="library" scope="PROVIDED" name="zeitwerk (v2.3.1, rbenv: 2.7.1) [gem]" level="application" />
|
|
52
|
-
</component>
|
|
53
|
-
</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="ruby-2.6.3-p62" 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/light-services.iml" filepath="$PROJECT_DIR$/.idea/light-services.iml" />
|
|
6
|
-
</modules>
|
|
7
|
-
</component>
|
|
8
|
-
</project>
|