aws-xray 0.8.1 → 0.9.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
  SHA1:
3
- metadata.gz: 5206b637f5168433db8876d3d0c80652a3593ac2
4
- data.tar.gz: e9e0ab2d86436141fbaea9b0145f05c2e43c007b
3
+ metadata.gz: b263ae80bfea7fa1cee9f95c26d5ca57dd136098
4
+ data.tar.gz: ce94410321f8fa5a3b29219d6e17f12b0f004e36
5
5
  SHA512:
6
- metadata.gz: 772cdd8ee4b5e722b373ebbaaba3203f44f514a263f6db70b8773c83a877ff858ae898f97bf9041245a516d31e4a91e1ca36400e8f900198abfb8b963867219d
7
- data.tar.gz: 9a1c16c6676a6f8cb0aadbafd97a41efca10032ca47391334eb8a31449c2618e56bc37683f7137d42211994f6f86e2cd2b95120273283b52f3ca1826ca92fecb
6
+ metadata.gz: 45715f823e2b871f17826b85e37cf7e02885de7669423bacbf33d17fc227db01de3807c81cc3c932ea1bb6770621637587bf4150ef8736cd4f44bc5fdbaf919a
7
+ data.tar.gz: dba1945e5aa2130fb1a1add974475407ec492bafaeda31a885de9e50da21cae022774a4bc249bd61d33528bb8321c8321690fd7c07c983555ea0d0d3839a92f3
@@ -0,0 +1,37 @@
1
+ module Aws
2
+ module Xray
3
+ # For specification: http://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html
4
+ module AnnotationNormalizer
5
+ extend self
6
+
7
+ # @param [Hash] h annotation hash.
8
+ # @return [Hash]
9
+ def call(h)
10
+ h.inject({}) {|init, (k, v)| init[normalize_key(k)] = normalize_value(v); init }
11
+ end
12
+
13
+ private
14
+
15
+ INVALID_PATTERN = /[^A-Za-z0-9_]+/
16
+ # - Convert keys which including '-' to '_'
17
+ # because it might be common pit-fall.
18
+ # - Remove invalid chars.
19
+ def normalize_key(k)
20
+ k.to_s.gsub('-', '_').gsub(INVALID_PATTERN, '').to_sym
21
+ end
22
+
23
+ def normalize_value(v)
24
+ case v
25
+ when nil
26
+ nil
27
+ when Integer, Float
28
+ v
29
+ when true, false
30
+ v
31
+ else
32
+ v.to_s
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -1,5 +1,5 @@
1
1
  require 'socket'
2
- require 'aws/xray/annotation_validator'
2
+ require 'aws/xray/annotation_normalizer'
3
3
 
4
4
  module Aws
5
5
  module Xray
@@ -59,8 +59,7 @@ module Aws
59
59
  end
60
60
  # @param [Hash] h default annotation Hash.
61
61
  def default_annotation=(annotation)
62
- AnnotationValidator.call(annotation)
63
- @default_annotation = annotation
62
+ @default_annotation = AnnotationNormalizer.call(annotation)
64
63
  end
65
64
 
66
65
  DEFAULT_METADATA = {
@@ -3,7 +3,7 @@ require 'securerandom'
3
3
  require 'aws/xray/request'
4
4
  require 'aws/xray/response'
5
5
  require 'aws/xray/error'
6
- require 'aws/xray/annotation_validator'
6
+ require 'aws/xray/annotation_normalizer'
7
7
 
8
8
  module Aws
9
9
  module Xray
@@ -55,8 +55,7 @@ module Aws
55
55
  # @param [Hash] annotation Keys must consist of only alphabets and underscore.
56
56
  # Values must be one of String or Integer or Boolean values.
57
57
  def set_annotation(annotation)
58
- AnnotationValidator.call(annotation)
59
- @annotation = @annotation.merge(annotation)
58
+ @annotation = @annotation.merge(AnnotationNormalizer.call(annotation))
60
59
  end
61
60
 
62
61
  # @param [Hash] metadata
@@ -1,5 +1,5 @@
1
1
  module Aws
2
2
  module Xray
3
- VERSION = '0.8.1'
3
+ VERSION = '0.9.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-xray
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taiki Ono
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-05-31 00:00:00.000000000 Z
11
+ date: 2017-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -122,7 +122,7 @@ files:
122
122
  - example/user_app_config.ru
123
123
  - lib/aws-xray.rb
124
124
  - lib/aws/xray.rb
125
- - lib/aws/xray/annotation_validator.rb
125
+ - lib/aws/xray/annotation_normalizer.rb
126
126
  - lib/aws/xray/cause.rb
127
127
  - lib/aws/xray/client.rb
128
128
  - lib/aws/xray/configuration.rb
@@ -1,16 +0,0 @@
1
- module Aws
2
- module Xray
3
- module AnnotationValidator
4
- extend self
5
-
6
- # @param [Hash] h annotation hash.
7
- # @raise RuntimeError
8
- def call(h)
9
- invalid_keys = h.keys.reject {|k| k.to_s.match(/\A[A-Za-z0-9_]+\z/) }
10
- raise 'Keys must be alphanumeric and underscore string' unless invalid_keys.empty?
11
- invalid_values = h.values.reject {|v| v.is_a?(String) || v.is_a?(Integer) || (v == true || v == false) }
12
- raise 'Values must be one of String or Integer or Boolean values' unless invalid_values.empty?
13
- end
14
- end
15
- end
16
- end