influxdb 0.2.0 → 0.2.1

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: 5122c2a56a46565d1ee7481c6d20e1647035e94d
4
- data.tar.gz: e4c1e752d0d49a5d3749e92f6c1afd1fbc269549
3
+ metadata.gz: fd312f5542686ccddcc5913b25f6cd55b6c892ac
4
+ data.tar.gz: 63bbe7b5008a916da5bd411b5c4a0f0a0f8705a8
5
5
  SHA512:
6
- metadata.gz: d4053245ecd16e82ee75055a407099a4ab44740722abc225d2a27fa1c3c562f6b703c07dae3322f523ec4cb3181ec69c991c17d2b8842af58970df10a343f717
7
- data.tar.gz: adcf58659107dfc6ef3c99a4628c33662cbabc2782e06eb47cdfa90e345c2946d2e56af2e5849641221b5971cfad8ebc83d2cae4149a6a5bd778fe21270f6211
6
+ metadata.gz: 2d4c579c9af119065cb5d1d30f1d5caf6c3b1b368864d537231ec63ef0a092d543141af4daf8a2860cbb22ad0a6e326aa647aef19b43db79932502c3091c34d3
7
+ data.tar.gz: 1857f6d61f6475e0330acc86e2baa5502cb9c2b59f7f18c9d414d375da0c3dc5e332d7fc7b4a662f1ea983599770cefde6fb1fed3021ad763df998e40e7a69a3
@@ -4,9 +4,9 @@ module InfluxDB
4
4
  attr_reader :series, :values, :tags, :timestamp
5
5
 
6
6
  def initialize(data)
7
- @series = data[:series].gsub(/\s/, '\ ').gsub(',','\,')
8
- @values = stringify(data[:values])
9
- @tags = stringify(data[:tags])
7
+ @series = data[:series].gsub(/\s/, '\ ').gsub(',', '\,')
8
+ @values = data_to_string(data[:values], true)
9
+ @tags = data_to_string(data[:tags])
10
10
  @timestamp = data[:timestamp]
11
11
  end
12
12
 
@@ -20,19 +20,30 @@ module InfluxDB
20
20
 
21
21
  private
22
22
 
23
- def stringify(hash)
24
- return nil unless hash && !hash.empty?
25
- hash.map do |k, v|
26
- key = k.to_s.gsub(/\s/, '\ ').gsub(',','\,')
27
- val = v
28
- if val.is_a?(String)
29
- val.gsub!(/\s/, '\ ')
30
- val.gsub!(',', '\,')
31
- val.gsub!('"', '\"')
32
- val = '"' + val + '"'
33
- end
23
+ def data_to_string(data, quote_escape = false)
24
+ return nil unless data && !data.empty?
25
+ mappings = map(data, quote_escape)
26
+ mappings.join(',')
27
+ end
28
+
29
+ def map(data, quote_escape)
30
+ data.map do |k, v|
31
+ key = escape_key(k)
32
+ val = v.is_a?(String) ? escape_value(v, quote_escape) : v
34
33
  "#{key}=#{val}"
35
- end.join(',')
34
+ end
35
+ end
36
+
37
+ def escape_value(value, quote_escape)
38
+ value.gsub!(/\s/, '\ ')
39
+ value.gsub!(',', '\,')
40
+ value.gsub!('"', '\"')
41
+ value = %("#{value}") if quote_escape
42
+ value
43
+ end
44
+
45
+ def escape_key(key)
46
+ key.to_s.gsub(/\s/, '\ ').gsub(',', '\,')
36
47
  end
37
48
  end
38
49
  end
@@ -1,3 +1,3 @@
1
1
  module InfluxDB # :nodoc:
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -6,7 +6,7 @@ describe InfluxDB::Client do
6
6
  specify { expect(client.writer).to be_a(InfluxDB::Writer::UDP) }
7
7
 
8
8
  describe "#write" do
9
- let(:message) { 'responses,region="eu" value=5' }
9
+ let(:message) { 'responses,region=eu value=5' }
10
10
 
11
11
  it "sends a UPD packet" do
12
12
  s = UDPSocket.new
@@ -17,7 +17,7 @@ describe InfluxDB::PointValue do
17
17
  point = InfluxDB::PointValue.new(series: "responses",
18
18
  values: { response_time: 0.34343 },
19
19
  tags: { city: "Twin Peaks" })
20
- expect(point.tags.split("=").last).to eq('"Twin\\ Peaks"')
20
+ expect(point.tags.split("=").last).to eq("Twin\\ Peaks")
21
21
  end
22
22
  end
23
23
 
@@ -37,24 +37,14 @@ describe InfluxDB::PointValue do
37
37
  point = InfluxDB::PointValue.new(series: "responses",
38
38
  values: { response_time: 0.34343 },
39
39
  tags: { city: "Twin Peaks," })
40
- expect(point.tags.split("=").last).to eq('"Twin\\ Peaks\\,"')
40
+ expect(point.tags.split("=").last).to eq("Twin\\ Peaks\\,")
41
41
  end
42
42
  end
43
43
 
44
- describe "double quote escaping" do
45
- it 'should escape passed values' do
46
- point = InfluxDB::PointValue.new(series: "responses",
47
- values: { response_time: 0.34343 },
48
- tags: { city: "Twin Peaks\"" })
49
- expect(point.tags.split("=").last).to eq('"Twin\\ Peaks\\""')
50
- end
51
- end
52
-
53
-
54
44
  describe 'dump' do
55
45
  context "with all possible data passed" do
56
46
  let(:expected_value) do
57
- 'responses,region="eu",status=200 value=5,threshold=0.54 1436349652'
47
+ 'responses,region=eu,status=200 value=5,threshold=0.54 1436349652'
58
48
  end
59
49
  it 'should have proper form' do
60
50
  point = InfluxDB::PointValue.new(series: "responses",
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influxdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todd Persen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-20 00:00:00.000000000 Z
11
+ date: 2015-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json