eac_ruby_utils 0.23.0 → 0.24.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: 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