xymonclient 0.1.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 53c615d0c431bab59303f6e27d944dc89b2f8f3c
4
- data.tar.gz: d279ec888695080dd90901dd5c3a2230c37b95f6
3
+ metadata.gz: 433597de8de574da85cec7099ff4829917da96e5
4
+ data.tar.gz: 2ff97c778a0827001f3ccb53765b9f154ca544ed
5
5
  SHA512:
6
- metadata.gz: bed8acb18cdbb7b3c1dc5ce9c381433c3138fc142637e4a2456b14f1fb15f0a25e8b8f4505a257a2c35ce17b7dca38e2561b8a78ee634cbbe72d820fc748b33e
7
- data.tar.gz: 24a02a76ebaff377408a6423f127050a27ec416bcf2c3c6d7c638a31e421833ec4321c79d530b4120946251201100e5c361e25e168f03a6c637d3a88cca36a38
6
+ metadata.gz: 4251c26893977fa16afc8497c977c57d4ab78e1e6433896b05e7c01213ea4c6c933a18b12c61b8b8b2530a8290598ebed210f61ab03c90a08fb1378ce187ef8e
7
+ data.tar.gz: bf3be7509dd5129d42dbb1d9fa1ad6600433e573c69f472c71ed89e1814b6b318707f59914611d9551ec38baf6fba106a2ae4f37b6fd0acd678b3a457ed85144
data/Gemfile.lock CHANGED
@@ -1,21 +1,21 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- xymonclient (0.1.0)
4
+ xymonclient (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  ast (2.3.0)
10
- codeclimate-test-reporter (1.0.3)
10
+ codeclimate-test-reporter (1.0.5)
11
11
  simplecov
12
- diff-lcs (1.2.5)
12
+ diff-lcs (1.3)
13
13
  docile (1.1.5)
14
14
  json (2.0.2-java)
15
- parser (2.3.1.4)
15
+ parser (2.3.3.1)
16
16
  ast (~> 2.2)
17
17
  powerpack (0.1.1)
18
- rainbow (2.1.0)
18
+ rainbow (2.2.1)
19
19
  rake (10.5.0)
20
20
  rspec (3.5.0)
21
21
  rspec-core (~> 3.5.0)
@@ -42,13 +42,12 @@ GEM
42
42
  json (>= 1.8, < 3)
43
43
  simplecov-html (~> 0.10.0)
44
44
  simplecov-html (0.10.0)
45
- unicode-display_width (1.1.1)
45
+ unicode-display_width (1.1.3)
46
46
 
47
47
  PLATFORMS
48
48
  java
49
49
 
50
50
  DEPENDENCIES
51
- bundler (~> 1.13)
52
51
  codeclimate-test-reporter (~> 1.0)
53
52
  rake (~> 10.0)
54
53
  rspec (~> 3.0)
@@ -57,4 +56,4 @@ DEPENDENCIES
57
56
  xymonclient!
58
57
 
59
58
  BUNDLED WITH
60
- 1.13.6
59
+ 1.14.2
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/xymonclient.svg)](https://badge.fury.io/rb/xymonclient)
2
- [![Build Status](https://travis-ci.org/dchauviere/ruby-xymonclient.svg?branch=master)](https://travis-ci.org/dchauviere/ruby-xymonclient)
3
- [![Code Climate](https://codeclimate.com/github/dchauviere/ruby-xymonclient/badges/gpa.svg)](https://codeclimate.com/github/dchauviere/ruby-xymonclient)
4
- <a href="https://codeclimate.com/github/dchauviere/ruby-xymonclient/coverage"><img src="https://codeclimate.com/github/dchauviere/ruby-xymonclient/badges/coverage.svg" /></a>
2
+ [![Build Status](https://travis-ci.org/Orange-OpenSource/ruby-xymonclient.svg?branch=master)](https://travis-ci.org/Orange-OpenSource/ruby-xymonclient)
3
+ [![Code Climate](https://codeclimate.com/github/Orange-OpenSource/ruby-xymonclient/badges/gpa.svg)](https://codeclimate.com/github/Orange-OpenSource/ruby-xymonclient)
4
+ <a href="https://codeclimate.com/github/Orange-OpenSource/ruby-xymonclient/coverage"><img src="https://codeclimate.com/github/Orange-OpenSource/ruby-xymonclient/badges/coverage.svg" /></a>
5
5
  # XymonClient
6
6
 
7
7
  XymonClient is a ruby library for interacting with Xymon
@@ -46,8 +46,6 @@ require 'xymonclient/service'
46
46
  service = XymonClient::Service.new(['localhost:1984'],
47
47
  'name' => 'service1',
48
48
  'host' => 'myhost',
49
- 'header' => 'A sample header',
50
- 'footer' => 'A sample footer',
51
49
  'items' => {
52
50
  'ITEM1' => {
53
51
  'label' => 'Gauge Item 1',
@@ -82,4 +80,4 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
82
80
 
83
81
  ## Contributing
84
82
 
85
- Bug reports and pull requests are welcome on GitHub at https://github.com/dchauviere/xymonclient.
83
+ Bug reports and pull requests are welcome on GitHub at https://github.com/Orange-OpenSource/ruby-xymonclient.
@@ -8,101 +8,104 @@ module XymonClient
8
8
  # Manage a Service, can contains multiple items to monitor
9
9
  class Service < XymonClient::Client
10
10
  attr_reader :name
11
- attr_accessor :status
12
- attr_reader :details
13
- DEFAULT_DETAILS_TEMPLATE = 'Generated at <%= @timestamp %> ' \
14
- "for <%= @lifetime %> \n<%= @header %>\n" \
11
+ attr_reader :status
12
+ attr_reader :items
13
+ attr_accessor :enabled
14
+ attr_accessor :lifetime
15
+
16
+ DEFAULT_DETAILS_TEMPLATE = \
17
+ "Generated at <%= @timestamp %> for <%= @lifetime %> \n" \
15
18
  '<% @items.each do |item| %>' \
16
19
  "&<%= item['status'] %> <%= item['label'] %>: <%= item['value'] %>\n" \
17
- "<% end %>\n" \
18
- "<%= @footer %>\n".freeze
20
+ "<% end %>\n".freeze
19
21
 
20
22
  def initialize(servers, config)
21
23
  super(servers)
22
- @info = { 'items' => {} }
24
+ @items = {}
25
+ @current_state = 'purple'
23
26
  update_config(config)
24
27
  end
25
28
 
26
29
  def update_config(config)
27
30
  raise InvalidService if config.fetch('name', '') == ''
28
31
  raise InvalidService if config.fetch('host', '') == ''
29
- @info['name'] = config['name']
30
- @info['host'] = config['host']
31
- @info['details_template'] = config.fetch(
32
+ @name = config['name']
33
+ @host = config['host']
34
+ @details_template = config.fetch(
32
35
  'details_template',
33
36
  DEFAULT_DETAILS_TEMPLATE
34
37
  )
35
- @info['lifetime'] = config.fetch('lifetime', '30m')
36
- @info['enabled'] = config.fetch('enabled', true)
37
- @info['header'] = config.fetch('header', '')
38
- @info['footer'] = config.fetch('footer', '')
38
+ @lifetime = config.fetch('lifetime', '30m')
39
+ @enabled = config.fetch('enabled', true)
39
40
  if config.fetch('items', {}).empty?
40
- @info['items'] = {}
41
+ @items = {}
41
42
  else
42
- _update_items_config(config)
43
+ _update_items_config(config['items'])
43
44
  end
44
- @info['purple_item_status'] = config.fetch('purple_item_status', 'red')
45
- @info['status'] = @info.fetch('status', config.fetch('status', 'purple'))
45
+ @purple_item_status = config.fetch('purple_item_status', 'red')
46
46
  end
47
47
 
48
- def update_item(name, value)
49
- raise InvalidServiceItem unless @info['items'].include?(name)
50
- @info['items'][name].value = value
48
+ def update_item(name, value, attrs = {})
49
+ raise InvalidServiceItem unless @items.include?(name)
50
+ @items[name].value = value
51
+ @items[name].attributes.merge!(attrs)
51
52
  end
52
53
 
53
54
  def status
54
- return 'clear' unless @info['enabled']
55
- items_status = @info['items'].map do |_key, value|
56
- if value.info['status'] == 'purple'
57
- @info['purple_item_status']
55
+ @timestamp = Time.now
56
+ return 'clear' unless @enabled
57
+ items_status = @items.map do |_key, value|
58
+ if value.status == 'purple'
59
+ @purple_item_status
58
60
  else
59
- value.info['status']
61
+ value.status
60
62
  end
61
63
  end
62
- @info['status'] = unless items_status.empty?
63
- if items_status.include?('red')
64
- 'red'
65
- elsif items_status.include?('yellow') && \
66
- @status != 'red'
67
- 'yellow'
68
- else
69
- 'green'
70
- end
71
- end
64
+ @current_state = unless items_status.empty?
65
+ if items_status.include?('red')
66
+ 'red'
67
+ elsif items_status.include?('yellow') && \
68
+ @current_state != 'red'
69
+ 'yellow'
70
+ else
71
+ 'green'
72
+ end
73
+ end
72
74
  details = _details
73
- super(
74
- @info['host'],
75
- @info['name'],
76
- @info['status'],
77
- details,
78
- @info['lifetime']
79
- )
80
- [@info['status'], details]
75
+ super(@host, @name, @current_state, details, @lifetime)
76
+ [@current_state, details]
81
77
  end
82
78
 
83
79
  def enable
84
- super(@info['host'], @info['name'])
80
+ super(@host, @name)
85
81
  end
86
82
 
87
83
  def disable(duration, message)
88
- super(@info['host'], @info['name'], duration, message)
84
+ super(@host, @name, duration, message)
89
85
  end
90
86
 
91
87
  def board(fields = [])
92
- super(@info['host'], @info['name'], fields)
88
+ super(@host, @name, fields)
93
89
  end
94
90
 
95
91
  def ack(duration, message)
96
- super(@info['host'], @info['name'], duration, message)
92
+ super(@host, @name, duration, message)
97
93
  end
98
94
 
99
95
  private
100
96
 
101
97
  def _details
102
- @info['timestamp'] = Time.now
103
- context = @info.reject { |key, _value| key == 'items' }
104
- context['items'] = @info['items'].map { |_key, value| value.info }
105
- ERB.new(@info['details_template']).result(
98
+ context = {
99
+ 'name' => @name,
100
+ 'host' => @host,
101
+ 'status' => @current_state,
102
+ 'items' => {},
103
+ 'enabled' => @enabled,
104
+ 'lifetime' => @lifetime,
105
+ 'timestamp' => @timestamp
106
+ }
107
+ context['items'] = @items.map { |_name, item| item.context }
108
+ ERB.new(@details_template).result(
106
109
  XymonClient::ERBContext.new(context).context
107
110
  )
108
111
  end
@@ -118,15 +121,16 @@ module XymonClient
118
121
  end
119
122
  end
120
123
 
121
- def _update_items_config(config)
124
+ def _update_items_config(items)
122
125
  # cleanup old items and update old items
123
- @info['items'].keep_if { |key, _value| config.fetch('items').key?(key) }
124
- @info['items'].each do |item_name, item_value|
125
- item_value.update_config(config['items'][item_name])
126
+ @items.keep_if { |key, _value| items.key?(key) }
127
+ @items.each do |item_name, item_value|
128
+ item_value.update_config(items[item_name])
126
129
  end
127
130
  # add new items
128
- config['items'].each do |item_name, item_config|
129
- @info['items'][item_name] = _create_serviceitem(item_config)
131
+ items.each do |item_name, item_config|
132
+ @items[item_name] = _create_serviceitem(item_config) \
133
+ unless @items.keys.include?(item_name)
130
134
  end
131
135
  end
132
136
  end
@@ -6,67 +6,87 @@ module XymonClient
6
6
  # Manage an item to monitor
7
7
  class ServiceItem
8
8
  attr_accessor :value
9
- attr_reader :info
9
+ attr_accessor :attributes
10
+ attr_accessor :enabled
11
+ attr_accessor :description
12
+ attr_accessor :lifetime
13
+ attr_accessor :label
14
+ attr_reader :status
15
+ attr_reader :time
10
16
 
11
17
  def initialize(config)
12
18
  raise InvalidServiceItemName if config.fetch('label', '') == ''
13
- @info = {
14
- 'label' => config['label'],
15
- 'type' => config['type'],
16
- 'description' => config.fetch('description', ''),
17
- 'enabled' => config.fetch('enabled', true),
18
- 'status' => 'purple',
19
- 'lifetime' => config.fetch('lifetime', '30m'),
20
- 'time' => Time.at(0)
21
- }
19
+ @time = Time.at(0)
20
+ @threshold = config.fetch('threshold', {})
21
+ @attributes = config.fetch('attributes', {})
22
+ update_config(config)
22
23
  end
23
24
 
24
25
  def value=(value)
25
- @info['value'] = value
26
- @info['time'] = Time.now
26
+ @value = value
27
+ @time = Time.now
27
28
  status
28
29
  end
29
30
 
30
- def value
31
- @info['value']
32
- end
33
-
34
31
  def status
35
- @info['status'] = \
36
- if !@info['enabled']
32
+ @status = \
33
+ if !@enabled
37
34
  'clear'
38
- elsif Time.now - @info['time'] > \
39
- XymonClient.timestring_to_time(@info['lifetime'])
35
+ elsif Time.now - @time > \
36
+ XymonClient.timestring_to_time(@lifetime)
40
37
  'purple'
41
- elsif XymonClient.valid_status?(@info['value'])
42
- @info['value']
38
+ elsif XymonClient.valid_status?(@value)
39
+ @value
43
40
  else
44
41
  'red'
45
42
  end
46
43
  end
44
+
45
+ def update_config(config)
46
+ raise InvalidServiceItemName if config.fetch('label', '') == ''
47
+ @label = config['label']
48
+ @description = config.fetch('description', '')
49
+ @enabled = config.fetch('enabled', true)
50
+ @lifetime = config.fetch('lifetime', '30m')
51
+ @threshold = config.fetch('threshold', {})
52
+ @attributes.merge!(config.fetch('attributes', {}))
53
+ end
54
+
55
+ def context
56
+ {
57
+ 'label' => @label,
58
+ 'description' => @description,
59
+ 'enabled' => @enabled,
60
+ 'lifetime' => @lifetime,
61
+ 'timestamp' => @timestamp,
62
+ 'threshold' => @threshold,
63
+ 'attributes' => @attributes,
64
+ 'status' => @status,
65
+ 'value' => @value
66
+ }
67
+ end
47
68
  end
48
69
 
49
70
  ##
50
71
  class ServiceItemGauge < ServiceItem
51
72
  def initialize(config)
52
73
  super(config)
53
- @info['threshold'] = config.fetch('threshold', {})
54
- @info['nan_status'] = config.fetch('nan_status', 'green')
74
+ update_config(config)
55
75
  end
56
76
 
57
77
  def status
58
- @info['status'] = \
59
- if !@info['enabled']
78
+ @status = \
79
+ if !@enabled
60
80
  'clear'
61
- elsif Time.now - @info['time'] > \
62
- XymonClient.timestring_to_time(@info['lifetime'])
81
+ elsif Time.now - @time > \
82
+ XymonClient.timestring_to_time(@lifetime)
63
83
  'purple'
64
84
  elsif value.instance_of?(Float) && value.nan?
65
- @info['threshold'].fetch('nan_status', 'red')
66
- elsif @info['threshold'].key?('critical') && \
85
+ @threshold.fetch('nan_status', 'red')
86
+ elsif @threshold.key?('critical') && \
67
87
  _threshold_reached?('critical')
68
88
  'red'
69
- elsif @info['threshold'].key?('warning') && \
89
+ elsif @threshold.key?('warning') && \
70
90
  _threshold_reached?('warning')
71
91
  'yellow'
72
92
  else
@@ -74,40 +94,46 @@ module XymonClient
74
94
  end
75
95
  end
76
96
 
97
+ def update_config(config)
98
+ super(config)
99
+ @nan_status = config.fetch('nan_status', 'green')
100
+ end
101
+
102
+ def context
103
+ {
104
+ 'nan_status' => @nan_status
105
+ }.merge(super)
106
+ end
107
+
77
108
  private
78
109
 
79
110
  def _threshold_reached?(threshold)
80
- case @info['threshold'].fetch('order', '<')
111
+ case @threshold.fetch('order', '<')
81
112
  when '<'
82
- @info['value'] < @info['threshold'][threshold]
113
+ @value < @threshold[threshold]
83
114
  when '>'
84
- @info['value'] > @info['threshold'][threshold]
115
+ @value > @threshold[threshold]
85
116
  when '<='
86
- @info['value'] <= @info['threshold'][threshold]
117
+ @value <= @threshold[threshold]
87
118
  when '>='
88
- @info['value'] >= @info['threshold'][threshold]
119
+ @value >= @threshold[threshold]
89
120
  end
90
121
  end
91
122
  end
92
123
 
93
124
  ##
94
125
  class ServiceItemString < ServiceItem
95
- def initialize(config)
96
- super(config)
97
- @info['threshold'] = config.fetch('threshold', {})
98
- end
99
-
100
126
  def status
101
- @info['status'] = \
102
- if !@info['enabled']
127
+ @status = \
128
+ if !@enabled
103
129
  'clear'
104
- elsif Time.now - @info['time'] > \
105
- XymonClient.timestring_to_time(@info['lifetime'])
130
+ elsif Time.now - @time > \
131
+ XymonClient.timestring_to_time(@lifetime)
106
132
  'purple'
107
- elsif @info['threshold'].key?('critical') && \
133
+ elsif @threshold.key?('critical') && \
108
134
  _threshold_reached?('critical')
109
135
  'red'
110
- elsif @info['threshold'].key?('warning') && \
136
+ elsif @threshold.key?('warning') && \
111
137
  _threshold_reached?('warning')
112
138
  'yellow'
113
139
  else
@@ -118,14 +144,14 @@ module XymonClient
118
144
  private
119
145
 
120
146
  def _threshold_reached?(threshold)
121
- inclusive = @info['threshold'].fetch('inclusive', true)
122
- values = @info['value']
147
+ inclusive = @threshold.fetch('inclusive', true)
148
+ values = @value
123
149
  if values.instance_of?(Array)
124
150
  value_is_included = values.any? do |value|
125
- @info['threshold'][threshold].include?(value)
151
+ @threshold[threshold].include?(value)
126
152
  end
127
153
  else
128
- value_is_included = @info['threshold'][threshold].include?(values)
154
+ value_is_included = @threshold[threshold].include?(values)
129
155
  end
130
156
  (inclusive && value_is_included) || (!inclusive && !value_is_included)
131
157
  end
@@ -1,3 +1,3 @@
1
1
  module XymonClient
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.3.0'.freeze
3
3
  end
data/spec/service_spec.rb CHANGED
@@ -9,8 +9,6 @@ describe XymonClient do
9
9
  ['localhost'],
10
10
  'name' => 'service1',
11
11
  'host' => 'myhost',
12
- 'header' => 'A sample header',
13
- 'footer' => 'A sample footer',
14
12
  'items' => {
15
13
  'ITEM1' => {
16
14
  'label' => 'Gauge Item 1',
@@ -41,9 +39,83 @@ describe XymonClient do
41
39
  # rubocop:disable LineLength
42
40
  expect(service.status[0]).to eq('red')
43
41
  expect(service.status[1]).to match(
44
- /Generated at .* for 30m \nA sample header\n&red Gauge Item 1: 3\n&green String Item 2: all is Ok !\n\nA sample footer/
42
+ /Generated at .* for 30m \n&red Gauge Item 1: 3\n&green String Item 2: all is Ok !\n\n/
45
43
  )
46
44
  # rubocop:enable LineLength
47
45
  end
46
+
47
+ context 'update config' do
48
+ let(:service_update) do
49
+ {
50
+ 'name' => 'service1',
51
+ 'host' => 'myhost',
52
+ 'items' => {
53
+ 'ITEM1' => {
54
+ 'label' => 'Gauge Item 1',
55
+ 'type' => 'gauge',
56
+ 'threshold' => {
57
+ 'order' => '<',
58
+ 'critical' => 2,
59
+ 'warning' => 10,
60
+ 'nan_status' => 'red'
61
+ }
62
+ },
63
+ 'ITEM3' => {
64
+ 'label' => 'String Item 3',
65
+ 'type' => 'string',
66
+ 'threshold' => {
67
+ 'inclusive' => false,
68
+ 'critical' => ['all is KO !']
69
+ }
70
+ }
71
+ }
72
+ }
73
+ end
74
+
75
+ it 'should update config with new item and delete olds' do
76
+ service.update_item('ITEM1', 3)
77
+ service.update_item('ITEM2', 'all is Ok !')
78
+ service.update_config(service_update)
79
+ allow(service).to receive(:_send) { '' }
80
+ # rubocop:disable LineLength
81
+ expect(service.status[0]).to eq('red')
82
+ expect(service.status[1]).to match(
83
+ /Generated at .* for 30m \n&yellow Gauge Item 1: 3\n&purple String Item 3: \n\n/
84
+ )
85
+ # rubocop:enable LineLength
86
+ end
87
+ end
88
+
89
+ context 'use attributes' do
90
+ let(:service) do
91
+ XymonClient::Service.new(
92
+ ['localhost'],
93
+ 'name' => 'service1',
94
+ 'host' => 'myhost',
95
+ 'details_template' => '<% @items.each do |item| %>' \
96
+ "&<%= item['status'] %> " \
97
+ "<%= item['label'] %>: <%= item['value'] %>\n" \
98
+ "foo : <%= item['attributes']['foo'] %>\n" \
99
+ "<% end %>\n",
100
+ 'items' => {
101
+ 'ITEM1' => {
102
+ 'label' => 'String Item 2',
103
+ 'type' => 'string',
104
+ 'threshold' => {
105
+ 'inclusive' => false,
106
+ 'critical' => ['all is Ok !']
107
+ }
108
+ }
109
+ }
110
+ )
111
+ end
112
+ it 'should access item\'s attributes from template' do
113
+ service.update_item('ITEM1', 'all is KO !', 'foo' => 'bar')
114
+ allow(service).to receive(:_send) { '' }
115
+ expect(service.status[1]).to match(
116
+ /&red String Item 2: all is KO !\nfoo : bar\n/
117
+ )
118
+ end
119
+ end
48
120
  end
49
121
  end
@@ -50,7 +50,17 @@ describe XymonClient do
50
50
 
51
51
  describe XymonClient::ServiceItemString do
52
52
  describe 'inclusive' do
53
- let(:config) { { 'label' => 'Item 1', 'threshold' => {'inclusive' => true, 'critical' => ['foo'], 'warning' => ['bar']}} }
53
+ let(:config) do
54
+ {
55
+ 'label' => 'Item 1',
56
+ 'threshold' => {
57
+ 'inclusive' => true,
58
+ 'critical' => ['foo'],
59
+ 'warning' => ['bar']
60
+ }
61
+ }
62
+ end
63
+
54
64
  it 'should return red status when value is included in critical threshold' do
55
65
  item = described_class.new(config)
56
66
  item.value = 'foo'
@@ -71,7 +81,17 @@ describe XymonClient do
71
81
  end
72
82
 
73
83
  describe 'exclusive' do
74
- let(:config) { { 'label' => 'Item 1', 'threshold' => {'inclusive' => false, 'critical' => ['foo'], 'warning' => ['bar']}} }
84
+ let(:config) do
85
+ {
86
+ 'label' => 'Item 1',
87
+ 'threshold' => {
88
+ 'inclusive' => false,
89
+ 'critical' => ['foo'],
90
+ 'warning' => ['bar']
91
+ }
92
+ }
93
+ end
94
+
75
95
  it 'should return red status when "foo" is not included in critical threshold' do
76
96
  item = described_class.new(config)
77
97
  item.value = ['bar']
@@ -86,7 +106,7 @@ describe XymonClient do
86
106
 
87
107
  it 'should return green status when all values are included in critical/warning threshold' do
88
108
  item = described_class.new(config)
89
- item.value = ['foo', 'bar']
109
+ item.value = %w(foo bar)
90
110
  expect(item.status).to eq('green')
91
111
  end
92
112
  end
metadata CHANGED
@@ -1,94 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xymonclient
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Chauviere
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-14 00:00:00.000000000 Z
11
+ date: 2017-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.13'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.13'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
14
  requirement: !ruby/object:Gem::Requirement
30
15
  requirements:
31
16
  - - "~>"
32
17
  - !ruby/object:Gem::Version
33
18
  version: '10.0'
34
- type: :development
19
+ name: rake
35
20
  prerelease: false
21
+ type: :development
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - "~>"
39
25
  - !ruby/object:Gem::Version
40
26
  version: '10.0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: rspec
43
28
  requirement: !ruby/object:Gem::Requirement
44
29
  requirements:
45
30
  - - "~>"
46
31
  - !ruby/object:Gem::Version
47
32
  version: '3.0'
48
- type: :development
33
+ name: rspec
49
34
  prerelease: false
35
+ type: :development
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
40
  version: '3.0'
55
41
  - !ruby/object:Gem::Dependency
56
- name: rubocop
57
42
  requirement: !ruby/object:Gem::Requirement
58
43
  requirements:
59
44
  - - '='
60
45
  - !ruby/object:Gem::Version
61
46
  version: '0.40'
62
- type: :development
47
+ name: rubocop
63
48
  prerelease: false
49
+ type: :development
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - '='
67
53
  - !ruby/object:Gem::Version
68
54
  version: '0.40'
69
55
  - !ruby/object:Gem::Dependency
70
- name: simplecov
71
56
  requirement: !ruby/object:Gem::Requirement
72
57
  requirements:
73
58
  - - "~>"
74
59
  - !ruby/object:Gem::Version
75
60
  version: 0.12.0
76
- type: :development
61
+ name: simplecov
77
62
  prerelease: false
63
+ type: :development
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
68
  version: 0.12.0
83
69
  - !ruby/object:Gem::Dependency
84
- name: codeclimate-test-reporter
85
70
  requirement: !ruby/object:Gem::Requirement
86
71
  requirements:
87
72
  - - "~>"
88
73
  - !ruby/object:Gem::Version
89
74
  version: '1.0'
90
- type: :development
75
+ name: codeclimate-test-reporter
91
76
  prerelease: false
77
+ type: :development
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
@@ -119,11 +105,11 @@ files:
119
105
  - spec/serviceitem_spec.rb
120
106
  - spec/spec_helper.rb
121
107
  - spec/xymonclient_spec.rb
122
- homepage: https://github.com/dchauviere/ruby-xymonclient
108
+ homepage: https://github.com/Orange-OpenSource/ruby-xymonclient
123
109
  licenses:
124
110
  - Apache-2.0
125
111
  metadata: {}
126
- post_install_message:
112
+ post_install_message:
127
113
  rdoc_options: []
128
114
  require_paths:
129
115
  - lib
@@ -138,10 +124,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
124
  - !ruby/object:Gem::Version
139
125
  version: '0'
140
126
  requirements: []
141
- rubyforge_project:
142
- rubygems_version: 2.6.6
143
- signing_key:
127
+ rubyforge_project:
128
+ rubygems_version: 2.4.8
129
+ signing_key:
144
130
  specification_version: 4
145
131
  summary: Xymon client library
146
132
  test_files: []
147
- has_rdoc: