leftovers 0.8.0 → 0.9.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 (191) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +7 -7
  4. data/docs/Configuration.md +141 -32
  5. data/docs/Custom-Precompilers.md +6 -0
  6. data/leftovers.gemspec +2 -1
  7. data/lib/config/actioncable.yml +36 -0
  8. data/lib/config/actionmailbox.yml +28 -0
  9. data/lib/config/actionmailer.yml +87 -11
  10. data/lib/config/actionpack.yml +130 -34
  11. data/lib/config/actiontext.yml +56 -0
  12. data/lib/config/actionview.yml +194 -44
  13. data/lib/config/activejob.yml +15 -8
  14. data/lib/config/activemodel.yml +175 -18
  15. data/lib/config/activerecord.yml +397 -86
  16. data/lib/config/activestorage.yml +26 -0
  17. data/lib/config/activesupport.yml +167 -24
  18. data/lib/config/leftovers.yml +48 -0
  19. data/lib/config/rails.yml +7 -3
  20. data/lib/config/railties.yml +7 -0
  21. data/lib/config/ruby.yml +438 -83
  22. data/lib/config/test-unit.yml +8 -0
  23. data/lib/leftovers/ast/array_node.rb +12 -0
  24. data/lib/leftovers/ast/block_node.rb +12 -0
  25. data/lib/leftovers/ast/builder.rb +24 -5
  26. data/lib/leftovers/ast/casgn_node.rb +20 -0
  27. data/lib/leftovers/ast/const_node.rb +15 -0
  28. data/lib/leftovers/ast/def_node.rb +15 -0
  29. data/lib/leftovers/ast/defs_node.rb +15 -0
  30. data/lib/leftovers/ast/false_node.rb +24 -0
  31. data/lib/leftovers/ast/has_arguments.rb +31 -0
  32. data/lib/leftovers/ast/hash_node.rb +17 -0
  33. data/lib/leftovers/ast/module_node.rb +16 -0
  34. data/lib/leftovers/ast/nil_node.rb +23 -0
  35. data/lib/leftovers/ast/node.rb +33 -90
  36. data/lib/leftovers/ast/numeric_node.rb +22 -0
  37. data/lib/leftovers/ast/send_node.rb +25 -0
  38. data/lib/leftovers/ast/str_node.rb +24 -0
  39. data/lib/leftovers/ast/sym_node.rb +25 -0
  40. data/lib/leftovers/ast/true_node.rb +24 -0
  41. data/lib/leftovers/ast/var_node.rb +14 -0
  42. data/lib/leftovers/ast/vasgn_node.rb +20 -0
  43. data/lib/leftovers/ast.rb +18 -0
  44. data/lib/leftovers/cli.rb +7 -1
  45. data/lib/leftovers/comparable_instance.rb +18 -0
  46. data/lib/leftovers/config_loader/argument_position_schema.rb +3 -1
  47. data/lib/leftovers/config_loader/array_schema.rb +53 -0
  48. data/lib/leftovers/config_loader/document_schema.rb +3 -2
  49. data/lib/leftovers/config_loader/dynamic_schema.rb +1 -0
  50. data/lib/leftovers/config_loader/has_value_schema.rb +4 -0
  51. data/lib/leftovers/config_loader/keyword_argument_schema.rb +13 -0
  52. data/lib/leftovers/config_loader/regexp_schema.rb +27 -0
  53. data/lib/leftovers/config_loader/rule_pattern_schema.rb +2 -0
  54. data/lib/leftovers/config_loader/scalar_value_schema.rb +8 -0
  55. data/lib/leftovers/config_loader/schema.rb +10 -0
  56. data/lib/leftovers/config_loader/string_enum_schema.rb +1 -1
  57. data/lib/leftovers/config_loader/string_pattern_schema.rb +1 -1
  58. data/lib/leftovers/config_loader/transform_schema.rb +12 -6
  59. data/lib/leftovers/config_loader/value_matcher_condition_schema.rb +13 -0
  60. data/lib/leftovers/config_loader/value_matcher_schema.rb +4 -1
  61. data/lib/leftovers/config_loader/value_or_array_schema.rb +2 -34
  62. data/lib/leftovers/config_loader/value_processor_schema.rb +2 -2
  63. data/lib/leftovers/config_loader.rb +11 -4
  64. data/lib/leftovers/definition_collection.rb +37 -0
  65. data/lib/leftovers/definition_node_set.rb +10 -2
  66. data/lib/leftovers/file.rb +1 -1
  67. data/lib/leftovers/file_collector/comments_processor.rb +1 -1
  68. data/lib/leftovers/file_collector/node_processor.rb +7 -7
  69. data/lib/leftovers/file_collector.rb +26 -32
  70. data/lib/leftovers/file_list.rb +3 -2
  71. data/lib/leftovers/matcher_builders/and.rb +26 -9
  72. data/lib/leftovers/matcher_builders/node.rb +32 -20
  73. data/lib/leftovers/matcher_builders/node_has_keyword_argument.rb +3 -1
  74. data/lib/leftovers/matcher_builders/node_pair_key.rb +16 -0
  75. data/lib/leftovers/matcher_builders/node_type.rb +9 -9
  76. data/lib/leftovers/matcher_builders/node_value.rb +23 -9
  77. data/lib/leftovers/matcher_builders/or.rb +22 -7
  78. data/lib/leftovers/matcher_builders/path.rb +3 -1
  79. data/lib/leftovers/matcher_builders.rb +1 -1
  80. data/lib/leftovers/matchers/all.rb +4 -0
  81. data/lib/leftovers/matchers/and.rb +4 -0
  82. data/lib/leftovers/matchers/any.rb +2 -0
  83. data/lib/leftovers/matchers/node_has_any_keyword_argument.rb +7 -4
  84. data/lib/leftovers/matchers/node_has_any_positional_argument_with_value.rb +5 -4
  85. data/lib/leftovers/matchers/node_has_positional_argument.rb +5 -1
  86. data/lib/leftovers/matchers/node_has_positional_argument_with_value.rb +6 -1
  87. data/lib/leftovers/matchers/node_has_receiver.rb +4 -0
  88. data/lib/leftovers/matchers/node_is_proc.rb +13 -0
  89. data/lib/leftovers/matchers/node_name.rb +9 -3
  90. data/lib/leftovers/matchers/node_pair_key.rb +23 -0
  91. data/lib/leftovers/matchers/node_pair_value.rb +7 -3
  92. data/lib/leftovers/matchers/node_path.rb +7 -3
  93. data/lib/leftovers/matchers/node_privacy.rb +7 -3
  94. data/lib/leftovers/matchers/node_scalar_value.rb +6 -1
  95. data/lib/leftovers/matchers/node_type.rb +7 -3
  96. data/lib/leftovers/matchers/not.rb +2 -0
  97. data/lib/leftovers/matchers/or.rb +2 -0
  98. data/lib/leftovers/matchers/path.rb +21 -0
  99. data/lib/leftovers/matchers.rb +3 -1
  100. data/lib/leftovers/merged_config.rb +26 -25
  101. data/lib/leftovers/parser.rb +7 -4
  102. data/lib/leftovers/precompilers.rb +5 -5
  103. data/lib/leftovers/processor_builders/action.rb +55 -37
  104. data/lib/leftovers/processor_builders/add_prefix.rb +18 -10
  105. data/lib/leftovers/processor_builders/add_suffix.rb +18 -10
  106. data/lib/leftovers/processor_builders/argument.rb +28 -11
  107. data/lib/leftovers/processor_builders/dynamic.rb +37 -31
  108. data/lib/leftovers/processor_builders/each.rb +82 -10
  109. data/lib/leftovers/processor_builders/itself.rb +2 -2
  110. data/lib/leftovers/processor_builders/keyword.rb +7 -6
  111. data/lib/leftovers/processor_builders/keyword_argument.rb +4 -2
  112. data/lib/leftovers/processor_builders/receiver.rb +13 -0
  113. data/lib/leftovers/processor_builders/transform.rb +55 -44
  114. data/lib/leftovers/processor_builders/transform_chain.rb +1 -1
  115. data/lib/leftovers/processor_builders/transform_set.rb +9 -29
  116. data/lib/leftovers/processor_builders/value.rb +4 -4
  117. data/lib/leftovers/processor_builders.rb +1 -3
  118. data/lib/leftovers/processors/add_call.rb +14 -0
  119. data/lib/leftovers/processors/add_definition_node.rb +16 -0
  120. data/lib/leftovers/processors/add_dynamic_prefix.rb +29 -0
  121. data/lib/leftovers/processors/add_dynamic_suffix.rb +29 -0
  122. data/lib/leftovers/{value_processors → processors}/add_prefix.rb +7 -3
  123. data/lib/leftovers/{value_processors → processors}/add_suffix.rb +7 -3
  124. data/lib/leftovers/processors/append_sym.rb +13 -0
  125. data/lib/leftovers/{value_processors → processors}/camelize.rb +7 -3
  126. data/lib/leftovers/{value_processors → processors}/capitalize.rb +7 -3
  127. data/lib/leftovers/{value_processors → processors}/deconstantize.rb +7 -3
  128. data/lib/leftovers/{value_processors → processors}/delete_after.rb +9 -5
  129. data/lib/leftovers/processors/delete_after_last.rb +26 -0
  130. data/lib/leftovers/processors/delete_before.rb +27 -0
  131. data/lib/leftovers/processors/delete_before_last.rb +27 -0
  132. data/lib/leftovers/{value_processors → processors}/delete_prefix.rb +7 -3
  133. data/lib/leftovers/{value_processors → processors}/delete_suffix.rb +7 -3
  134. data/lib/leftovers/{value_processors → processors}/demodulize.rb +7 -3
  135. data/lib/leftovers/{value_processors → processors}/downcase.rb +7 -3
  136. data/lib/leftovers/processors/each.rb +25 -0
  137. data/lib/leftovers/processors/each_for_definition_set.rb +33 -0
  138. data/lib/leftovers/processors/each_keyword.rb +29 -0
  139. data/lib/leftovers/processors/each_keyword_argument.rb +29 -0
  140. data/lib/leftovers/processors/each_positional_argument.rb +27 -0
  141. data/lib/leftovers/processors/each_positional_argument_from.rb +30 -0
  142. data/lib/leftovers/processors/eval.rb +16 -0
  143. data/lib/leftovers/processors/itself.rb +21 -0
  144. data/lib/leftovers/processors/keyword_argument.rb +30 -0
  145. data/lib/leftovers/processors/match_current_node.rb +26 -0
  146. data/lib/leftovers/processors/match_matched_node.rb +26 -0
  147. data/lib/leftovers/{value_processors → processors}/parameterize.rb +7 -3
  148. data/lib/leftovers/{value_processors → processors}/placeholder.rb +5 -4
  149. data/lib/leftovers/{value_processors → processors}/pluralize.rb +7 -3
  150. data/lib/leftovers/{value_processors → processors}/positional_argument.rb +8 -6
  151. data/lib/leftovers/processors/receiver.rb +24 -0
  152. data/lib/leftovers/{value_processors → processors}/replace_value.rb +7 -3
  153. data/lib/leftovers/processors/set_default_privacy.rb +21 -0
  154. data/lib/leftovers/processors/set_privacy.rb +23 -0
  155. data/lib/leftovers/{value_processors → processors}/singularize.rb +7 -3
  156. data/lib/leftovers/{value_processors → processors}/split.rb +8 -4
  157. data/lib/leftovers/{value_processors → processors}/swapcase.rb +7 -3
  158. data/lib/leftovers/{value_processors → processors}/titleize.rb +7 -3
  159. data/lib/leftovers/{value_processors → processors}/underscore.rb +7 -3
  160. data/lib/leftovers/{value_processors → processors}/upcase.rb +7 -3
  161. data/lib/leftovers/processors.rb +49 -0
  162. data/lib/leftovers/version.rb +1 -1
  163. data/lib/leftovers.rb +3 -12
  164. metadata +97 -52
  165. data/lib/leftovers/dynamic_processors/call.rb +0 -22
  166. data/lib/leftovers/dynamic_processors/call_definition.rb +0 -34
  167. data/lib/leftovers/dynamic_processors/definition.rb +0 -27
  168. data/lib/leftovers/dynamic_processors/each.rb +0 -19
  169. data/lib/leftovers/dynamic_processors/null.rb +0 -9
  170. data/lib/leftovers/dynamic_processors/set_default_privacy.rb +0 -18
  171. data/lib/leftovers/dynamic_processors/set_privacy.rb +0 -23
  172. data/lib/leftovers/dynamic_processors.rb +0 -13
  173. data/lib/leftovers/matcher_builders/node_pair_name.rb +0 -18
  174. data/lib/leftovers/matchers/predicate.rb +0 -19
  175. data/lib/leftovers/processor_builders/each_action.rb +0 -51
  176. data/lib/leftovers/processor_builders/each_dynamic.rb +0 -50
  177. data/lib/leftovers/processor_builders/each_for_definition_set.rb +0 -40
  178. data/lib/leftovers/value_processors/add_dynamic_prefix.rb +0 -24
  179. data/lib/leftovers/value_processors/add_dynamic_suffix.rb +0 -24
  180. data/lib/leftovers/value_processors/delete_before.rb +0 -22
  181. data/lib/leftovers/value_processors/each.rb +0 -21
  182. data/lib/leftovers/value_processors/each_for_definition_set.rb +0 -23
  183. data/lib/leftovers/value_processors/each_keyword.rb +0 -27
  184. data/lib/leftovers/value_processors/each_keyword_argument.rb +0 -27
  185. data/lib/leftovers/value_processors/each_positional_argument.rb +0 -25
  186. data/lib/leftovers/value_processors/itself.rb +0 -17
  187. data/lib/leftovers/value_processors/keyword.rb +0 -28
  188. data/lib/leftovers/value_processors/keyword_argument.rb +0 -28
  189. data/lib/leftovers/value_processors/return_definition_node.rb +0 -14
  190. data/lib/leftovers/value_processors/return_sym.rb +0 -14
  191. data/lib/leftovers/value_processors.rb +0 -40
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class AddDynamicPrefix
6
- def initialize(prefix_processor, then_processor)
7
- @prefix_processor = prefix_processor
8
- @then_processor = then_processor
9
-
10
- freeze
11
- end
12
-
13
- def process(str, node, method_node)
14
- return unless str
15
-
16
- prefixes = @prefix_processor.process(nil, method_node, method_node)
17
-
18
- Leftovers.map_or_self(prefixes) do |prefix|
19
- @then_processor.process("#{prefix}#{str}", node, method_node)
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class AddDynamicSuffix
6
- def initialize(suffix_processor, then_processor)
7
- @suffix_processor = suffix_processor
8
- @then_processor = then_processor
9
-
10
- freeze
11
- end
12
-
13
- def process(str, node, method_node)
14
- return unless str
15
-
16
- suffixes = @suffix_processor.process(nil, method_node, method_node)
17
-
18
- Leftovers.map_or_self(suffixes) do |suffix|
19
- @then_processor.process("#{str}#{suffix}", node, method_node)
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class DeleteBefore
6
- def initialize(delete_before, then_processor)
7
- @delete_before = delete_before
8
- @then_processor = then_processor
9
-
10
- freeze
11
- end
12
-
13
- def process(str, node, method_node)
14
- return unless str
15
-
16
- # TODO: investigate index
17
- str = str.split(@delete_before, 2)[1] || str
18
- @then_processor.process(str, node, method_node)
19
- end
20
- end
21
- end
22
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class Each
6
- attr_reader :processors
7
-
8
- def initialize(processors)
9
- @processors = processors
10
-
11
- freeze
12
- end
13
-
14
- def process(str, node, method_node)
15
- Leftovers.map_or_self(@processors) do |processor|
16
- processor.process(str, node, method_node)
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,23 +0,0 @@
1
- # frozen-string-literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class EachForDefinitionSet
6
- def initialize(then_processors)
7
- @then_processors = then_processors
8
-
9
- freeze
10
- end
11
-
12
- def process(str, node, method_node)
13
- definitions = Leftovers.map_or_self(@then_processors) do |then_processor|
14
- then_processor.process(str, node, method_node)
15
- end
16
-
17
- return definitions unless definitions.is_a?(Array)
18
-
19
- ::Leftovers::DefinitionNodeSet.new(definitions)
20
- end
21
- end
22
- end
23
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class EachKeyword
6
- def initialize(then_processor)
7
- @then_processor = then_processor
8
-
9
- freeze
10
- end
11
-
12
- def process(_str, node, method_node)
13
- kwargs = node.kwargs
14
- return unless kwargs
15
-
16
- Leftovers.map_or_self(kwargs.children) do |pair|
17
- next unless pair.type == :pair
18
-
19
- argument_node = pair.first
20
- str = argument_node.to_s if argument_node.string_or_symbol?
21
-
22
- @then_processor.process(str, argument_node, method_node)
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class EachKeywordArgument
6
- def initialize(then_processor)
7
- @then_processor = then_processor
8
-
9
- freeze
10
- end
11
-
12
- def process(_str, node, method_node)
13
- kwargs = node.kwargs
14
- return unless kwargs
15
-
16
- Leftovers.map_or_self(kwargs.children) do |pair|
17
- next unless pair.type == :pair
18
-
19
- argument_node = pair.second
20
- str = argument_node.to_s if argument_node.string_or_symbol?
21
-
22
- @then_processor.process(str, argument_node, method_node)
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class EachPositionalArgument
6
- def initialize(then_processor)
7
- @then_processor = then_processor
8
-
9
- freeze
10
- end
11
-
12
- def process(_str, node, method_node)
13
- positional_arguments = node.positional_arguments
14
-
15
- return unless positional_arguments
16
-
17
- Leftovers.map_or_self(positional_arguments) do |argument_node|
18
- str = argument_node.to_s if argument_node.string_or_symbol_or_def?
19
-
20
- @then_processor.process(str, argument_node, method_node)
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class Itself
6
- def initialize(then_processor)
7
- @then_processor = then_processor
8
-
9
- freeze
10
- end
11
-
12
- def process(_str, node, method_node)
13
- @then_processor.process(method_node.to_s, node, method_node)
14
- end
15
- end
16
- end
17
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class Keyword
6
- def initialize(matcher, then_processor)
7
- @matcher = matcher
8
- @then_processor = then_processor
9
-
10
- freeze
11
- end
12
-
13
- def process(_str, node, method_node)
14
- kwargs = node.kwargs
15
- return unless kwargs
16
-
17
- Leftovers.map_or_self(kwargs.children) do |pair|
18
- next unless @matcher === pair
19
-
20
- argument_node = pair.first
21
- str = argument_node.to_s if argument_node.string_or_symbol?
22
-
23
- @then_processor.process(str, argument_node, method_node)
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- class KeywordArgument
6
- def initialize(matcher, then_processor)
7
- @matcher = matcher
8
- @then_processor = then_processor
9
-
10
- freeze
11
- end
12
-
13
- def process(_str, node, method_node)
14
- kwargs = node.kwargs
15
- return unless kwargs
16
-
17
- Leftovers.map_or_self(kwargs.children) do |pair|
18
- next unless @matcher === pair
19
-
20
- argument_node = pair.second
21
- str = argument_node.to_s if argument_node.string_or_symbol?
22
-
23
- @then_processor.process(str, argument_node, method_node)
24
- end
25
- end
26
- end
27
- end
28
- end
@@ -1,14 +0,0 @@
1
- # frozen-string-literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- module ReturnDefinitionNode
6
- def self.process(str, node, _method_node)
7
- return unless str
8
- return if str.empty?
9
-
10
- Leftovers::DefinitionNode.new(node, name: str.to_sym)
11
- end
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- module ReturnSym
6
- def self.process(str, _node, _method_node)
7
- return unless str
8
- return if str.empty?
9
-
10
- str.to_sym
11
- end
12
- end
13
- end
14
- end
@@ -1,40 +0,0 @@
1
- # frozen-string-literal: true
2
-
3
- module Leftovers
4
- module ValueProcessors
5
- autoload(:AddDynamicPrefix, "#{__dir__}/value_processors/add_dynamic_prefix")
6
- autoload(:AddDynamicSuffix, "#{__dir__}/value_processors/add_dynamic_suffix")
7
- autoload(:AddPrefix, "#{__dir__}/value_processors/add_prefix")
8
- autoload(:AddSuffix, "#{__dir__}/value_processors/add_suffix")
9
- autoload(:Camelize, "#{__dir__}/value_processors/camelize")
10
- autoload(:Capitalize, "#{__dir__}/value_processors/capitalize")
11
- autoload(:Deconstantize, "#{__dir__}/value_processors/deconstantize")
12
- autoload(:DeleteAfter, "#{__dir__}/value_processors/delete_after")
13
- autoload(:DeleteBefore, "#{__dir__}/value_processors/delete_before")
14
- autoload(:DeletePrefix, "#{__dir__}/value_processors/delete_prefix")
15
- autoload(:DeleteSuffix, "#{__dir__}/value_processors/delete_suffix")
16
- autoload(:Demodulize, "#{__dir__}/value_processors/demodulize")
17
- autoload(:Downcase, "#{__dir__}/value_processors/downcase")
18
- autoload(:EachForDefinitionSet, "#{__dir__}/value_processors/each_for_definition_set")
19
- autoload(:EachKeyword, "#{__dir__}/value_processors/each_keyword")
20
- autoload(:EachKeywordArgument, "#{__dir__}/value_processors/each_keyword_argument")
21
- autoload(:EachPositionalArgument, "#{__dir__}/value_processors/each_positional_argument")
22
- autoload(:Each, "#{__dir__}/value_processors/each")
23
- autoload(:Itself, "#{__dir__}/value_processors/itself")
24
- autoload(:Keyword, "#{__dir__}/value_processors/keyword")
25
- autoload(:KeywordArgument, "#{__dir__}/value_processors/keyword_argument")
26
- autoload(:Parameterize, "#{__dir__}/value_processors/parameterize")
27
- autoload(:Placeholder, "#{__dir__}/value_processors/placeholder")
28
- autoload(:Pluralize, "#{__dir__}/value_processors/pluralize")
29
- autoload(:PositionalArgument, "#{__dir__}/value_processors/positional_argument")
30
- autoload(:ReplaceValue, "#{__dir__}/value_processors/replace_value")
31
- autoload(:ReturnDefinitionNode, "#{__dir__}/value_processors/return_definition_node")
32
- autoload(:ReturnSym, "#{__dir__}/value_processors/return_sym")
33
- autoload(:Singularize, "#{__dir__}/value_processors/singularize")
34
- autoload(:Split, "#{__dir__}/value_processors/split")
35
- autoload(:Swapcase, "#{__dir__}/value_processors/swapcase")
36
- autoload(:Titleize, "#{__dir__}/value_processors/titleize")
37
- autoload(:Underscore, "#{__dir__}/value_processors/underscore")
38
- autoload(:Upcase, "#{__dir__}/value_processors/upcase")
39
- end
40
- end