servactory 2.6.0.rc5 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 644c141dd6e3bdee996ffc4aad56a6e9b472ad964406923cc14fd1185541e2ae
4
- data.tar.gz: 4036bed062dd8717f6288c72c498cca4a2a91401154a23266148a42cac2aa10a
3
+ metadata.gz: 0df96b35bd963790408ba89eb4c6d80b7b19c4edc869ceade70f0d9d660f41ce
4
+ data.tar.gz: 97c287969f8358a77903d17b79624b59a06abd8aa94aa469e5d458f99ae50342
5
5
  SHA512:
6
- metadata.gz: '09e7437eedd68dc0c14a98ec4c6c5c922483fc9e3924425a0478bb8d1404c36ef0531fb2adb9d2094ff7fa20633f92fb44fa8bd5588c6d7b28372371fe709af8'
7
- data.tar.gz: ac82354cffdb531261d50a12f0a54fb79bca2474fcf00b9851769ebcbe2a08c9c46fbb8edfb07bb8964142adac85e901d6773082001ffc0248746e8c448b77a1
6
+ metadata.gz: 57caa41f80f9df2fa40061dad1337839dfba5dcc69b54e44ac8651bb83ec4e4d034870e7cd78f1d23661cd4ab66153904ed9679e78253a91e5532a7c596f4f11
7
+ data.tar.gz: 9e85fcb8bd9994756b6d9519d1a2bbbc68a7bd13254505ae4930552d377a011eb233d70e7fe9abdb23cc52d0f8812294bfb70ce15b5f34b6861cbf763c918461
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Servactory
4
+ module Configuration
5
+ module Actions
6
+ module Aliases
7
+ class Collection
8
+ extend Forwardable
9
+ def_delegators :@collection, :<<, :merge, :include?
10
+
11
+ def initialize(*)
12
+ @collection = Set.new
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Servactory
4
+ module Configuration
5
+ module Actions
6
+ module RescueHandlers
7
+ class Collection
8
+ extend Forwardable
9
+ def_delegators :@collection, :+, :detect, :reverse_each
10
+
11
+ def initialize(*)
12
+ @collection = Set.new
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Servactory
4
+ module Configuration
5
+ module Actions
6
+ module Shortcuts
7
+ class Collection
8
+ extend Forwardable
9
+ def_delegators :@collection, :<<, :each, :merge, :include?
10
+
11
+ def initialize(*)
12
+ @collection = Set.new
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Servactory
4
+ module Configuration
5
+ module CollectionMode
6
+ class ClassNamesCollection
7
+ extend Forwardable
8
+ def_delegators :@collection, :merge, :intersection
9
+
10
+ def initialize(collection)
11
+ @collection = collection
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Servactory
4
- module Maintenance
4
+ module Configuration
5
5
  module HashMode
6
6
  class ClassNamesCollection
7
7
  extend Forwardable
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Servactory
4
- module Maintenance
5
- module Attributes
4
+ module Configuration
5
+ module OptionHelpers
6
6
  class OptionHelpersCollection
7
7
  extend Forwardable
8
8
  def_delegators :@collection, :<<, :find, :merge
@@ -31,23 +31,23 @@ module Servactory
31
31
  @result_class = Servactory::Result
32
32
 
33
33
  @collection_mode_class_names =
34
- Servactory::Configuration::ClassNamesCollection.new(default_collection_mode_class_names)
34
+ Servactory::Configuration::CollectionMode::ClassNamesCollection.new(default_collection_mode_class_names)
35
35
 
36
36
  @hash_mode_class_names =
37
- Servactory::Maintenance::HashMode::ClassNamesCollection.new(default_hash_mode_class_names)
37
+ Servactory::Configuration::HashMode::ClassNamesCollection.new(default_hash_mode_class_names)
38
38
 
39
39
  @input_option_helpers =
40
- Servactory::Maintenance::Attributes::OptionHelpersCollection.new(default_input_option_helpers)
40
+ Servactory::Configuration::OptionHelpers::OptionHelpersCollection.new(default_input_option_helpers)
41
41
 
42
42
  @internal_option_helpers =
43
- Servactory::Maintenance::Attributes::OptionHelpersCollection.new(default_internal_option_helpers)
43
+ Servactory::Configuration::OptionHelpers::OptionHelpersCollection.new(default_internal_option_helpers)
44
44
 
45
45
  @output_option_helpers =
46
- Servactory::Maintenance::Attributes::OptionHelpersCollection.new(default_output_option_helpers)
46
+ Servactory::Configuration::OptionHelpers::OptionHelpersCollection.new(default_output_option_helpers)
47
47
 
48
- @action_aliases = Servactory::Actions::Aliases::Collection.new
49
- @action_shortcuts = Servactory::Actions::Shortcuts::Collection.new
50
- @action_rescue_handlers = Servactory::Actions::RescueHandlers::Collection.new
48
+ @action_aliases = Servactory::Configuration::Actions::Aliases::Collection.new
49
+ @action_shortcuts = Servactory::Configuration::Actions::Shortcuts::Collection.new
50
+ @action_rescue_handlers = Servactory::Configuration::Actions::RescueHandlers::Collection.new
51
51
 
52
52
  @i18n_root_key = "servactory"
53
53
 
@@ -142,10 +142,13 @@ module Servactory
142
142
  value: wrong_value
143
143
  )
144
144
  elsif input_required_message.is_a?(Proc)
145
+ service_class = Struct.new(:class_name, keyword_init: true)
146
+ service = service_class.new(class_name: described_class.name)
147
+
145
148
  input_work = attribute_data.fetch(:work)
146
149
 
147
150
  input_required_message = input_required_message.call(
148
- service_class_name: described_class.name,
151
+ service: service,
149
152
  input: input_work,
150
153
  value: wrong_value
151
154
  )
@@ -35,19 +35,10 @@ module Servactory
35
35
  validate_for!(attribute: attribute, values: values, option: option)
36
36
  end
37
37
 
38
- # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
39
38
  def validate_for!(attribute:, values:, option:)
40
39
  consists_of_types = Array(option.value)
41
40
 
42
- if !consists_of_types.include?(NilClass) && !values&.all?(&:present?) &&
43
- (
44
- (
45
- attribute.input? && (
46
- (values.blank? && attribute.required?) ||
47
- (values.present? && attribute.required?)
48
- )
49
- ) || attribute.internal? || attribute.output?
50
- )
41
+ if fails_presence_validation?(attribute: attribute, values: values, consists_of_types: consists_of_types)
51
42
  return [false, :required]
52
43
  end
53
44
 
@@ -59,7 +50,18 @@ module Servactory
59
50
 
60
51
  [false, :wrong_element_type]
61
52
  end
62
- # rubocop:enable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
53
+
54
+ def fails_presence_validation?(attribute:, values:, consists_of_types:)
55
+ return false if consists_of_types.include?(NilClass)
56
+
57
+ check_present = proc { _1 && !values.all?(&:present?) }
58
+
59
+ [
60
+ check_present[attribute.input? && (attribute.required? || (attribute.optional? && values.present?))],
61
+ check_present[attribute.internal?],
62
+ check_present[attribute.output?]
63
+ ].any?
64
+ end
63
65
 
64
66
  ########################################################################
65
67
 
@@ -5,7 +5,7 @@ module Servactory
5
5
  MAJOR = 2
6
6
  MINOR = 6
7
7
  PATCH = 0
8
- PRE = "rc5"
8
+ PRE = nil
9
9
 
10
10
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join(".")
11
11
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: servactory
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0.rc5
4
+ version: 2.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anton Sokolov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-11 00:00:00.000000000 Z
11
+ date: 2024-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -245,20 +245,22 @@ files:
245
245
  - lib/generators/servactory/templates/services/application_service/result.rb
246
246
  - lib/servactory.rb
247
247
  - lib/servactory/actions/action.rb
248
- - lib/servactory/actions/aliases/collection.rb
249
248
  - lib/servactory/actions/collection.rb
250
249
  - lib/servactory/actions/dsl.rb
251
- - lib/servactory/actions/rescue_handlers/collection.rb
252
- - lib/servactory/actions/shortcuts/collection.rb
253
250
  - lib/servactory/actions/stages/collection.rb
254
251
  - lib/servactory/actions/stages/stage.rb
255
252
  - lib/servactory/actions/tools/rules.rb
256
253
  - lib/servactory/actions/tools/runner.rb
257
254
  - lib/servactory/actions/workspace.rb
258
255
  - lib/servactory/base.rb
259
- - lib/servactory/configuration/class_names_collection.rb
256
+ - lib/servactory/configuration/actions/aliases/collection.rb
257
+ - lib/servactory/configuration/actions/rescue_handlers/collection.rb
258
+ - lib/servactory/configuration/actions/shortcuts/collection.rb
259
+ - lib/servactory/configuration/collection_mode/class_names_collection.rb
260
260
  - lib/servactory/configuration/dsl.rb
261
261
  - lib/servactory/configuration/factory.rb
262
+ - lib/servactory/configuration/hash_mode/class_names_collection.rb
263
+ - lib/servactory/configuration/option_helpers/option_helpers_collection.rb
262
264
  - lib/servactory/configuration/setup.rb
263
265
  - lib/servactory/context/callable.rb
264
266
  - lib/servactory/context/dsl.rb
@@ -299,7 +301,6 @@ files:
299
301
  - lib/servactory/maintenance/attributes/define_method.rb
300
302
  - lib/servactory/maintenance/attributes/option.rb
301
303
  - lib/servactory/maintenance/attributes/option_helper.rb
302
- - lib/servactory/maintenance/attributes/option_helpers_collection.rb
303
304
  - lib/servactory/maintenance/attributes/options/registrar.rb
304
305
  - lib/servactory/maintenance/attributes/options_collection.rb
305
306
  - lib/servactory/maintenance/attributes/tools/check_errors.rb
@@ -312,7 +313,6 @@ files:
312
313
  - lib/servactory/maintenance/attributes/validations/inclusion.rb
313
314
  - lib/servactory/maintenance/attributes/validations/must.rb
314
315
  - lib/servactory/maintenance/attributes/validations/type.rb
315
- - lib/servactory/maintenance/hash_mode/class_names_collection.rb
316
316
  - lib/servactory/maintenance/validations/object_schema.rb
317
317
  - lib/servactory/maintenance/validations/types.rb
318
318
  - lib/servactory/outputs/collection.rb
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Servactory
4
- module Actions
5
- module Aliases
6
- class Collection
7
- extend Forwardable
8
- def_delegators :@collection, :<<, :merge, :include?
9
-
10
- def initialize(*)
11
- @collection = Set.new
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Servactory
4
- module Actions
5
- module RescueHandlers
6
- class Collection
7
- extend Forwardable
8
- def_delegators :@collection, :+, :detect, :reverse_each
9
-
10
- def initialize(*)
11
- @collection = Set.new
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Servactory
4
- module Actions
5
- module Shortcuts
6
- class Collection
7
- extend Forwardable
8
- def_delegators :@collection, :<<, :each, :merge, :include?
9
-
10
- def initialize(*)
11
- @collection = Set.new
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Servactory
4
- module Configuration
5
- class ClassNamesCollection
6
- extend Forwardable
7
- def_delegators :@collection, :merge, :intersection
8
-
9
- def initialize(collection)
10
- @collection = collection
11
- end
12
- end
13
- end
14
- end