influxdb-client 1.0.0.beta → 1.0.0.pre.138
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 +4 -4
- data/.circleci/config.yml +12 -9
- data/.circleci/setup-rubygems.sh +1 -1
- data/CHANGELOG.md +3 -3
- data/README.md +22 -23
- data/influxdb-client.gemspec +5 -5
- data/lib/{influxdb2 → influxdb}/client.rb +5 -5
- data/lib/{influxdb2 → influxdb}/client/client.rb +1 -2
- data/lib/{influxdb2 → influxdb}/client/influx_error.rb +1 -1
- data/lib/{influxdb2 → influxdb}/client/point.rb +5 -5
- data/lib/{influxdb2 → influxdb}/client/version.rb +2 -2
- data/lib/{influxdb2 → influxdb}/client/write_api.rb +2 -2
- data/test/influxdb/client_test.rb +10 -10
- data/test/influxdb/point_test.rb +88 -88
- data/test/influxdb/write_api_integration_test.rb +9 -9
- data/test/influxdb/write_api_test.rb +65 -65
- data/test/test_helper.rb +1 -1
- metadata +12 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70a0a4b9753142baaf4ddb431263aca7d303891cb4d6a7cae9d7120414db7637
|
4
|
+
data.tar.gz: 1979ae95977092440e35f3c543455ddd83fb5e2b968d7da757bb687dd7d9e88c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f5d2892760769c3da24b33cc7c901dc6767de02ea3bfd61d0445a94d536f069d79ba820553c7cf0494edd9fbb59f8de2b86dd8f744e05559394ea42ca2e9431d
|
7
|
+
data.tar.gz: '06844837ff0a43ff661e87320a3acf2c2557d41ab0fb430a92f2a6ac295f76d53fe7deac9b094263f9848fb257de5f650f274784640dfd0e08804c7e11468a4e'
|
data/.circleci/config.yml
CHANGED
@@ -76,12 +76,18 @@ jobs:
|
|
76
76
|
ruby-image:
|
77
77
|
type: string
|
78
78
|
default: &default-ruby-image "circleci/ruby:2.6-stretch"
|
79
|
-
influxdb-
|
79
|
+
influxdb-repository:
|
80
80
|
type: string
|
81
|
-
default:
|
81
|
+
default: "influxdb"
|
82
|
+
influxdb-version:
|
83
|
+
type: string
|
84
|
+
default: "2.0.0-beta"
|
82
85
|
docker:
|
83
86
|
- image: << parameters.ruby-image >>
|
84
|
-
- image: &influx-image quay.io/influxdb
|
87
|
+
- image: &influx-image quay.io/influxdb/influx:nightly
|
88
|
+
environment:
|
89
|
+
INFLUXDB_V2_REPOSITORY: << parameters.influxdb-repository >>
|
90
|
+
INFLUXDB_V2_VERSION: << parameters.influxdb-version >>
|
85
91
|
steps:
|
86
92
|
- prepare
|
87
93
|
- test:
|
@@ -89,10 +95,6 @@ jobs:
|
|
89
95
|
- storing-test-results
|
90
96
|
|
91
97
|
deploy-preview:
|
92
|
-
parameters:
|
93
|
-
influxdb-image:
|
94
|
-
type: string
|
95
|
-
default: *default-influxdb-image
|
96
98
|
docker:
|
97
99
|
- image: *default-ruby-image
|
98
100
|
- image: *influx-image
|
@@ -100,7 +102,7 @@ jobs:
|
|
100
102
|
- run:
|
101
103
|
name: Early return if this build is from a forked repository
|
102
104
|
command: |
|
103
|
-
if [[ $CIRCLE_PROJECT_USERNAME != "
|
105
|
+
if [[ $CIRCLE_PROJECT_USERNAME != "bonitoo-io" ]]; then
|
104
106
|
echo "Nothing to do for forked repositories, so marking this step successful"
|
105
107
|
circleci step halt
|
106
108
|
fi
|
@@ -127,7 +129,8 @@ workflows:
|
|
127
129
|
name: ruby-2.6
|
128
130
|
- tests-ruby:
|
129
131
|
name: ruby-2.6-nightly
|
130
|
-
influxdb-
|
132
|
+
influxdb-repository: "influx"
|
133
|
+
influxdb-version: "nightly"
|
131
134
|
- tests-ruby:
|
132
135
|
name: ruby-2.5
|
133
136
|
ruby-image: "circleci/ruby:2.5-stretch"
|
data/.circleci/setup-rubygems.sh
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
## 1.0.0
|
1
|
+
## 1.0.0 [unreleased]
|
2
2
|
|
3
3
|
### Features
|
4
|
-
1. [#4](https://github.com/
|
5
|
-
|
4
|
+
1. [#4](https://github.com/bonitoo-io/influxdb-client-ruby/pull/4): Added WriteApi that will be used for Fluentd plugin
|
5
|
+
|
data/README.md
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
# influxdb-client-ruby
|
2
2
|
|
3
|
-
[](https://circleci.com/gh/bonitoo-io/influxdb-client-ruby)
|
4
|
+
[](https://codecov.io/gh/bonitoo-io/influxdb-client-ruby)
|
5
5
|
[](https://badge.fury.io/rb/influxdb-client)
|
6
|
-
[](https://www.influxdata.com/slack)
|
6
|
+
[](https://github.com/bonitoo-io/influxdb-client-ruby/blob/master/LICENSE)
|
7
|
+
[](https://github.com/bonitoo-io/influxdb-client-ruby/issues)
|
8
|
+
[](https://github.com/bonitoo-io/influxdb-client-ruby/pulls)
|
10
9
|
|
11
10
|
This repository contains the reference Ruby client for the InfluxDB 2.0.
|
12
11
|
|
@@ -24,7 +23,7 @@ The client can be installed manually or with bundler.
|
|
24
23
|
To install the client gem manually:
|
25
24
|
|
26
25
|
```
|
27
|
-
gem install influxdb-client
|
26
|
+
gem install influxdb-client --pre
|
28
27
|
```
|
29
28
|
|
30
29
|
## Usage
|
@@ -34,7 +33,7 @@ gem install influxdb-client -v 1.0.0.beta
|
|
34
33
|
Use **InfluxDB::Client** to create a client connected to a running InfluxDB 2 instance.
|
35
34
|
|
36
35
|
```ruby
|
37
|
-
client =
|
36
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token')
|
38
37
|
```
|
39
38
|
|
40
39
|
#### Client Options
|
@@ -51,19 +50,19 @@ client = InfluxDB2::Client.new('https://localhost:9999', 'my-token')
|
|
51
50
|
| use_ssl | Turn on/off SSL for HTTP communication | bool | true |
|
52
51
|
|
53
52
|
```ruby
|
54
|
-
client =
|
53
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token',
|
55
54
|
bucket: 'my-bucket',
|
56
55
|
org: 'my-org',
|
57
|
-
precision:
|
56
|
+
precision: InfluxDB::WritePrecision::NANOSECOND)
|
58
57
|
```
|
59
58
|
|
60
59
|
### Writing data
|
61
60
|
|
62
61
|
```ruby
|
63
|
-
client =
|
62
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token',
|
64
63
|
bucket: 'my-bucket',
|
65
64
|
org: 'my-org',
|
66
|
-
precision:
|
65
|
+
precision: InfluxDB::WritePrecision::NANOSECOND)
|
67
66
|
|
68
67
|
write_api = client.create_write_api
|
69
68
|
write_api.write(data: 'h2o,location=west value=33i 15')
|
@@ -73,20 +72,20 @@ write_api.write(data: 'h2o,location=west value=33i 15')
|
|
73
72
|
|
74
73
|
Configure default time precision:
|
75
74
|
```ruby
|
76
|
-
client =
|
75
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token',
|
77
76
|
bucket: 'my-bucket',
|
78
77
|
org: 'my-org',
|
79
|
-
precision:
|
78
|
+
precision: InfluxDB::WritePrecision::NANOSECOND)
|
80
79
|
```
|
81
80
|
|
82
81
|
Configure precision per write:
|
83
82
|
```ruby
|
84
|
-
client =
|
83
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token',
|
85
84
|
bucket: 'my-bucket',
|
86
85
|
org: 'my-org')
|
87
86
|
|
88
87
|
write_api = client.create_write_api
|
89
|
-
write_api.write(data: 'h2o,location=west value=33i 15', precision:
|
88
|
+
write_api.write(data: 'h2o,location=west value=33i 15', precision: InfluxDB::WritePrecision::SECOND)
|
90
89
|
```
|
91
90
|
|
92
91
|
Allowed values for precision are:
|
@@ -99,7 +98,7 @@ Allowed values for precision are:
|
|
99
98
|
|
100
99
|
Default `bucket` and `organization` destination are configured via `InfluxDB::Client`:
|
101
100
|
```ruby
|
102
|
-
client =
|
101
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token',
|
103
102
|
bucket: 'my-bucket',
|
104
103
|
org: 'my-org')
|
105
104
|
```
|
@@ -107,7 +106,7 @@ client = InfluxDB2::Client.new('https://localhost:9999', 'my-token',
|
|
107
106
|
but there is also possibility to override configuration per write:
|
108
107
|
|
109
108
|
```ruby
|
110
|
-
client =
|
109
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token')
|
111
110
|
|
112
111
|
write_api = client.create_write_api
|
113
112
|
write_api.write(data: 'h2o,location=west value=33i 15', bucket: 'production-data', org: 'customer-1')
|
@@ -119,16 +118,16 @@ The data could be written as:
|
|
119
118
|
|
120
119
|
1. `String` that is formatted as a InfluxDB's line protocol
|
121
120
|
1. `Hash` with keys: name, tags, fields and time
|
122
|
-
1. [Data Point](https://github.com/
|
121
|
+
1. [Data Point](https://github.com/bonitoo-io/influxdb-client-ruby/blob/master/lib/influxdb/client/point.rb#L28) structure
|
123
122
|
1. `Array` of above items
|
124
123
|
|
125
124
|
```ruby
|
126
|
-
client =
|
125
|
+
client = InfluxDB::Client.new('https://localhost:9999', 'my-token',
|
127
126
|
bucket: 'my-bucket',
|
128
127
|
org: 'my-org',
|
129
|
-
precision:
|
128
|
+
precision: InfluxDB::WritePrecision::NANOSECOND)
|
130
129
|
|
131
|
-
point =
|
130
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
132
131
|
.add_tag('location', 'europe')
|
133
132
|
.add_field('level', 2)
|
134
133
|
|
@@ -150,7 +149,7 @@ rake test
|
|
150
149
|
|
151
150
|
## Contributing
|
152
151
|
|
153
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
152
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/bonitoo-io/influxdb-client-ruby.
|
154
153
|
|
155
154
|
## License
|
156
155
|
|
data/influxdb-client.gemspec
CHANGED
@@ -20,22 +20,22 @@
|
|
20
20
|
|
21
21
|
lib = File.expand_path('lib', __dir__)
|
22
22
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
23
|
-
require '
|
23
|
+
require 'influxdb/client/version'
|
24
24
|
|
25
25
|
Gem::Specification.new do |spec|
|
26
26
|
spec.name = 'influxdb-client'
|
27
|
-
spec.version = ENV['CIRCLE_BUILD_NUM'] ? "#{
|
27
|
+
spec.version = ENV['CIRCLE_BUILD_NUM'] ? "#{InfluxDB::VERSION}-#{ENV['CIRCLE_BUILD_NUM']}" : InfluxDB::VERSION
|
28
28
|
spec.authors = ['Jakub Bednar']
|
29
29
|
spec.email = ['jakub.bednar@gmail.com']
|
30
30
|
|
31
31
|
spec.summary = 'Ruby library for InfluxDB 2.'
|
32
32
|
spec.description = 'This is the official Ruby library for InfluxDB 2.'
|
33
|
-
spec.homepage = 'https://github.com/
|
33
|
+
spec.homepage = 'https://github.com/bonitoo-io/influxdb-client-ruby'
|
34
34
|
spec.license = 'MIT'
|
35
35
|
|
36
36
|
spec.metadata['homepage_uri'] = spec.homepage
|
37
|
-
spec.metadata['source_code_uri'] = 'https://github.com/
|
38
|
-
spec.metadata['changelog_uri'] = 'https://raw.githubusercontent.com/
|
37
|
+
spec.metadata['source_code_uri'] = 'https://github.com/bonitoo-io/influxdb-client-ruby'
|
38
|
+
spec.metadata['changelog_uri'] = 'https://raw.githubusercontent.com/bonitoo-io/influxdb-client-ruby/master/CHANGELOG.md'
|
39
39
|
|
40
40
|
spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
41
41
|
spec.test_files = spec.files.grep(%r{^(test|spec|features|smoke)/})
|
@@ -18,8 +18,8 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
require '
|
22
|
-
require '
|
23
|
-
require '
|
24
|
-
require '
|
25
|
-
require '
|
21
|
+
require 'influxdb/client/version'
|
22
|
+
require 'influxdb/client/client'
|
23
|
+
require 'influxdb/client/influx_error'
|
24
|
+
require 'influxdb/client/write_api'
|
25
|
+
require 'influxdb/client/point'
|
@@ -17,9 +17,8 @@
|
|
17
17
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
|
-
require 'net/http'
|
21
20
|
|
22
|
-
module
|
21
|
+
module InfluxDB
|
23
22
|
# The client is the entry point to HTTP API defined
|
24
23
|
# in https://github.com/influxdata/influxdb/blob/master/http/swagger.yml.
|
25
24
|
class Client
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
module
|
21
|
+
module InfluxDB
|
22
22
|
DEFAULT_WRITE_PRECISION = WritePrecision::NANOSECOND
|
23
23
|
ESCAPE_KEY_LIST = ['\\'.freeze, ','.freeze, ' '.freeze, '='.freeze].freeze
|
24
24
|
ESCAPE_VALUE_LIST = ['\\'.freeze, '"'.freeze].freeze
|
@@ -197,13 +197,13 @@ module InfluxDB2
|
|
197
197
|
nano_seconds = @time.to_i * 1e9
|
198
198
|
nano_seconds += @time.tv_nsec
|
199
199
|
case @precision || DEFAULT_WRITE_PRECISION
|
200
|
-
when
|
200
|
+
when InfluxDB::WritePrecision::MILLISECOND then
|
201
201
|
(nano_seconds / 1e6).round
|
202
|
-
when
|
202
|
+
when InfluxDB::WritePrecision::SECOND then
|
203
203
|
(nano_seconds / 1e9).round
|
204
|
-
when
|
204
|
+
when InfluxDB::WritePrecision::MICROSECOND then
|
205
205
|
(nano_seconds / 1e3).round
|
206
|
-
when
|
206
|
+
when InfluxDB::WritePrecision::NANOSECOND then
|
207
207
|
nano_seconds.round
|
208
208
|
end
|
209
209
|
else
|
@@ -18,7 +18,7 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
module
|
21
|
+
module InfluxDB
|
22
22
|
# Precision constants.
|
23
23
|
#
|
24
24
|
class WritePrecision
|
@@ -147,7 +147,7 @@ module InfluxDB2
|
|
147
147
|
elsif data.respond_to? :map
|
148
148
|
data.map do |item|
|
149
149
|
_generate_payload(item)
|
150
|
-
end.reject(&:nil?).join(
|
150
|
+
end.reject(&:nil?).join('\n'.freeze)
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
@@ -22,49 +22,49 @@ require 'test_helper'
|
|
22
22
|
|
23
23
|
class ClientTest < Minitest::Test
|
24
24
|
def test_defined_version_number
|
25
|
-
refute_nil ::
|
25
|
+
refute_nil ::InfluxDB::VERSION
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_client_new
|
29
|
-
refute_nil
|
29
|
+
refute_nil InfluxDB::Client.new('http://localhost:9999', 'my-token')
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_client_hash
|
33
|
-
client1 =
|
34
|
-
client2 =
|
33
|
+
client1 = InfluxDB::Client.new('http://localhost:9999', 'my-token')
|
34
|
+
client2 = InfluxDB::Client.new('http://localhost:9999', 'my-token-diff')
|
35
35
|
|
36
36
|
refute_equal client1.hash, client2.hash
|
37
37
|
assert_equal client1.hash, client1.hash
|
38
38
|
end
|
39
39
|
|
40
40
|
def test_client_eq
|
41
|
-
client1 =
|
42
|
-
client2 =
|
41
|
+
client1 = InfluxDB::Client.new('http://localhost:9999', 'my-token')
|
42
|
+
client2 = InfluxDB::Client.new('http://localhost:9999', 'my-token-diff')
|
43
43
|
|
44
44
|
refute_equal client1, client2
|
45
45
|
assert_equal client1, client1
|
46
46
|
end
|
47
47
|
|
48
48
|
def test_client_options
|
49
|
-
client =
|
49
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token')
|
50
50
|
|
51
51
|
assert_equal 'http://localhost:9999', client.options[:url]
|
52
52
|
assert_equal 'my-token', client.options[:token]
|
53
53
|
end
|
54
54
|
|
55
55
|
def test_close
|
56
|
-
client =
|
56
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token')
|
57
57
|
|
58
58
|
assert_equal true, client.close!
|
59
59
|
assert_equal true, client.close!
|
60
60
|
end
|
61
61
|
|
62
62
|
def test_get_write_api
|
63
|
-
client =
|
63
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token')
|
64
64
|
|
65
65
|
write_api = client.create_write_api
|
66
66
|
|
67
67
|
refute_nil write_api
|
68
|
-
assert_instance_of
|
68
|
+
assert_instance_of InfluxDB::WriteApi, write_api
|
69
69
|
end
|
70
70
|
end
|
data/test/influxdb/point_test.rb
CHANGED
@@ -22,90 +22,90 @@ require 'test_helper'
|
|
22
22
|
|
23
23
|
class PointTest < MiniTest::Test
|
24
24
|
def test_to_line_protocol
|
25
|
-
point_args =
|
26
|
-
|
27
|
-
|
25
|
+
point_args = InfluxDB::Point.new(name: 'h2o',
|
26
|
+
tags: { host: 'aws', region: 'us' },
|
27
|
+
fields: { level: 5, saturation: '99%' }, time: 123)
|
28
28
|
assert_equal 'h2o,host=aws,region=us level=5i,saturation="99%" 123', point_args.to_line_protocol
|
29
29
|
|
30
|
-
point_hash =
|
31
|
-
|
32
|
-
|
30
|
+
point_hash = InfluxDB::Point.from_hash(name: 'h2o',
|
31
|
+
tags: { host: 'aws', region: 'us' },
|
32
|
+
fields: { level: 5, saturation: '99%' }, time: 123)
|
33
33
|
assert_equal 'h2o,host=aws,region=us level=5i,saturation="99%" 123', point_hash.to_line_protocol
|
34
34
|
end
|
35
35
|
|
36
36
|
def test_measurement_escape
|
37
|
-
point =
|
37
|
+
point = InfluxDB::Point.new(name: 'h2 o', tags: { location: 'europe' }, fields: { level: 2 })
|
38
38
|
assert_equal 'h2\\ o,location=europe level=2i', point.to_line_protocol
|
39
39
|
|
40
|
-
point =
|
40
|
+
point = InfluxDB::Point.new(name: 'h2,o', tags: { location: 'europe' }, fields: { level: 2 })
|
41
41
|
assert_equal 'h2\\,o,location=europe level=2i', point.to_line_protocol
|
42
42
|
end
|
43
43
|
|
44
44
|
def test_tag_empty_key
|
45
|
-
point =
|
45
|
+
point = InfluxDB::Point.new(name: 'h2o', fields: { level: 2 }).add_tag('location', 'europe').add_tag('', 'warn')
|
46
46
|
|
47
47
|
assert_equal 'h2o,location=europe level=2i', point.to_line_protocol
|
48
48
|
end
|
49
49
|
|
50
50
|
def test_tag_empty_value
|
51
|
-
point =
|
51
|
+
point = InfluxDB::Point.new(name: 'h2o', fields: { level: 2 }).add_tag('location', 'europe').add_tag('log', '')
|
52
52
|
|
53
53
|
assert_equal 'h2o,location=europe level=2i', point.to_line_protocol
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_override_tag_and_field
|
57
|
-
point =
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
57
|
+
point = InfluxDB::Point.new(name: 'h2o', fields: { level: '1' })
|
58
|
+
.add_tag('location', 'europe')
|
59
|
+
.add_tag('location', 'europe2')
|
60
|
+
.add_field(:level, 2)
|
61
|
+
.add_field(:level, 3)
|
62
62
|
|
63
63
|
assert_equal 'h2o,location=europe2 level=3i', point.to_line_protocol
|
64
64
|
end
|
65
65
|
|
66
66
|
def test_field_types
|
67
|
-
point =
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
67
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
68
|
+
.add_tag('tag_b', 'b')
|
69
|
+
.add_tag('tag_a', 'a')
|
70
|
+
.add_field('n1', -2)
|
71
|
+
.add_field('n2', 10)
|
72
|
+
.add_field('n3', 1_265_437_718_438_866_624_512)
|
73
|
+
.add_field('n4', 5.5)
|
74
|
+
.add_field('bool', true)
|
75
|
+
.add_field('string', 'string value')
|
76
76
|
|
77
77
|
expected = 'h2o,tag_a=a,tag_b=b bool=true,n1=-2i,n2=10i,n3=1265437718438866624512i,n4=5.5,string="string value"'
|
78
78
|
assert_equal expected, point.to_line_protocol
|
79
79
|
end
|
80
80
|
|
81
81
|
def test_field_null_value
|
82
|
-
point =
|
83
|
-
|
84
|
-
|
85
|
-
|
82
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
83
|
+
.add_tag('location', 'europe')
|
84
|
+
.add_field('level', 2)
|
85
|
+
.add_field('warning', nil)
|
86
86
|
|
87
87
|
assert_equal 'h2o,location=europe level=2i', point.to_line_protocol
|
88
88
|
end
|
89
89
|
|
90
90
|
def test_field_escape
|
91
|
-
point =
|
92
|
-
|
93
|
-
|
91
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
92
|
+
.add_tag('location', 'europe')
|
93
|
+
.add_field('level', 'string esc\\ape value')
|
94
94
|
|
95
95
|
assert_equal 'h2o,location=europe level="string esc\\\\ape value"', point.to_line_protocol
|
96
96
|
|
97
|
-
point =
|
98
|
-
|
99
|
-
|
97
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
98
|
+
.add_tag('location', 'europe')
|
99
|
+
.add_field('level', 'string esc"ape value')
|
100
100
|
|
101
101
|
assert_equal 'h2o,location=europe level="string esc\"ape value"', point.to_line_protocol
|
102
102
|
end
|
103
103
|
|
104
104
|
def test_time
|
105
|
-
point =
|
106
|
-
|
107
|
-
|
108
|
-
|
105
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
106
|
+
.add_tag('location', 'europe')
|
107
|
+
.add_field('level', 2)
|
108
|
+
.time(123, InfluxDB::WritePrecision::NANOSECOND)
|
109
109
|
|
110
110
|
assert_equal 'h2o,location=europe level=2i 123', point.to_line_protocol
|
111
111
|
end
|
@@ -113,31 +113,31 @@ class PointTest < MiniTest::Test
|
|
113
113
|
def test_time_formatting
|
114
114
|
time = Time.utc(2015, 10, 15, 8, 20, 15)
|
115
115
|
|
116
|
-
point =
|
117
|
-
|
118
|
-
|
119
|
-
|
116
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
117
|
+
.add_tag('location', 'europe')
|
118
|
+
.add_field('level', 2)
|
119
|
+
.time(time, InfluxDB::WritePrecision::MILLISECOND)
|
120
120
|
|
121
121
|
assert_equal 'h2o,location=europe level=2i 1444897215000', point.to_line_protocol
|
122
122
|
|
123
|
-
point =
|
124
|
-
|
125
|
-
|
126
|
-
|
123
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
124
|
+
.add_tag('location', 'europe')
|
125
|
+
.add_field('level', 2)
|
126
|
+
.time(time, InfluxDB::WritePrecision::SECOND)
|
127
127
|
|
128
128
|
assert_equal 'h2o,location=europe level=2i 1444897215', point.to_line_protocol
|
129
129
|
|
130
|
-
point =
|
131
|
-
|
132
|
-
|
133
|
-
|
130
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
131
|
+
.add_tag('location', 'europe')
|
132
|
+
.add_field('level', 2)
|
133
|
+
.time(time, InfluxDB::WritePrecision::MICROSECOND)
|
134
134
|
|
135
135
|
assert_equal 'h2o,location=europe level=2i 1444897215000000', point.to_line_protocol
|
136
136
|
|
137
|
-
point =
|
138
|
-
|
139
|
-
|
140
|
-
|
137
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
138
|
+
.add_tag('location', 'europe')
|
139
|
+
.add_field('level', 2)
|
140
|
+
.time(time, InfluxDB::WritePrecision::NANOSECOND)
|
141
141
|
|
142
142
|
assert_equal 'h2o,location=europe level=2i 1444897215000000000', point.to_line_protocol
|
143
143
|
end
|
@@ -145,76 +145,76 @@ class PointTest < MiniTest::Test
|
|
145
145
|
def test_time_formatting_default
|
146
146
|
time = Time.utc(2015, 10, 15, 8, 20, 15)
|
147
147
|
|
148
|
-
point =
|
149
|
-
|
150
|
-
|
148
|
+
point = InfluxDB::Point.new(name: 'h2o', time: time)
|
149
|
+
.add_tag('location', 'europe')
|
150
|
+
.add_field('level', 2)
|
151
151
|
|
152
152
|
assert_equal 'h2o,location=europe level=2i 1444897215000000000', point.to_line_protocol
|
153
153
|
|
154
|
-
point =
|
155
|
-
|
156
|
-
|
157
|
-
|
154
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
155
|
+
.add_tag('location', 'europe')
|
156
|
+
.add_field('level', 2)
|
157
|
+
.time(time, nil)
|
158
158
|
|
159
159
|
assert_equal 'h2o,location=europe level=2i 1444897215000000000', point.to_line_protocol
|
160
160
|
end
|
161
161
|
|
162
162
|
def test_time_string
|
163
|
-
point_args =
|
164
|
-
|
165
|
-
|
163
|
+
point_args = InfluxDB::Point.new(name: 'h2o',
|
164
|
+
tags: { host: 'aws', region: 'us' },
|
165
|
+
fields: { level: 5 }, time: '123')
|
166
166
|
|
167
167
|
assert_equal 'h2o,host=aws,region=us level=5i 123', point_args.to_line_protocol
|
168
168
|
end
|
169
169
|
|
170
170
|
def test_time_float
|
171
|
-
point_args =
|
172
|
-
|
173
|
-
|
171
|
+
point_args = InfluxDB::Point.new(name: 'h2o',
|
172
|
+
tags: { host: 'aws', region: 'us' },
|
173
|
+
fields: { level: 5 }, time: 1.444897215e+18)
|
174
174
|
|
175
175
|
assert_equal 'h2o,host=aws,region=us level=5i 1444897215000000000', point_args.to_line_protocol
|
176
176
|
|
177
|
-
point_args =
|
178
|
-
|
179
|
-
|
177
|
+
point_args = InfluxDB::Point.new(name: 'h2o',
|
178
|
+
tags: { host: 'aws', region: 'us' },
|
179
|
+
fields: { level: 5 }, time: 102_030_405_060)
|
180
180
|
|
181
181
|
assert_equal 'h2o,host=aws,region=us level=5i 102030405060', point_args.to_line_protocol
|
182
182
|
end
|
183
183
|
|
184
184
|
def test_utf_8
|
185
|
-
point =
|
186
|
-
|
187
|
-
|
188
|
-
|
185
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
186
|
+
.add_tag('location', 'Přerov')
|
187
|
+
.add_field('level', 2)
|
188
|
+
.time(123, InfluxDB::WritePrecision::NANOSECOND)
|
189
189
|
|
190
190
|
assert_equal 'h2o,location=Přerov level=2i 123', point.to_line_protocol
|
191
191
|
end
|
192
192
|
|
193
193
|
def test_infinity_values
|
194
|
-
point =
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
194
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
195
|
+
.add_tag('location', 'europe')
|
196
|
+
.add_field('infinity_constant', Float::INFINITY)
|
197
|
+
.add_field('infinity_positive', 1 / 0.0)
|
198
|
+
.add_field('infinity_negative', -1 / 0.0)
|
199
|
+
.add_field('level', 2)
|
200
200
|
|
201
201
|
assert_equal 'h2o,location=europe level=2i', point.to_line_protocol
|
202
202
|
end
|
203
203
|
|
204
204
|
def test_only_infinity_values
|
205
|
-
point =
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
205
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
206
|
+
.add_tag('location', 'europe')
|
207
|
+
.add_field('infinity_constant', Float::INFINITY)
|
208
|
+
.add_field('infinity_positive', 1 / 0.0)
|
209
|
+
.add_field('infinity_negative', -1 / 0.0)
|
210
210
|
|
211
211
|
assert_nil point.to_line_protocol
|
212
212
|
end
|
213
213
|
|
214
214
|
def test_without_tags
|
215
|
-
point =
|
216
|
-
|
217
|
-
|
215
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
216
|
+
.add_field('level', 2)
|
217
|
+
.time(123, InfluxDB::WritePrecision::NANOSECOND)
|
218
218
|
|
219
219
|
assert_equal 'h2o level=2i 123', point.to_line_protocol
|
220
220
|
end
|
@@ -27,19 +27,19 @@ class WriteApiIntegrationTest < MiniTest::Test
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def test_write_into_influx_db
|
30
|
-
client =
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
30
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
31
|
+
bucket: 'my-bucket',
|
32
|
+
org: 'my-org',
|
33
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
34
|
+
use_ssl: false)
|
35
35
|
|
36
36
|
now = Time.now.utc
|
37
37
|
|
38
38
|
measurement = 'h2o_' + now.to_i.to_s
|
39
|
-
point =
|
40
|
-
|
41
|
-
|
42
|
-
|
39
|
+
point = InfluxDB::Point.new(name: measurement)
|
40
|
+
.add_tag('location', 'europe')
|
41
|
+
.add_field('level', 2)
|
42
|
+
.time(now, InfluxDB::WritePrecision::NANOSECOND)
|
43
43
|
|
44
44
|
client.create_write_api.write(data: point)
|
45
45
|
|
@@ -26,7 +26,7 @@ class WriteApiTest < MiniTest::Test
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def test_required_arguments
|
29
|
-
client =
|
29
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token')
|
30
30
|
write_api = client.create_write_api
|
31
31
|
|
32
32
|
# precision
|
@@ -35,19 +35,19 @@ class WriteApiTest < MiniTest::Test
|
|
35
35
|
end
|
36
36
|
# bucket
|
37
37
|
assert_raises ArgumentError do
|
38
|
-
write_api.write(data: {}, org: 'my-org', precision:
|
38
|
+
write_api.write(data: {}, org: 'my-org', precision: InfluxDB::WritePrecision::NANOSECOND)
|
39
39
|
end
|
40
40
|
# org
|
41
41
|
assert_raises ArgumentError do
|
42
|
-
write_api.write(data: {}, bucket: 'my-bucket', precision:
|
42
|
+
write_api.write(data: {}, bucket: 'my-bucket', precision: InfluxDB::WritePrecision::NANOSECOND)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
46
|
def test_default_arguments_
|
47
|
-
client =
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
48
|
+
bucket: 'my-bucket',
|
49
|
+
org: 'my-org',
|
50
|
+
precision: InfluxDB::WritePrecision::NANOSECOND)
|
51
51
|
write_api = client.create_write_api
|
52
52
|
|
53
53
|
# without argument errors
|
@@ -57,11 +57,11 @@ class WriteApiTest < MiniTest::Test
|
|
57
57
|
def test_write_line_protocol
|
58
58
|
stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
59
59
|
.to_return(status: 204)
|
60
|
-
client =
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
60
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
61
|
+
bucket: 'my-bucket',
|
62
|
+
org: 'my-org',
|
63
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
64
|
+
use_ssl: false)
|
65
65
|
|
66
66
|
client.create_write_api.write(data: 'h2o,location=west value=33i 15')
|
67
67
|
|
@@ -72,13 +72,13 @@ class WriteApiTest < MiniTest::Test
|
|
72
72
|
def test_write_point
|
73
73
|
stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
74
74
|
.to_return(status: 204)
|
75
|
-
client =
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
75
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
76
|
+
bucket: 'my-bucket',
|
77
|
+
org: 'my-org',
|
78
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
79
|
+
use_ssl: false)
|
80
80
|
|
81
|
-
client.create_write_api.write(data:
|
81
|
+
client.create_write_api.write(data: InfluxDB::Point.new(name: 'h2o')
|
82
82
|
.add_tag('location', 'europe')
|
83
83
|
.add_field('level', 2))
|
84
84
|
|
@@ -89,11 +89,11 @@ class WriteApiTest < MiniTest::Test
|
|
89
89
|
def test_write_hash
|
90
90
|
stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
91
91
|
.to_return(status: 204)
|
92
|
-
client =
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
92
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
93
|
+
bucket: 'my-bucket',
|
94
|
+
org: 'my-org',
|
95
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
96
|
+
use_ssl: false)
|
97
97
|
|
98
98
|
client.create_write_api.write(data: { name: 'h2o',
|
99
99
|
tags: { host: 'aws', region: 'us' },
|
@@ -107,15 +107,15 @@ class WriteApiTest < MiniTest::Test
|
|
107
107
|
def test_write_collection
|
108
108
|
stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
109
109
|
.to_return(status: 204)
|
110
|
-
client =
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
110
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
111
|
+
bucket: 'my-bucket',
|
112
|
+
org: 'my-org',
|
113
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
114
|
+
use_ssl: false)
|
115
115
|
|
116
|
-
point =
|
117
|
-
|
118
|
-
|
116
|
+
point = InfluxDB::Point.new(name: 'h2o')
|
117
|
+
.add_tag('location', 'europe')
|
118
|
+
.add_field('level', 2)
|
119
119
|
|
120
120
|
hash = { name: 'h2o',
|
121
121
|
tags: { host: 'aws', region: 'us' },
|
@@ -123,8 +123,8 @@ class WriteApiTest < MiniTest::Test
|
|
123
123
|
|
124
124
|
client.create_write_api.write(data: ['h2o,location=west value=33i 15', nil, '', point, hash])
|
125
125
|
|
126
|
-
expected =
|
127
|
-
|
126
|
+
expected = 'h2o,location=west value=33i 15\nh2o,location=europe level=2i'\
|
127
|
+
'\nh2o,host=aws,region=us level=5i,saturation="99%" 123'
|
128
128
|
assert_requested(:post, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns',
|
129
129
|
times: 1, body: expected)
|
130
130
|
end
|
@@ -132,11 +132,11 @@ class WriteApiTest < MiniTest::Test
|
|
132
132
|
def test_authorization_header
|
133
133
|
stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
134
134
|
.to_return(status: 204)
|
135
|
-
client =
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
135
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
136
|
+
bucket: 'my-bucket',
|
137
|
+
org: 'my-org',
|
138
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
139
|
+
use_ssl: false)
|
140
140
|
|
141
141
|
client.create_write_api.write(data: 'h2o,location=west value=33i 15')
|
142
142
|
|
@@ -147,10 +147,10 @@ class WriteApiTest < MiniTest::Test
|
|
147
147
|
def test_without_data
|
148
148
|
stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
149
149
|
.to_return(status: 204)
|
150
|
-
client =
|
151
|
-
|
152
|
-
|
153
|
-
|
150
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
151
|
+
bucket: 'my-bucket',
|
152
|
+
org: 'my-org',
|
153
|
+
precision: InfluxDB::WritePrecision::NANOSECOND)
|
154
154
|
|
155
155
|
client.create_write_api.write(data: '')
|
156
156
|
|
@@ -164,13 +164,13 @@ class WriteApiTest < MiniTest::Test
|
|
164
164
|
stub_request(:any, 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
165
165
|
.to_return(status: 400, headers: { 'X-Platform-Error-Code' => 'invalid' }, body: error_body)
|
166
166
|
|
167
|
-
client =
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
167
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
168
|
+
bucket: 'my-bucket',
|
169
|
+
org: 'my-org',
|
170
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
171
|
+
use_ssl: false)
|
172
172
|
|
173
|
-
error = assert_raises
|
173
|
+
error = assert_raises InfluxDB::InfluxError do
|
174
174
|
client.create_write_api.write(data: 'h2o,location=west value=33i 15')
|
175
175
|
end
|
176
176
|
|
@@ -187,11 +187,11 @@ class WriteApiTest < MiniTest::Test
|
|
187
187
|
stub_request(:any, 'http://localhost:9090/api/v2/write?bucket=my-bucket&org=my-org&precision=ns')
|
188
188
|
.to_return(status: 204)
|
189
189
|
|
190
|
-
client =
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
190
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
191
|
+
bucket: 'my-bucket',
|
192
|
+
org: 'my-org',
|
193
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
194
|
+
use_ssl: false)
|
195
195
|
|
196
196
|
client.create_write_api.write(data: 'h2o,location=west value=33i 15')
|
197
197
|
|
@@ -206,14 +206,14 @@ class WriteApiTest < MiniTest::Test
|
|
206
206
|
.to_return(status: 307, headers:
|
207
207
|
{ 'location' => 'http://localhost:9999/api/v2/write?bucket=my-bucket&org=my-org&precision=ns' })
|
208
208
|
|
209
|
-
client =
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
209
|
+
client = InfluxDB::Client.new('http://localhost:9999', 'my-token',
|
210
|
+
bucket: 'my-bucket',
|
211
|
+
org: 'my-org',
|
212
|
+
precision: InfluxDB::WritePrecision::NANOSECOND,
|
213
|
+
max_redirect_count: 5,
|
214
|
+
use_ssl: false)
|
215
215
|
|
216
|
-
error = assert_raises
|
216
|
+
error = assert_raises InfluxDB::InfluxError do
|
217
217
|
client.create_write_api.write(data: 'h2o,location=west value=33i 15')
|
218
218
|
end
|
219
219
|
|
@@ -221,13 +221,13 @@ class WriteApiTest < MiniTest::Test
|
|
221
221
|
end
|
222
222
|
|
223
223
|
def test_write_precision_constant
|
224
|
-
assert_equal
|
225
|
-
assert_equal
|
226
|
-
assert_equal
|
227
|
-
assert_equal
|
224
|
+
assert_equal InfluxDB::WritePrecision::SECOND, InfluxDB::WritePrecision.new.get_from_value('s')
|
225
|
+
assert_equal InfluxDB::WritePrecision::MILLISECOND, InfluxDB::WritePrecision.new.get_from_value('ms')
|
226
|
+
assert_equal InfluxDB::WritePrecision::MICROSECOND, InfluxDB::WritePrecision.new.get_from_value('us')
|
227
|
+
assert_equal InfluxDB::WritePrecision::NANOSECOND, InfluxDB::WritePrecision.new.get_from_value('ns')
|
228
228
|
|
229
229
|
error = assert_raises RuntimeError do
|
230
|
-
|
230
|
+
InfluxDB::WritePrecision.new.get_from_value('not_supported')
|
231
231
|
end
|
232
232
|
|
233
233
|
assert_equal 'The time precision not_supported is not supported.', error.message
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: influxdb-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.pre.138
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jakub Bednar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-01-
|
11
|
+
date: 2020-01-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -142,24 +142,24 @@ files:
|
|
142
142
|
- bin/influxdb-onboarding.sh
|
143
143
|
- bin/influxdb-restart.sh
|
144
144
|
- influxdb-client.gemspec
|
145
|
-
- lib/
|
146
|
-
- lib/
|
147
|
-
- lib/
|
148
|
-
- lib/
|
149
|
-
- lib/
|
150
|
-
- lib/
|
145
|
+
- lib/influxdb/client.rb
|
146
|
+
- lib/influxdb/client/client.rb
|
147
|
+
- lib/influxdb/client/influx_error.rb
|
148
|
+
- lib/influxdb/client/point.rb
|
149
|
+
- lib/influxdb/client/version.rb
|
150
|
+
- lib/influxdb/client/write_api.rb
|
151
151
|
- test/influxdb/client_test.rb
|
152
152
|
- test/influxdb/point_test.rb
|
153
153
|
- test/influxdb/write_api_integration_test.rb
|
154
154
|
- test/influxdb/write_api_test.rb
|
155
155
|
- test/test_helper.rb
|
156
|
-
homepage: https://github.com/
|
156
|
+
homepage: https://github.com/bonitoo-io/influxdb-client-ruby
|
157
157
|
licenses:
|
158
158
|
- MIT
|
159
159
|
metadata:
|
160
|
-
homepage_uri: https://github.com/
|
161
|
-
source_code_uri: https://github.com/
|
162
|
-
changelog_uri: https://raw.githubusercontent.com/
|
160
|
+
homepage_uri: https://github.com/bonitoo-io/influxdb-client-ruby
|
161
|
+
source_code_uri: https://github.com/bonitoo-io/influxdb-client-ruby
|
162
|
+
changelog_uri: https://raw.githubusercontent.com/bonitoo-io/influxdb-client-ruby/master/CHANGELOG.md
|
163
163
|
post_install_message:
|
164
164
|
rdoc_options: []
|
165
165
|
require_paths:
|