eac_ruby_utils 0.93.0 → 0.94.2

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: 2af286c28f13082616eff5ed2d26df52273d28f2de6ee6879d86c99388d3c86a
4
- data.tar.gz: 3ec4cb86d95b8d17210f376c9a688204fb6885d350fc98d1a1e366f4ccf4eeff
3
+ metadata.gz: 6123804bfe63fb8449caccf2c037cc3e226c9d2859894feea80b5487fc472187
4
+ data.tar.gz: d47032f60cbd693dcd7ec2cfa72dcaf1c7c1bc69abd8354126f272a11a452702
5
5
  SHA512:
6
- metadata.gz: 3d09e2962b6b68dc8153a75ed47c70b4f5811be9390f2e0d5fa713c26baf07174bdb65429d84e12a67514602a336b39768d9116343af492a9b42f2c2aba5de49
7
- data.tar.gz: 83a32768b402403f973dafd9dbe55f1711a6b9857dabbe1fd2cb89e93240baf914391e9c3bb82b204003cda07b88a8f8b1038a021ad8834f00492cff7fa0d88d
6
+ metadata.gz: d2edf68d551b316ba760f7c7c89a03b6b85262e9e6843506f7346d9f92a883cfe43a2efd591a497389bdde11dee9bcc19b5443aa4ba7e130d167ecfec047e9b8
7
+ data.tar.gz: 11fd72d374f34a61bba2d856ccfae437dc97010e8f2b074a6cb6f4ed2867a9f1f8515e073b4986b93518dd7b7d04a9293b71b5934d8d09582c66acb4e494f37b
@@ -9,7 +9,7 @@ module EacRubyUtils
9
9
  attr_reader :mapping
10
10
 
11
11
  def initialize(mapping)
12
- @mapping = mapping.map { |k, v| [k.to_sym, v] }.to_h.freeze
12
+ @mapping = mapping.transform_keys(&:to_sym).freeze
13
13
  end
14
14
 
15
15
  def format(string)
@@ -41,7 +41,7 @@ module EacRubyUtils
41
41
  def lib_file_found?
42
42
  gemspec.require_paths.any? do |require_path|
43
43
  ::Pathname.new(require_path).expand_path(gemspec.gem_dir).join(path_to_require + '.rb')
44
- .file?
44
+ .file?
45
45
  end
46
46
  end
47
47
 
@@ -29,7 +29,7 @@ module EacRubyUtils
29
29
  # @return [Array<EacRubyUtils::GemsRegistry::Gem>]
30
30
  def all_gems
31
31
  ::Gem::Specification.map { |gemspec| ::EacRubyUtils::GemsRegistry::Gem.new(self, gemspec) }
32
- .sort
32
+ .sort
33
33
  end
34
34
  end
35
35
  end
@@ -16,7 +16,7 @@ module EacRubyUtils
16
16
  # @raise [ArgumentError]
17
17
  def variableize(string, validate = true)
18
18
  r = ::ActiveSupport::Inflector.transliterate(string).gsub(/[^_a-z0-9]/i, '_')
19
- .gsub(/_+/, '_').gsub(/_\z/, '').gsub(/\A_/, '').downcase
19
+ .gsub(/_+/, '_').gsub(/_\z/, '').gsub(/\A_/, '').downcase
20
20
  m = VARIABLE_NAME_PATTERN.match(r)
21
21
  return r if m
22
22
  return nil unless validate
@@ -1,8 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'eac_ruby_utils/listable/value'
4
+
3
5
  module EacRubyUtils
4
6
  module Listable
5
7
  class List
8
+ BLANK_VALUE = nil
9
+ BLANK_KEY = :__blank
10
+
6
11
  attr_reader :item
7
12
 
8
13
  def initialize(lists, item, labels)
@@ -12,6 +17,10 @@ module EacRubyUtils
12
17
  apply_constants
13
18
  end
14
19
 
20
+ def blank_value
21
+ @blank_value ||= ::EacRubyUtils::Listable::Value.new(self, BLANK_VALUE, BLANK_KEY, false)
22
+ end
23
+
15
24
  def each_value(&block)
16
25
  values.each(&block)
17
26
  end
@@ -34,7 +43,7 @@ module EacRubyUtils
34
43
  end
35
44
 
36
45
  def hash_keys_validate!(hash, error_class = ::StandardError)
37
- hash.keys.each { |key| value_validate!(key, error_class) }
46
+ hash.each_key { |key| value_validate!(key, error_class) }
38
47
  hash
39
48
  end
40
49
 
@@ -42,11 +51,14 @@ module EacRubyUtils
42
51
  "eac_ruby_utils.listable.#{class_i18n_key}.#{item}"
43
52
  end
44
53
 
54
+ # @return [EacRubyUtils::Listable::Value, nil]
45
55
  def instance_value(instance)
46
56
  v = instance.send(item)
57
+ return blank_value if v.blank?
47
58
  return @values[v] if @values.key?(v)
48
59
 
49
- raise "List value unkown: #{v} (Source: #{@lists.source}, Item: #{item})"
60
+ raise "List value unkown: \"#{v}\" (Source: #{@lists.source}, Item: #{item}, Instance: " \
61
+ "#{instance.to_debug}, Values: #{@values.keys})"
50
62
  end
51
63
 
52
64
  def value_valid?(value)
@@ -70,7 +82,7 @@ module EacRubyUtils
70
82
  end
71
83
 
72
84
  def find_list_by_method(method)
73
- @values.values.each do |v|
85
+ @values.each_value do |v|
74
86
  return v if method.to_s == "value_#{v.key}"
75
87
  end
76
88
  nil
@@ -81,7 +93,7 @@ module EacRubyUtils
81
93
  end
82
94
 
83
95
  def apply_constants
84
- @values.values.each do |v|
96
+ @values.each_value do |v|
85
97
  @lists.source.const_set(v.constant_name, v.value)
86
98
  end
87
99
  end
@@ -7,10 +7,11 @@ module EacRubyUtils
7
7
  class Value
8
8
  attr_reader :value, :key
9
9
 
10
- def initialize(list, value, key)
10
+ def initialize(list, value, key, translation_required = true)
11
11
  @list = list
12
12
  @value = value
13
13
  @key = key
14
+ @translation_required = translation_required
14
15
  end
15
16
 
16
17
  def to_s
@@ -29,10 +30,19 @@ module EacRubyUtils
29
30
  translate('description')
30
31
  end
31
32
 
33
+ def translation_required?
34
+ @translation_required
35
+ end
36
+
32
37
  private
33
38
 
34
39
  def translate(translate_key)
35
- ::I18n.t("#{@list.i18n_key}.#{@key}.#{translate_key}")
40
+ full_translate_key = "#{@list.i18n_key}.#{@key}.#{translate_key}"
41
+ if !::I18n.exists?(full_translate_key) && !translation_required?
42
+ ''
43
+ else
44
+ ::I18n.t(full_translate_key)
45
+ end
36
46
  end
37
47
  end
38
48
  end
@@ -36,7 +36,7 @@ module EacRubyUtils
36
36
  return nil unless executable.exist?
37
37
 
38
38
  TIMEDATECTL_TIMEZONE_LINE_PATTERN.if_match(executable.command.execute!) { |m| m[1] }
39
- .if_present { |v| ::ActiveSupport::TimeZone[v] }
39
+ .if_present { |v| ::ActiveSupport::TimeZone[v] }
40
40
  end
41
41
 
42
42
  # @return [ActiveSupport::TimeZone]
@@ -12,7 +12,7 @@ module EacRubyUtils
12
12
 
13
13
  def on_clean_envvars(*start_with_vars)
14
14
  old_values = envvars_starting_with(start_with_vars)
15
- old_values.keys.each { |k| ENV.delete(k) }
15
+ old_values.each_key { |k| ENV.delete(k) }
16
16
  yield
17
17
  ensure
18
18
  old_values&.each { |k, v| ENV[k] = v }
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacRubyUtils
4
- VERSION = '0.93.0'
4
+ VERSION = '0.94.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eac_ruby_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.93.0
4
+ version: 0.94.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-11 00:00:00.000000000 Z
11
+ date: 2022-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -78,20 +78,14 @@ dependencies:
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0.3'
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- version: 0.3.2
81
+ version: 0.5.1
85
82
  type: :development
86
83
  prerelease: false
87
84
  version_requirements: !ruby/object:Gem::Requirement
88
85
  requirements:
89
86
  - - "~>"
90
87
  - !ruby/object:Gem::Version
91
- version: '0.3'
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- version: 0.3.2
88
+ version: 0.5.1
95
89
  description:
96
90
  email:
97
91
  executables: []