avm-tools 0.105.0 → 0.106.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: 3fe2686915966fcba0a1a718e139ea1e4ba92ee4c8f26ddb99abbe550e490061
4
- data.tar.gz: a6a2010d4a8cf1a3647641669e967268a09a93ef993625a19407aae1d7ec9ecc
3
+ metadata.gz: 4a71fc17b60e581ba891e58d0b47ad9b4dbae79c2085540bb1816e02011e9af9
4
+ data.tar.gz: 15387681892ce7192edd15b0e68ee801ed0fca233454b802df21f7d5e0a211a4
5
5
  SHA512:
6
- metadata.gz: 21e08baec23bb4811d5ee4db550dd2b15909f26e02d40ca610f86e651194dcc6ccf19b91d82f9c0fa5b2cfe3c17a8ee8c37459a2e433d831e9a26f2748475e47
7
- data.tar.gz: f150f90534d39728ec14e9ada47b2a0e13522b47218984447832075ee3876c20dad0cddf5bc11ee7c899eb06e49c7b6845354fb631c06affc439b5b72bfe0e23
6
+ metadata.gz: d61dadda2108d0d2b7a37f9ec55bbcbc73e222c87f463feec8b91d8f486b3869f1652849296a9bcb7c33e58fe65f1a99f5d12fe7e71c2b1fcf58231b2f453124
7
+ data.tar.gz: 13a712ee6f75e13797fcf5107ad9b0c72f730195d4264e36ea5368635205aa68c55deb88c8055f01381342cefe48bf74d0decba9d6fe5052df6c6571622a1daf
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_base0/core_ext'
4
+
5
+ module Avm
6
+ module Tools
7
+ class Runner
8
+ class AppSrc
9
+ class Ruby
10
+ class Bundler
11
+ class GemfileLock
12
+ module Git
13
+ private
14
+
15
+ def git_continue
16
+ return unless check_capability(__method__, :git_repo, :continue)
17
+
18
+ infom "Adding \"#{gemfile_lock}\"..."
19
+ instance.git_repo.command('add', gemfile_lock).execute!
20
+ if rebase_conflict?
21
+ git_continue_run('rebase')
22
+ elsif cherry_conflict?
23
+ git_continue_run('cherry-pick')
24
+ else
25
+ raise 'Unknown how to continue'
26
+ end
27
+ end
28
+
29
+ def git_continue_run(command)
30
+ infom "\"#{command}\" --continue..."
31
+ cmd = instance.git_repo.command(command, '--continue')
32
+ .envvar('GIT_EDITOR', 'true')
33
+ return unless !cmd.system && !conflict?
34
+
35
+ fatal_error "\"#{cmd}\" failed and there is no conflict"
36
+ end
37
+
38
+ def git_reset_checkout
39
+ return unless check_capability(__method__, :git_repo, nil)
40
+
41
+ git_reset_gemfile_lock
42
+ git_checkout_gemfile_lock
43
+ end
44
+
45
+ def git_checkout_gemfile_lock
46
+ infom 'Checkouting...'
47
+ instance.git_repo.command('checkout', '--', gemfile_lock).system!
48
+ end
49
+
50
+ def git_reset_gemfile_lock
51
+ infom 'Reseting...'
52
+ instance.git_repo.command('reset', gemfile_lock).system! if
53
+ ::File.exist?(gemfile_lock)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -9,18 +9,21 @@ module Avm
9
9
  class Ruby
10
10
  class Bundler
11
11
  class GemfileLock
12
+ require_sub __FILE__, include_modules: true
12
13
  runner_with :help do
13
14
  desc 'Manipulage a "Gemfile.lock" file.'
14
15
  bool_opt '-c', '--continue', 'Continue Git rebase/cherry-pick.'
15
16
  bool_opt '-i', '--install', 'Run "bundle install".'
16
17
  bool_opt '-u', '--update', 'Run "bundle update".'
17
18
  bool_opt '-r', '--recursive', 'Run until Git rebase/cherry-pick is finished.'
18
- bool_opt '-a', '--all', 'Same as "-ciru".'
19
+ bool_opt '-a', '--all', 'Same as "-cirud".'
20
+ bool_opt '-d', '--delete', 'Delete Gemfile.lock'
19
21
  end
20
22
 
21
23
  def run
22
24
  loop do
23
25
  git_reset_checkout
26
+ delete_gemfile_lock
24
27
  bundle_update
25
28
  bundle_install
26
29
  git_continue
@@ -34,17 +37,14 @@ module Avm
34
37
  !option_or_all?(:recursive) || !conflict?
35
38
  end
36
39
 
37
- def rebasing?
38
- instance.git_repo.root_path.join('.git', 'rebase-merge').exist?
39
- end
40
+ def delete_gemfile_lock
41
+ return unless check_capability(__method__, nil, :delete)
40
42
 
41
- def git_reset_checkout
42
- return unless check_capability(__method__, :git_repo, nil)
43
+ ::FileUtils.rm_f(gemfile_lock)
44
+ end
43
45
 
44
- infom 'Reseting...'
45
- instance.git_repo.command('reset', gemfile_lock).system!
46
- infom 'Checkouting...'
47
- instance.git_repo.command('checkout', '--', gemfile_lock).system!
46
+ def rebasing?
47
+ instance.git_repo.root_path.join('.git', 'rebase-merge').exist?
48
48
  end
49
49
 
50
50
  def bundle_install
@@ -61,44 +61,14 @@ module Avm
61
61
  bundle_run('update')
62
62
  end
63
63
 
64
- def git_continue
65
- return unless check_capability(__method__, :git_repo, :continue)
66
-
67
- infom "Adding \"#{gemfile_lock}\"..."
68
- instance.git_repo.command('add', gemfile_lock).execute!
69
- if rebase_conflict?
70
- git_continue_run('rebase')
71
- elsif cherry_conflict?
72
- git_continue_run('cherry-pick')
73
- else
74
- raise 'Unknown how to continue'
75
- end
76
- end
77
-
78
- def git_continue_run(command)
79
- infom "\"#{command}\" --continue..."
80
- cmd = instance.git_repo.command(command, '--continue').envvar('GIT_EDITOR', 'true')
81
- return unless !cmd.system && !conflict?
82
-
83
- fatal_error "\"#{cmd}\" failed and there is no conflict"
84
- end
85
-
86
64
  def gemfile_lock
87
65
  'Gemfile.lock'
88
66
  end
89
67
 
90
- def git_uncached
91
- ::EacGit::Local.new(git_path)
92
- end
93
-
94
68
  def bundle_run(*args)
95
69
  instance.ruby_gem.bundle(*args).system!
96
70
  end
97
71
 
98
- def git_path
99
- '.'
100
- end
101
-
102
72
  def conflict?
103
73
  rebase_conflict? || cherry_conflict?
104
74
  end
@@ -121,7 +91,7 @@ module Avm
121
91
 
122
92
  def check_capability(caller, capability, option)
123
93
  return false unless option.blank? || option_or_all?(option)
124
- return true if instance.respond_to?(capability)
94
+ return true if capability.if_present(true) { |v| instance.respond_to?(v) }
125
95
 
126
96
  warn "Cannot run #{caller}: instance has no capability \"#{capability}\""
127
97
  false
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Tools
5
- VERSION = '0.105.0'
5
+ VERSION = '0.106.0'
6
6
  end
7
7
  end
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avm/files/info'
4
+
3
5
  module Avm
4
6
  module Files
5
7
  class Formatter
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Avm
4
- VERSION = '0.3.1'
4
+ VERSION = '0.3.2'
5
5
  end
@@ -9,9 +9,10 @@ RSpec.describe ::Avm::Git::AutoCommitPath, git: true do
9
9
  {
10
10
  'app/models/mynamespace/the_class.rb' => 'Mynamespace::TheClass',
11
11
  'lib/ruby/lib/cliutils/eac_redmine_base0/activity.rb' => 'Cliutils::EacRedmineBase0::Activity'
12
- }.each do |path, expected_class_name|
13
- context "when path is \"#{path}\"" do
14
- let(:instance) { described_class.new(git, "#{git}/#{path}") }
12
+ }.each do |relative_path, expected_class_name|
13
+ context "when path is \"#{relative_path}\"" do
14
+ let(:path) { git.root_path.join(relative_path) }
15
+ let(:instance) { described_class.new(git, path) }
15
16
 
16
17
  it { expect(instance.class_name).to eq(expected_class_name) }
17
18
  end
@@ -13,7 +13,7 @@ module EacCli
13
13
  repeat? ? previous_value + [new_value] : new_value
14
14
  end
15
15
 
16
- def default_value
16
+ def default_default_value
17
17
  repeat? ? [] : nil
18
18
  end
19
19
  end
@@ -18,7 +18,7 @@ module EacCli
18
18
 
19
19
  enable_listable
20
20
  enable_abstract_methods :build_value, :default_value
21
- lists.add_symbol :option, :optional, :usage, :repeat, :required
21
+ lists.add_symbol :option, :default, :optional, :usage, :repeat, :required
22
22
  common_constructor :short, :long, :description, :options, default: [{}] do
23
23
  raise 'Nor short neither long selector was set' if short.blank? && long.blank?
24
24
 
@@ -27,6 +27,14 @@ module EacCli
27
27
  )
28
28
  end
29
29
 
30
+ def default_value
31
+ default_value? ? options[OPTION_DEFAULT] : default_default_value
32
+ end
33
+
34
+ def default_value?
35
+ options.key?(OPTION_DEFAULT)
36
+ end
37
+
30
38
  def identifier
31
39
  [long, short].each do |v|
32
40
  v.to_s.if_present { |vv| return vv.variableize.to_sym }
@@ -14,6 +14,12 @@ module EacCli
14
14
  end
15
15
 
16
16
  def default_value
17
+ return super unless default_value?
18
+
19
+ raise "Unallowed default value for boolean options (Option: #{self})"
20
+ end
21
+
22
+ def default_default_value
17
23
  repeat? ? 0 : false
18
24
  end
19
25
  end
@@ -36,9 +36,9 @@ module EacCli
36
36
  end
37
37
 
38
38
  def option_definition(option)
39
- self.class.option_usage_full(option) + option.description.if_present('') do |v|
40
- OPTION_DESC_SEP + v
41
- end
39
+ [self.class.option_usage_full(option), option.description,
40
+ option.default_value? ? "[Default: \"#{option.default_value}\"]" : nil]
41
+ .reject(&:blank?).join(OPTION_DESC_SEP)
42
42
  end
43
43
 
44
44
  def section(header, include_header = true)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacCli
4
- VERSION = '0.22.2'
4
+ VERSION = '0.23.0'
5
5
  end
@@ -13,6 +13,7 @@ RSpec.describe ::EacCli::Runner do
13
13
  bool_opt '-p', '--opt2', 'A boolean option'
14
14
  arg_opt '-q', '--opt4', 'A repeatable argument option.', repeat: true
15
15
  bool_opt '-r', '--opt5', 'A repeatable boolean option', repeat: true
16
+ arg_opt '-s', '--opt6', 'A argument option with default value', default: 'DEFAULT'
16
17
  pos_arg :pos1
17
18
  pos_arg :pos2, repeat: true, optional: true
18
19
  alt do
@@ -28,9 +29,9 @@ RSpec.describe ::EacCli::Runner do
28
29
  let(:parsed_actual) { instance.parsed.to_h.symbolize_keys }
29
30
 
30
31
  context 'when all args are supplied' do
31
- let(:argv) { %w[--opt1 aaa --opt2 bbb ccc ddd] }
32
+ let(:argv) { %w[--opt1 aaa --opt2 bbb ccc ddd --opt6 6] }
32
33
  let(:parsed_expected) do
33
- { opt1: 'aaa', opt2: true, opt3: false, opt4: [], opt5: 0, pos1: 'bbb',
34
+ { opt1: 'aaa', opt2: true, opt3: false, opt4: [], opt5: 0, opt6: '6', pos1: 'bbb',
34
35
  pos2: %w[ccc ddd] }
35
36
  end
36
37
 
@@ -65,7 +66,7 @@ RSpec.describe ::EacCli::Runner do
65
66
  context 'when only required args are supplied' do
66
67
  let(:argv) { %w[bbb] }
67
68
  let(:parsed_expected) do
68
- { opt1: nil, opt2: false, opt3: false, opt4: [], opt5: 0, pos1: 'bbb',
69
+ { opt1: nil, opt2: false, opt3: false, opt4: [], opt5: 0, opt6: 'DEFAULT', pos1: 'bbb',
69
70
  pos2: [] }
70
71
  end
71
72
 
@@ -87,7 +88,7 @@ RSpec.describe ::EacCli::Runner do
87
88
  context 'when alternative args are supplied' do
88
89
  let(:argv) { %w[--opt3] }
89
90
  let(:parsed_expected) do
90
- { opt1: nil, opt2: false, opt3: true, opt4: [], opt5: 0, pos1: nil,
91
+ { opt1: nil, opt2: false, opt3: true, opt4: [], opt5: 0, opt6: 'DEFAULT', pos1: nil,
91
92
  pos2: [] }
92
93
  end
93
94
 
@@ -98,7 +99,7 @@ RSpec.describe ::EacCli::Runner do
98
99
  context 'when repeated options are supplied' do
99
100
  let(:argv) { %w[--opt5 -rrr --opt4=A -q B --opt4 C AAA] }
100
101
  let(:parsed_expected) do
101
- { opt1: nil, opt2: false, opt3: false, opt4: %w[A B C], opt5: 4, pos1: 'AAA',
102
+ { opt1: nil, opt2: false, opt3: false, opt4: %w[A B C], opt5: 4, opt6: 'DEFAULT', pos1: 'AAA',
102
103
  pos2: [] }
103
104
  end
104
105
 
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyUtils
4
+ class Compact
5
+ attr_reader :object, :attributes
6
+
7
+ def initialize(object, attributes)
8
+ @object = object
9
+ @attributes = attributes
10
+ end
11
+
12
+ # @return [Array]
13
+ def to_a
14
+ attributes.map { |attr| object.send(attr) }
15
+ end
16
+
17
+ # @return [Hash]
18
+ def to_h
19
+ attributes.map { |attr| [attr.to_sym, object.send(attr)] }.to_h
20
+ end
21
+ end
22
+ end
@@ -6,7 +6,7 @@ require 'tmpdir'
6
6
  module EacRubyUtils
7
7
  class << self
8
8
  def fs_cache
9
- @fs_cache ||= ::EacRubyUtils::FilesystemCache.new(::Dir.tmpdir, 'eac_ruby_utils', '.cache')
9
+ @fs_cache ||= ::EacRubyUtils::FilesystemCache.new(::Dir.tmpdir, 'eac_ruby_utils_fs_cache')
10
10
  end
11
11
  end
12
12
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/compact'
4
+
5
+ class Object
6
+ # @return [EacRubyUtils::Compact]
7
+ def compact(*attributes)
8
+ ::EacRubyUtils::Compact.new(self, attributes)
9
+ end
10
+
11
+ # @return [Array]
12
+ def compact_to_a(*attributes)
13
+ compact(*attributes).to_a
14
+ end
15
+
16
+ # @return [Hash]
17
+ def compact_to_h(*attributes)
18
+ compact(*attributes).to_h
19
+ end
20
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/string_delimited'
4
+
5
+ class String
6
+ # @return [EacRubyUtils::StringDelimited]
7
+ def delimited(begin_delimiter, end_delimiter)
8
+ ::EacRubyUtils::StringDelimited.new(self, begin_delimiter, end_delimiter)
9
+ end
10
+
11
+ %w[inner outer without_inner without_outer].each do |method_suffix|
12
+ define_method "delimited_#{method_suffix}" do |begin_delimiter, end_delimiter|
13
+ delimited(begin_delimiter, end_delimiter).send(method_suffix)
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacRubyUtils
4
+ class StringDelimited
5
+ attr_reader :string, :begin_delimiter, :end_delimiter
6
+
7
+ def initialize(string, begin_delimiter, end_delimiter)
8
+ @string = string
9
+ @begin_delimiter = begin_delimiter
10
+ @end_delimiter = end_delimiter
11
+ end
12
+
13
+ def inner
14
+ between_indexes(content_index, end_index).to_s
15
+ end
16
+
17
+ def outer
18
+ between_indexes(begin_index, after_end_index).to_s
19
+ end
20
+
21
+ def without_inner
22
+ without_join(
23
+ between_indexes(sos_index, content_index), between_indexes(end_index, eos_index)
24
+ )
25
+ end
26
+
27
+ def without_outer
28
+ without_join(
29
+ between_indexes(sos_index, begin_index),
30
+ between_indexes(after_end_index, eos_index)
31
+ )
32
+ end
33
+
34
+ private
35
+
36
+ def after_end_index
37
+ end_index.if_present { |v| v + end_delimiter.length }
38
+ end
39
+
40
+ def begin_index
41
+ string.index(begin_delimiter)
42
+ end
43
+
44
+ def between_indexes(a_begin_index, a_end_index)
45
+ a_begin_index && a_end_index ? string[a_begin_index, a_end_index - a_begin_index] : nil
46
+ end
47
+
48
+ def content_index
49
+ begin_index.if_present { |v| v + begin_delimiter.length }
50
+ end
51
+
52
+ def without_join(*strings)
53
+ return string if strings.any?(&:nil?)
54
+
55
+ strings.join('')
56
+ end
57
+
58
+ def end_index
59
+ content_index.if_present { |_v| string.index(end_delimiter, content_index) }
60
+ end
61
+
62
+ def sos_index
63
+ 0
64
+ end
65
+
66
+ def eos_index
67
+ string.length
68
+ end
69
+ end
70
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.74.0'
4
+ VERSION = '0.75.0'
5
5
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/compact'
4
+
5
+ ::RSpec.describe ::EacRubyUtils::Compact do
6
+ let(:object) { ::OpenStruct.new(a_attr: 'a_value', b_attr: 'b_value') }
7
+ let(:instance) { described_class.new(object, %w[a_attr b_attr]) }
8
+
9
+ describe '#to_a' do
10
+ it do
11
+ expect(instance.to_a).to eq(%w[a_value b_value])
12
+ end
13
+ end
14
+
15
+ describe '#to_h' do
16
+ it do
17
+ expect(instance.to_h).to eq(a_attr: 'a_value', b_attr: 'b_value')
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/patches/object/compact'
4
+
5
+ ::RSpec.describe ::Object do
6
+ let(:instance) { ::OpenStruct.new(a_attr: 'a_value', b_attr: 'b_value') }
7
+ let(:attributes) { %w[a_attr b_attr] }
8
+
9
+ describe '#compact' do
10
+ it do
11
+ expect(instance.compact_to_a(*attributes)).to eq(%w[a_value b_value])
12
+ end
13
+ end
14
+
15
+ describe '#to_h' do
16
+ it do
17
+ expect(instance.compact_to_h(*attributes)).to eq(a_attr: 'a_value', b_attr: 'b_value')
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/patches/string/delimited'
4
+
5
+ ::RSpec.describe ::String do
6
+ let(:instance) { 'A text with <b>content between</b> tags.' }
7
+
8
+ {
9
+ ['<b>', '</b>'] => {
10
+ 'inner' => 'content between',
11
+ 'without_inner' => 'A text with <b></b> tags.',
12
+ 'outer' => '<b>content between</b>',
13
+ 'without_outer' => 'A text with tags.'
14
+ },
15
+ ['<b>', '</br>'] => {
16
+ 'inner' => '',
17
+ 'without_inner' => 'A text with <b>content between</b> tags.',
18
+ 'outer' => '',
19
+ 'without_outer' => 'A text with <b>content between</b> tags.'
20
+ }
21
+ }.each do |delimiters, expected_values|
22
+ context "when delimiters are #{delimiters}" do
23
+ let(:bdel) { delimiters[0] }
24
+ let(:edel) { delimiters[1] }
25
+
26
+ expected_values.each do |method_suffix, expected_value|
27
+ method_name = "delimited_#{method_suffix}"
28
+ it "#{method_name} should return \"#{expected_value}\"" do
29
+ expect(instance.send(method_name, bdel, edel)).to eq(expected_value)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.105.0
4
+ version: 0.106.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-09-02 00:00:00.000000000 Z
11
+ date: 2021-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -513,6 +513,7 @@ files:
513
513
  - lib/avm/tools/runner/app_src/ruby.rb
514
514
  - lib/avm/tools/runner/app_src/ruby/bundler.rb
515
515
  - lib/avm/tools/runner/app_src/ruby/bundler/gemfile_lock.rb
516
+ - lib/avm/tools/runner/app_src/ruby/bundler/gemfile_lock/git.rb
516
517
  - lib/avm/tools/runner/app_src/ruby/bundler/incompatible.rb
517
518
  - lib/avm/tools/runner/app_src/test.rb
518
519
  - lib/avm/tools/runner/app_src/update.rb
@@ -1172,6 +1173,7 @@ files:
1172
1173
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/class_initialize.rb
1173
1174
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/instance_initialize.rb
1174
1175
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/common_constructor/super_args.rb
1176
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/compact.rb
1175
1177
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/context.rb
1176
1178
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/contextualizable.rb
1177
1179
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/core_ext.rb
@@ -1253,6 +1255,7 @@ files:
1253
1255
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/module/speaker.rb
1254
1256
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object.rb
1255
1257
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/asserts.rb
1258
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/compact.rb
1256
1259
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/debug.rb
1257
1260
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_nil.rb
1258
1261
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/object/if_present.rb
@@ -1265,6 +1268,7 @@ files:
1265
1268
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/if_match.rb
1266
1269
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/regexp/to_parser.rb
1267
1270
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string.rb
1271
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string/delimited.rb
1268
1272
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/string/inflector.rb
1269
1273
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time.rb
1270
1274
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/patches/time/required_zone.rb
@@ -1285,6 +1289,7 @@ files:
1285
1289
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker.rb
1286
1290
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/receiver.rb
1287
1291
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/speaker/sender.rb
1292
+ - vendor/eac_ruby_utils/lib/eac_ruby_utils/string_delimited.rb
1288
1293
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/struct.rb
1289
1294
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/version.rb
1290
1295
  - vendor/eac_ruby_utils/lib/eac_ruby_utils/yaml.rb
@@ -1293,6 +1298,7 @@ files:
1293
1298
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/blank_not_blank_spec.rb
1294
1299
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/common_concern_spec.rb
1295
1300
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/common_constructor_spec.rb
1301
+ - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/compact_spec.rb
1296
1302
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/custom_format_spec.rb
1297
1303
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/executable_spec.rb
1298
1304
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/ssh_env_spec.rb
@@ -1312,10 +1318,12 @@ files:
1312
1318
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/listable_spec.rb
1313
1319
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/simple_cache_spec.rb
1314
1320
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/module/speaker_spec.rb
1321
+ - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/compact_spec.rb
1315
1322
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/if_present_spec.rb
1316
1323
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/object/template_spec_files/path/my_stub_with_template
1317
1324
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/basename_sub_spec.rb
1318
1325
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/pathname/parent_n_spec.rb
1326
+ - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/patches/string/delimited_spec.rb
1319
1327
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/recursive_builder_spec.rb
1320
1328
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub_spec.rb
1321
1329
  - vendor/eac_ruby_utils/spec/lib/eac_ruby_utils/require_sub_spec/stubbed_module_a.rb