xymonclient 0.1.1 → 0.3.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: 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: