error_response 1.1.5 → 1.2.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: be55d329521776f2e80ba371ea10d3117c7d9888576657473703c73abbff6d02
4
- data.tar.gz: 5aa2d7f720ad2b7c43a385b1a5c93f9be45dcf4a497e78eb448dbe55d7d66fb3
3
+ metadata.gz: eca3ddbc8b51d594ee9205d301fd7525ef261838148aff08365efa883e3e429c
4
+ data.tar.gz: 41d570d6177d09de90ef3623feb08defbe51ca0b6d74dc89d3cb8ba7e6e3c7a4
5
5
  SHA512:
6
- metadata.gz: 94d0af3979cf503914748fc80b3bf1485f269eff26b249c41537591d7e3bc5b5bec16132f6832fd2d2e0883dc4b391749a41a5478a26566ed63b7b942d1b66f0
7
- data.tar.gz: 8affff0d7054b45b8ccdfe8a89d285335e2b7f1f7334416ffa2ec5ea8f8355216ef3d76d2467f8bccec0283e9b2fcf15f8f4cc9f83d2ccb17ab62bda4893ea7a
6
+ metadata.gz: a7d41a96425b18a968991dfb9144dd822c823da638214631fdaa9959656837a0c056ad51a87d26ec7a000b5035ab44cab2442d221ad75fa933f30b7510405792
7
+ data.tar.gz: 323b3445c8e320a837165eae9328038c30e93a7b5fad36b6e15a0eed33f25d9b36ba1652688f1268ebb89648565499ce38b4381e3993d689d12cb593abc8488f
@@ -5,7 +5,7 @@ module ErrorResponse
5
5
  attr_accessor :yaml_config_path
6
6
 
7
7
  def initialize
8
- @yaml_config_path = ENV['YAML_CONFIG_PATH'] || 'config/error_response.yml'
8
+ @yaml_config_path = ENV["YAML_CONFIG_PATH"] || "config/error_response.yml"
9
9
  end
10
10
  end
11
11
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support/concern'
3
+ require "active_support/concern"
4
4
 
5
5
  module ErrorResponse
6
6
  module Helper
@@ -5,6 +5,7 @@ module ErrorResponse
5
5
  attr_reader :key, :error_message, :error_data
6
6
 
7
7
  def initialize(key, error_message: nil, error_data: {})
8
+ super(error_message)
8
9
  @key = key
9
10
  @error_message = error_message
10
11
  @error_data = error_data
@@ -1,22 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'yaml'
4
- require 'open-uri'
3
+ require "yaml"
4
+ require "net/http"
5
+ require "uri"
5
6
 
6
- require 'error_response/configuration'
7
- require 'error_response/helper'
8
- require 'error_response/request_error'
7
+ require "error_response/configuration"
8
+ require "error_response/helper"
9
+ require "error_response/request_error"
9
10
 
10
11
  module ErrorResponse
11
-
12
12
  class << self
13
- attr_accessor :configuration
13
+ attr_writer :configuration
14
14
 
15
15
  def configuration
16
16
  @configuration ||= Configuration.new
17
17
  end
18
18
 
19
- def configure(&block)
19
+ def configure
20
20
  yield(configuration)
21
21
  end
22
22
 
@@ -26,16 +26,17 @@ module ErrorResponse
26
26
 
27
27
  def to_hash(key)
28
28
  return {} unless yaml_hash.key?(key.to_s)
29
- yaml_hash[key.to_s].merge({ 'error_key' => key.to_s })
29
+
30
+ yaml_hash[key.to_s].merge({ "error_key" => key.to_s })
30
31
  end
31
32
 
32
- def to_api(key, message=nil)
33
+ def to_api(key, message = nil)
33
34
  json = deep_dup(yaml_hash)
34
- json = json[key.to_s] || { 'error_code' => 500_000, 'error_message' => key.to_s }
35
- json['error_key'] = key.to_s
36
- json['error_message'] += ": #{message}" unless message.nil?
35
+ json = json[key.to_s] || { "error_code" => 500_000, "error_message" => key.to_s }
36
+ json["error_key"] = key.to_s
37
+ json["error_message"] += ": #{message}" unless message.nil?
37
38
  {
38
- status: parse_status(json['error_code']),
39
+ status: parse_status(json["error_code"]),
39
40
  json: json
40
41
  }
41
42
  end
@@ -45,20 +46,23 @@ module ErrorResponse
45
46
  def yaml_hash
46
47
  return @hash unless @hash.nil?
47
48
 
48
- settings = YAML.safe_load(File.read(configuration.yaml_config_path), permitted_classes: permitted_classes, aliases: true)
49
- local_array = settings['source']['local']
49
+ settings = YAML.safe_load_file(configuration.yaml_config_path, permitted_classes: permitted_classes, aliases: true)
50
+ local_array = settings["source"]["local"]
50
51
  local_hash = local_array.nil? ? {} : local_array.map { |path| YAML.safe_load_file(path, permitted_classes: permitted_classes, aliases: true) }.inject(&:merge)
51
52
 
52
- remote_array = settings['source']['remote']
53
+ remote_array = settings["source"]["remote"]
53
54
  remote_hash = remote_array.nil? ? {} : remote_array.map { |url| build_yaml(url) }.inject(&:merge)
54
55
 
55
56
  @hash = local_hash.merge(remote_hash)
56
57
  end
57
58
 
58
59
  def build_yaml(url)
59
- content = URI.open(url){|f| f.read}
60
+ uri = URI.parse(url)
61
+ response = Net::HTTP.get_response(uri)
62
+ response.value
63
+ content = response.body
60
64
  YAML.safe_load(content, permitted_classes: permitted_classes, aliases: true)
61
- rescue
65
+ rescue StandardError
62
66
  puts "Load yaml from URL (#{url}) failed."
63
67
  {}
64
68
  end
@@ -67,14 +71,21 @@ module ErrorResponse
67
71
  error_code.to_s[0..2].to_i
68
72
  end
69
73
 
70
- def deep_dup(h)
71
- Hash[h.map{|k, v| [k,
72
- if v.is_a?(Hash)
73
- deep_dup(v)
74
- else
75
- v.dup rescue v
76
- end
77
- ]}]
74
+ def deep_dup(hash)
75
+ hash.to_h do |key, value|
76
+ [
77
+ key,
78
+ if value.is_a?(Hash)
79
+ deep_dup(value)
80
+ else
81
+ begin
82
+ value.dup
83
+ rescue StandardError
84
+ value
85
+ end
86
+ end
87
+ ]
88
+ end
78
89
  end
79
90
 
80
91
  def permitted_classes
@@ -91,5 +102,4 @@ module ErrorResponse
91
102
  ]
92
103
  end
93
104
  end
94
-
95
105
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: error_response
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.5
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kdan Mobile Software Developer
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-07-17 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activesupport
@@ -15,28 +15,14 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 7.1.5.1
19
- type: :development
18
+ version: 7.2.3.1
19
+ type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: 7.1.5.1
26
- - !ruby/object:Gem::Dependency
27
- name: rspec
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - "~>"
31
- - !ruby/object:Gem::Version
32
- version: '3.0'
33
- type: :development
34
- prerelease: false
35
- version_requirements: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: '3.0'
25
+ version: 7.2.3.1
40
26
  description: use for error_response
41
27
  email: dev@kdanmobile.com
42
28
  executables: []
@@ -53,6 +39,7 @@ licenses:
53
39
  metadata:
54
40
  source_code_uri: https://github.com/kdan-mobile-software-ltd/error_response
55
41
  changelog_uri: https://github.com/kdan-mobile-software-ltd/error_response/blob/master/CHANGELOG.md
42
+ rubygems_mfa_required: 'true'
56
43
  rdoc_options: []
57
44
  require_paths:
58
45
  - lib
@@ -60,7 +47,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
60
47
  requirements:
61
48
  - - ">="
62
49
  - !ruby/object:Gem::Version
63
- version: '2.7'
50
+ version: '3.0'
64
51
  required_rubygems_version: !ruby/object:Gem::Requirement
65
52
  requirements:
66
53
  - - ">="