eac_ruby_utils 0.23.0 → 0.24.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 50c460eb97537968f851b321ff60f2cd09a59311fc5355ec178a4df1423fb1ef
4
- data.tar.gz: e1930099e96f86521138af568396cc90a561a6902fe830921c4b2e91f274ef5f
3
+ metadata.gz: 4bf1488675cc5d75739a50b185c3d65a1306a2c3ebed81c842f88604db730480
4
+ data.tar.gz: de8c528d05072f865f5facc32de3e2b2c742c3d5af96a4fdda3303b0749cfc6a
5
5
  SHA512:
6
- metadata.gz: f9ba27537563ede2af48698e8c2aead81872fbe00752f7f177d66af8a0ad003216061f1b07054ad02f4a0d57582331597b2e32118b8b44a8bf97db10b927ef7c
7
- data.tar.gz: 4543eb2929914244b81e5bad736ccb3821f0fb963f240a7163c47b0a111936ee3a3b4f0eabe98289dcd68f634f9d60778e2fbc2360a0e40805bd8b85d125b17a
6
+ metadata.gz: 5641b8cb9d93a2aac84bd880f0fb00fdf70181670deefb4976643c9ed4b27b8ad40bfe60b88f92093e65795e0e59bb57da8cb008061e70e9103afd16584faaa9
7
+ data.tar.gz: b2980914e58917d15719edb4c3a9b6dbbd43a140f530239864adf7f2dfefc8abff5585e84b4aa1aa4bec469f3bf6fb04f51a9f7114031ca38e7ba1e86dd1c4d6
@@ -0,0 +1,20 @@
1
+ module EacRubyUtils
2
+ class ByReference
3
+ def initialize(&object_provider)
4
+ @object_provider = object_provider
5
+ end
6
+
7
+ def method_missing(method_name, *arguments, &block)
8
+ return object.send(method_name, *arguments) if object.respond_to?(method_name)
9
+ super
10
+ end
11
+
12
+ def object
13
+ @object_provider.call
14
+ end
15
+
16
+ def respond_to_missing?(method_name, include_private = false)
17
+ object.respond_to?(method_name, include_private)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ require 'eac_ruby_utils/by_reference'
2
+
3
+ module EacRubyUtils
4
+ module Console
5
+ # https://github.com/fazibear/colorize
6
+ module Speaker
7
+ STDERR = ::EacRubyUtils::ByReference.new { $stderr }
8
+ STDIN = ::EacRubyUtils::ByReference.new { $stdin }
9
+ STDOUT = ::EacRubyUtils::ByReference.new { $stdout }
10
+ end
11
+ end
12
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'eac_ruby_utils/patches/object/if_present'
4
+ require 'eac_ruby_utils/console/speaker/_constants'
4
5
 
5
6
  module EacRubyUtils
6
7
  module Console
@@ -9,9 +10,9 @@ module EacRubyUtils
9
10
  attr_accessor :stdin, :stdout, :stderr, :stderr_line_prefix
10
11
 
11
12
  def initialize(parent = nil)
12
- self.stdin = parent.if_present(STDIN, &:stdin)
13
- self.stdout = parent.if_present(STDOUT, &:stdout)
14
- self.stderr = parent.if_present(STDERR, &:stderr)
13
+ self.stdin = parent.if_present(::EacRubyUtils::Console::Speaker::STDIN, &:stdin)
14
+ self.stdout = parent.if_present(::EacRubyUtils::Console::Speaker::STDOUT, &:stdout)
15
+ self.stderr = parent.if_present(::EacRubyUtils::Console::Speaker::STDERR, &:stderr)
15
16
  self.stderr_line_prefix = parent.if_present('', &:stderr_line_prefix)
16
17
  end
17
18
 
@@ -3,9 +3,8 @@
3
3
  require 'colorize'
4
4
  require 'io/console'
5
5
  require 'eac_ruby_utils/patches/hash/options_consumer'
6
- require 'eac_ruby_utils/console/speaker/_class_methods'
7
- require 'eac_ruby_utils/console/speaker/list'
8
- require 'eac_ruby_utils/console/speaker/node'
6
+ require 'eac_ruby_utils/require_sub'
7
+ ::EacRubyUtils.require_sub __FILE__
9
8
 
10
9
  module EacRubyUtils
11
10
  module Console
@@ -9,4 +9,10 @@ class Object
9
9
 
10
10
  block_given? ? yield(self) : self
11
11
  end
12
+
13
+ # @return +yield+ if +self+ is blank.
14
+ def if_blank
15
+ return yield if blank? && block_given?
16
+ self
17
+ end
12
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.23.0'
4
+ VERSION = '0.24.0'
5
5
  end
@@ -2,6 +2,7 @@
2
2
 
3
3
  module EacRubyUtils
4
4
  require 'eac_ruby_utils/arguments_consumer'
5
+ require 'eac_ruby_utils/by_reference'
5
6
  require 'eac_ruby_utils/configs'
6
7
  require 'eac_ruby_utils/console'
7
8
  require 'eac_ruby_utils/contextualizable'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_ruby_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.0
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
@@ -117,6 +117,7 @@ files:
117
117
  - README.rdoc
118
118
  - lib/eac_ruby_utils.rb
119
119
  - lib/eac_ruby_utils/arguments_consumer.rb
120
+ - lib/eac_ruby_utils/by_reference.rb
120
121
  - lib/eac_ruby_utils/common_constructor.rb
121
122
  - lib/eac_ruby_utils/configs.rb
122
123
  - lib/eac_ruby_utils/configs/file.rb
@@ -129,6 +130,7 @@ files:
129
130
  - lib/eac_ruby_utils/console/docopt_runner/_subcommands.rb
130
131
  - lib/eac_ruby_utils/console/speaker.rb
131
132
  - lib/eac_ruby_utils/console/speaker/_class_methods.rb
133
+ - lib/eac_ruby_utils/console/speaker/_constants.rb
132
134
  - lib/eac_ruby_utils/console/speaker/list.rb
133
135
  - lib/eac_ruby_utils/console/speaker/node.rb
134
136
  - lib/eac_ruby_utils/contextualizable.rb