ree_lib 1.0.49 → 1.0.50
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -3
- data/lib/ree_lib/Packages.schema.json +4 -0
- data/lib/ree_lib/packages/ree_actions/spec/ree_actions/dsl_spec.rb +17 -10
- data/lib/ree_lib/packages/ree_dao/Package.schema.json +10 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/aggregate_dsl.rb +26 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/association.rb +311 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/associations.rb +148 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/beans/dao_cache.rb +40 -19
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/contract/dao_dataset_contract.rb +15 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/contract/entity_contract.rb +15 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/dataset_extensions.rb +4 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/dsl.rb +1 -1
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_pg_connection.rb +1 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_sqlite_connection.rb +1 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/drop_cache.rb +1 -1
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/init_cache.rb +1 -1
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/functions/load_agg.rb +63 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao/thread_parents.rb +40 -0
- data/lib/ree_lib/packages/ree_dao/package/ree_dao.rb +9 -0
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/build_pg_connection.schema.json +1 -1
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/build_sqlite_connection.schema.json +1 -1
- data/lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/load_agg.schema.json +43 -0
- data/lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/load_agg/load_agg_benchmark_spec.rb +414 -0
- data/lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/load_agg/load_agg_spec.rb +605 -0
- data/lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/load_agg/ree_dao_load_agg_test.rb +524 -0
- data/lib/ree_lib/packages/ree_logger/package/ree_logger/multi_logger.rb +19 -10
- data/lib/ree_lib/packages/ree_logger/spec/ree_logger/multi_logger_spec.rb +10 -0
- data/lib/ree_lib/packages/ree_mapper/package/ree_mapper/mapper_factory_proxy.rb +6 -3
- data/lib/ree_lib/packages/ree_std/.gitignore +0 -0
- data/lib/ree_lib/packages/ree_std/.rspec +2 -0
- data/lib/ree_lib/packages/ree_std/Package.schema.json +24 -0
- data/lib/ree_lib/packages/ree_std/bin/console +5 -0
- data/lib/ree_lib/packages/ree_std/package/ree_std/functions/retry_on_fail.rb +46 -0
- data/lib/ree_lib/packages/ree_std/package/ree_std/retry.rb +67 -0
- data/lib/ree_lib/packages/ree_std/package/ree_std.rb +6 -0
- data/lib/ree_lib/packages/ree_std/schemas/ree_std/functions/retry_on_fail.schema.json +38 -0
- data/lib/ree_lib/packages/ree_std/spec/package_schema_spec.rb +14 -0
- data/lib/ree_lib/packages/ree_std/spec/ree_std/functions/retry_on_fail_spec.rb +97 -0
- data/lib/ree_lib/packages/ree_std/spec/spec_helper.rb +3 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_request_body_schema.rb +5 -0
- data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_serializer_schema.rb +5 -0
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_endpoint_schema_spec.rb +4 -2
- data/lib/ree_lib/packages/ree_swagger/spec/functions/build_request_body_spec.rb +4 -2
- data/lib/ree_lib/version.rb +1 -1
- metadata +38 -2
@@ -0,0 +1,67 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ReeStd::Retry
|
4
|
+
contract(
|
5
|
+
Kwargs[
|
6
|
+
max: Integer,
|
7
|
+
],
|
8
|
+
Ksplat[
|
9
|
+
interval?: Integer,
|
10
|
+
max_interval?: Integer,
|
11
|
+
backoff_factor?: Integer,
|
12
|
+
exceptions?: ArrayOf[SubclassOf[StandardError]],
|
13
|
+
retry_block?: Proc,
|
14
|
+
retry_if?: Proc,
|
15
|
+
] => Any
|
16
|
+
)
|
17
|
+
def initialize(max:, **opts)
|
18
|
+
@max = max
|
19
|
+
@current_attempt = 0
|
20
|
+
|
21
|
+
@interval = opts.fetch(:interval, 1)
|
22
|
+
@max_interval = opts.fetch(:max_interval, Float::INFINITY)
|
23
|
+
@backoff_factor = opts.fetch(:backoff_factor, 1)
|
24
|
+
|
25
|
+
@exceptions = opts.fetch(:exceptions) { [StandardError].freeze }
|
26
|
+
@retry_block = opts.fetch(:retry_block, Proc.new {})
|
27
|
+
@retry_if = opts.fetch(:retry_if, Proc.new { true })
|
28
|
+
end
|
29
|
+
|
30
|
+
contract(
|
31
|
+
Block => Any
|
32
|
+
)
|
33
|
+
def call(&block)
|
34
|
+
block.call
|
35
|
+
rescue => e
|
36
|
+
raise unless match_error?(e)
|
37
|
+
raise unless has_attempts?
|
38
|
+
|
39
|
+
@retry_block.call(@current_attempt, e)
|
40
|
+
|
41
|
+
Kernel.sleep(calculate_retry_interval)
|
42
|
+
|
43
|
+
increment_attemt!
|
44
|
+
retry
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def has_attempts?
|
50
|
+
@current_attempt < @max
|
51
|
+
end
|
52
|
+
|
53
|
+
def increment_attemt!
|
54
|
+
@current_attempt += 1
|
55
|
+
end
|
56
|
+
|
57
|
+
def calculate_retry_interval
|
58
|
+
current_interval = @interval * (@backoff_factor ** @current_attempt)
|
59
|
+
|
60
|
+
[@max_interval, current_interval].min
|
61
|
+
end
|
62
|
+
|
63
|
+
def match_error?(e)
|
64
|
+
puts @retry_if.call(e)
|
65
|
+
@retry_if.call(e) && @exceptions.any? { e.is_a? _1 }
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
{
|
2
|
+
"schema_type": "object",
|
3
|
+
"schema_version": "1.1",
|
4
|
+
"name": "retry_on_fail",
|
5
|
+
"path": "packages/ree_std/package/ree_std/functions/retry_on_fail.rb",
|
6
|
+
"mount_as": "fn",
|
7
|
+
"class": "ReeStd::RetryOnFail",
|
8
|
+
"factory": null,
|
9
|
+
"methods": [
|
10
|
+
{
|
11
|
+
"doc": "## **Ruby Function: retry_on_fail**\n\nThis function allows you to execute a provided block of code and automatically retry it in case a specific exception occurs.\n\nrubyCopy code\n\n`x = 0 retry_on_fail(max: 2, retry_block: ->(attempt, e) { x += 1 } ) { 1 / x }`\n\n## **Parameters**\n\n* **max** (Integer, required): Specifies the maximum number of retry attempts.\n* **interval** (Integer, optional, default: 1): Sets the base delay between retry attempts in seconds.\n* **max_interval** (Integer, optional, default: Float::INFINITY): Defines the upper limit for the delay between retry attempts.\n* **backoff_factor** (Integer, optional, default: 1): Determines the increasing factor for the delay based on the attempt number.\n* **exceptions** (StandardError[], optional, default: [StandardError]): Specifies a list of exceptions that should trigger a retry.\n* **retry_block** (Proc, optional, default: **Proc.new {|attempt_number, exception|}**): Allows you to provide a custom block of code to be executed after a failed attempt.\n* **retry_if** (Proc, optional, default: **Proc.new { |exception| true }**): Provides an additional condition that must be satisfied before initiating a new retry attempt.",
|
12
|
+
"throws": [
|
13
|
+
|
14
|
+
],
|
15
|
+
"return": "Any",
|
16
|
+
"args": [
|
17
|
+
{
|
18
|
+
"arg": "max",
|
19
|
+
"arg_type": "keyreq",
|
20
|
+
"type": "Integer"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"arg": "opts",
|
24
|
+
"arg_type": "keyrest",
|
25
|
+
"type": "Ksplat[:interval? => Integer, :max_interval? => Integer, :backoff_factor? => Integer, :exceptions? => ArrayOf[SubclassOf[StandardError]], :retry_block? => Proc, :retry_if? => Proc]"
|
26
|
+
},
|
27
|
+
{
|
28
|
+
"arg": "block",
|
29
|
+
"arg_type": "block",
|
30
|
+
"type": "Block"
|
31
|
+
}
|
32
|
+
]
|
33
|
+
}
|
34
|
+
],
|
35
|
+
"links": [
|
36
|
+
|
37
|
+
]
|
38
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
RSpec.describe "ReeStd" do
|
2
|
+
it "generates package schema" do
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
packages_schema_path = Ree.locate_packages_schema(__dir__)
|
6
|
+
packages_schema_dir = Pathname.new(packages_schema_path).dirname.to_s
|
7
|
+
|
8
|
+
FileUtils.cd packages_schema_dir do
|
9
|
+
expect(
|
10
|
+
system("bundle exec ree gen.package_json ree_std --silence")
|
11
|
+
).to eq(true)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe :retry_on_fail do
|
4
|
+
link :retry_on_fail, from: :ree_std
|
5
|
+
|
6
|
+
SampleException = Class.new(StandardError)
|
7
|
+
YetAnotherException = Class.new(StandardError)
|
8
|
+
|
9
|
+
class TestRetryProcedure
|
10
|
+
def initialize(failed_count: 0, raise_error:)
|
11
|
+
@failed_count = failed_count
|
12
|
+
@raise_error = raise_error
|
13
|
+
@current_attempt = 0
|
14
|
+
end
|
15
|
+
|
16
|
+
def call
|
17
|
+
unless succeed?
|
18
|
+
@current_attempt += 1
|
19
|
+
raise @raise_error
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def succeed?
|
24
|
+
@current_attempt > @failed_count
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "handles specific exception" do
|
29
|
+
let(:procedure) { TestRetryProcedure.new(failed_count: 1, raise_error: SampleException.new("sample exception message")) }
|
30
|
+
|
31
|
+
before(:each) do
|
32
|
+
@message = nil
|
33
|
+
|
34
|
+
retry_on_fail(
|
35
|
+
max: 2,
|
36
|
+
exceptions: [SampleException],
|
37
|
+
retry_block: ->(attempt, e) { @message = "Attempt ##{attempt}: '#{e.message}'" },
|
38
|
+
) { procedure.call }
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should reach succeed case if failed count is less than max retries" do
|
42
|
+
expect(procedure.succeed?).to be true
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should execute :retry_block" do
|
46
|
+
expect(@message).to eq("Attempt #1: 'sample exception message'")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe "when max attempts was reached" do
|
51
|
+
let(:procedure) { TestRetryProcedure.new(failed_count: 3, raise_error: SampleException) }
|
52
|
+
|
53
|
+
it "raises error" do
|
54
|
+
expect {
|
55
|
+
retry_on_fail(
|
56
|
+
max: 2,
|
57
|
+
retry_if: ->(e) { e.is_a?(SampleException) && e.message == 'sample exception message' }
|
58
|
+
) { procedure.call }
|
59
|
+
}.to raise_error(SampleException)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "when handle another exception" do
|
64
|
+
let(:procedure) { TestRetryProcedure.new(failed_count: 1, raise_error: YetAnotherException) }
|
65
|
+
|
66
|
+
it "raises error" do
|
67
|
+
expect {
|
68
|
+
retry_on_fail(
|
69
|
+
max: 2,
|
70
|
+
exceptions: [SampleException],
|
71
|
+
) { procedure.call }
|
72
|
+
}.to raise_error(YetAnotherException)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
describe ":retry_if parameter" do
|
77
|
+
let(:procedure) { TestRetryProcedure.new(failed_count: 1, raise_error: SampleException) }
|
78
|
+
|
79
|
+
it "checks positive case" do
|
80
|
+
expect {
|
81
|
+
retry_on_fail(
|
82
|
+
max: 2,
|
83
|
+
retry_if: ->(e) { e.class == SampleException }
|
84
|
+
) { procedure.call }
|
85
|
+
}.not_to raise_error
|
86
|
+
end
|
87
|
+
|
88
|
+
it "checks negative case" do
|
89
|
+
expect {
|
90
|
+
retry_on_fail(
|
91
|
+
max: 2,
|
92
|
+
retry_if: ->(e) { e.class == YetAnotherException }
|
93
|
+
) { procedure.call }
|
94
|
+
}.to raise_error(SampleException)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
data/lib/ree_lib/packages/ree_swagger/package/ree_swagger/functions/build_serializer_schema.rb
CHANGED
@@ -16,6 +16,11 @@ class ReeSwagger::BuildSerializerSchema
|
|
16
16
|
properties = mapper.fields.each_with_object({}) do |(_name, field), acc|
|
17
17
|
next unless fields_filters.all? { _1.allow?(field.name) }
|
18
18
|
|
19
|
+
if field.type == mapper
|
20
|
+
acc[field.name] = {}
|
21
|
+
next
|
22
|
+
end
|
23
|
+
|
19
24
|
swagger_field = {}
|
20
25
|
|
21
26
|
field_mapper = field.type
|
@@ -44,8 +44,9 @@ RSpec.describe :build_endpoint_schema do
|
|
44
44
|
|
45
45
|
ReeSwaggerTest::Locales.register_as_swagger_type
|
46
46
|
|
47
|
-
serializer = mapper_factory.call.use(:serialize) do
|
47
|
+
serializer = mapper_factory.call(register_as: :obj).use(:serialize) do
|
48
48
|
integer :id
|
49
|
+
obj :prev_obj, null: true
|
49
50
|
end
|
50
51
|
|
51
52
|
_tag_caster = mapper_factory.call(register_as: :tag).use(:cast) do
|
@@ -133,7 +134,8 @@ RSpec.describe :build_endpoint_schema do
|
|
133
134
|
schema: {
|
134
135
|
type: 'object',
|
135
136
|
properties: {
|
136
|
-
id: { type: 'integer' }
|
137
|
+
id: { type: 'integer' },
|
138
|
+
prev_obj: {}
|
137
139
|
}
|
138
140
|
}
|
139
141
|
}
|
@@ -14,10 +14,11 @@ RSpec.describe :build_request_body_schema_spec do
|
|
14
14
|
}
|
15
15
|
|
16
16
|
it {
|
17
|
-
caster = mapper_factory.call.use(:cast) do
|
17
|
+
caster = mapper_factory.call(register_as: :user).use(:cast) do
|
18
18
|
string :name
|
19
19
|
string :email
|
20
20
|
string? :last_name
|
21
|
+
user :friend
|
21
22
|
end
|
22
23
|
|
23
24
|
schema = {
|
@@ -25,7 +26,8 @@ RSpec.describe :build_request_body_schema_spec do
|
|
25
26
|
properties: {
|
26
27
|
name: { type: "string" },
|
27
28
|
email: { type: "string" },
|
28
|
-
last_name: { type: "string" }
|
29
|
+
last_name: { type: "string" },
|
30
|
+
friend: {}
|
29
31
|
},
|
30
32
|
required: ["name", "email"]
|
31
33
|
}
|
data/lib/ree_lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ree_lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.50
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ruslan Gatiyatov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ree
|
@@ -220,6 +220,20 @@ dependencies:
|
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: 3.3.1
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: faker
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '3.2'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '3.2'
|
223
237
|
description: Ree Lib provides set of packages to extend Ruby Standard Library
|
224
238
|
email:
|
225
239
|
- ruslan.gatiyatov@gmail.com
|
@@ -292,8 +306,13 @@ files:
|
|
292
306
|
- lib/ree_lib/packages/ree_dao/Package.schema.json
|
293
307
|
- lib/ree_lib/packages/ree_dao/bin/console
|
294
308
|
- lib/ree_lib/packages/ree_dao/package/ree_dao.rb
|
309
|
+
- lib/ree_lib/packages/ree_dao/package/ree_dao/aggregate_dsl.rb
|
310
|
+
- lib/ree_lib/packages/ree_dao/package/ree_dao/association.rb
|
311
|
+
- lib/ree_lib/packages/ree_dao/package/ree_dao/associations.rb
|
295
312
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/beans/connections.rb
|
296
313
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/beans/dao_cache.rb
|
314
|
+
- lib/ree_lib/packages/ree_dao/package/ree_dao/contract/dao_dataset_contract.rb
|
315
|
+
- lib/ree_lib/packages/ree_dao/package/ree_dao/contract/entity_contract.rb
|
297
316
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/dataset_extensions.rb
|
298
317
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/dsl.rb
|
299
318
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/build_connection.rb
|
@@ -303,9 +322,11 @@ files:
|
|
303
322
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/drop_cache.rb
|
304
323
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/extract_changes.rb
|
305
324
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/init_cache.rb
|
325
|
+
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/load_agg.rb
|
306
326
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/one_to_many.rb
|
307
327
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/one_to_one.rb
|
308
328
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/functions/persist_assoc.rb
|
329
|
+
- lib/ree_lib/packages/ree_dao/package/ree_dao/thread_parents.rb
|
309
330
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/wrappers/pg_array.rb
|
310
331
|
- lib/ree_lib/packages/ree_dao/package/ree_dao/wrappers/pg_jsonb.rb
|
311
332
|
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/beans/connections.schema.json
|
@@ -317,6 +338,7 @@ files:
|
|
317
338
|
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/drop_cache.schema.json
|
318
339
|
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/extract_changes.schema.json
|
319
340
|
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/init_cache.schema.json
|
341
|
+
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/load_agg.schema.json
|
320
342
|
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/one_to_many.schema.json
|
321
343
|
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/one_to_one.schema.json
|
322
344
|
- lib/ree_lib/packages/ree_dao/schemas/ree_dao/functions/persist_assoc.schema.json
|
@@ -324,6 +346,9 @@ files:
|
|
324
346
|
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/build_pg_connection_spec.rb
|
325
347
|
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/build_sqlite_connection/max_connections_spec.rb
|
326
348
|
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/build_sqlite_connection_spec.rb
|
349
|
+
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/load_agg/load_agg_benchmark_spec.rb
|
350
|
+
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/load_agg/load_agg_spec.rb
|
351
|
+
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/load_agg/ree_dao_load_agg_test.rb
|
327
352
|
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/one_to_many_spec.rb
|
328
353
|
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/one_to_one_spec.rb
|
329
354
|
- lib/ree_lib/packages/ree_dao/spec/ree_dao/functions/persist_assoc_spec.rb
|
@@ -1146,6 +1171,17 @@ files:
|
|
1146
1171
|
- lib/ree_lib/packages/ree_routes/spec/package_schema_spec.rb
|
1147
1172
|
- lib/ree_lib/packages/ree_routes/spec/ree_routes/dsl_spec.rb
|
1148
1173
|
- lib/ree_lib/packages/ree_routes/spec/spec_helper.rb
|
1174
|
+
- lib/ree_lib/packages/ree_std/.gitignore
|
1175
|
+
- lib/ree_lib/packages/ree_std/.rspec
|
1176
|
+
- lib/ree_lib/packages/ree_std/Package.schema.json
|
1177
|
+
- lib/ree_lib/packages/ree_std/bin/console
|
1178
|
+
- lib/ree_lib/packages/ree_std/package/ree_std.rb
|
1179
|
+
- lib/ree_lib/packages/ree_std/package/ree_std/functions/retry_on_fail.rb
|
1180
|
+
- lib/ree_lib/packages/ree_std/package/ree_std/retry.rb
|
1181
|
+
- lib/ree_lib/packages/ree_std/schemas/ree_std/functions/retry_on_fail.schema.json
|
1182
|
+
- lib/ree_lib/packages/ree_std/spec/package_schema_spec.rb
|
1183
|
+
- lib/ree_lib/packages/ree_std/spec/ree_std/functions/retry_on_fail_spec.rb
|
1184
|
+
- lib/ree_lib/packages/ree_std/spec/spec_helper.rb
|
1149
1185
|
- lib/ree_lib/packages/ree_string/.gitignore
|
1150
1186
|
- lib/ree_lib/packages/ree_string/.rspec
|
1151
1187
|
- lib/ree_lib/packages/ree_string/Package.schema.json
|