zuora_connect 2.1.1 → 3.0.0k

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,79 +0,0 @@
1
- module InfluxDB
2
- # Convert data point to string using Line protocol
3
- class PointValue
4
- attr_reader :series, :values, :tags, :timestamp
5
-
6
- def initialize(data)
7
- @series = escape data[:series], :measurement
8
- @values = escape_values data[:values]
9
- @tags = escape_tags data[:tags]
10
- @timestamp = data[:timestamp]
11
- end
12
-
13
- def dump
14
- dump = @series.dup
15
- dump << ",#{@tags}" if @tags
16
- dump << " #{@values}"
17
- dump << " #{@timestamp}" if @timestamp
18
- dump
19
- end
20
-
21
- private
22
-
23
- ESCAPES = {
24
- measurement: [' '.freeze, ','.freeze],
25
- tag_key: ['='.freeze, ' '.freeze, ','.freeze],
26
- tag_value: ['='.freeze, ' '.freeze, ','.freeze],
27
- field_key: ['='.freeze, ' '.freeze, ','.freeze, '"'.freeze],
28
- field_value: ["\\".freeze, '"'.freeze],
29
- }.freeze
30
-
31
- private_constant :ESCAPES
32
-
33
- def escape(str, type)
34
- # rubocop:disable Layout/AlignParameters
35
- str = str.encode "UTF-8".freeze, "UTF-8".freeze,
36
- invalid: :replace,
37
- undef: :replace,
38
- replace: "".freeze
39
- # rubocop:enable Layout/AlignParameters
40
-
41
- ESCAPES[type].each do |ch|
42
- str = str.gsub(ch) { "\\#{ch}" }
43
- end
44
- str
45
- end
46
-
47
- def escape_values(values)
48
- return if values.nil?
49
- values.map do |k, v|
50
- key = escape(k.to_s, :field_key)
51
- val = escape_value(v)
52
- "#{key}=#{val}"
53
- end.join(",".freeze)
54
- end
55
-
56
- def escape_value(value)
57
- if value.is_a?(String)
58
- '"'.freeze + escape(value, :field_value) + '"'.freeze
59
- elsif value.is_a?(Integer)
60
- "#{value}i"
61
- else
62
- value.to_s
63
- end
64
- end
65
-
66
- def escape_tags(tags)
67
- return if tags.nil?
68
-
69
- tags = tags.map do |k, v|
70
- key = escape(k.to_s, :tag_key)
71
- val = escape(v.to_s, :tag_value)
72
-
73
- "#{key}=#{val}" unless key == "".freeze || val == "".freeze
74
- end.compact
75
-
76
- tags.join(",") unless tags.empty?
77
- end
78
- end
79
- end