vnstat-ruby 1.0.4 → 1.0.5

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: 8e3a8a3b67a8467f99b6574553ddedc1f8851fd0
4
- data.tar.gz: 2bbb5f111df3f14cf9f1197ac1a9c5a40570f2e4
3
+ metadata.gz: 0b11dd1355f5618e134a3d186a1957b15790d237
4
+ data.tar.gz: 244a68723714c5ea3d432fd4dd65ba86f43a2d65
5
5
  SHA512:
6
- metadata.gz: a3330ad0adc9d0ae2795edeee757c916e4e8b47aaeb90f3a8e25eeec1b56ae49a41163ac354b15fb19f467ce476a9d91cb979259baa758d4ab52510156f2c7ee
7
- data.tar.gz: 0956f04732f976ee45cd0cd4e3762d44025e4487bcdda2a122b93270e53f753d2428fee92f9e67a04570b530537da53ef5f7cebb0a9353f63b2539ce2ea274f3
6
+ metadata.gz: 993ad13bda555602b454e5a713bf18fe661b66d27227dcc2a19c79e310309ca2b9d2c9c31bee4da335954e997f097452aa85ba9ce0e711f8007c2faf783b429e
7
+ data.tar.gz: 626885c81f31451e8699f8d985669de2dfb9feaa1e28314efc397d63c7bb6202089feb6338eba73f908555a5115250ada9e174bb0a97730d76d1677baf64e686
data/.travis.yml CHANGED
@@ -4,7 +4,6 @@ rvm:
4
4
  - '2.0.0'
5
5
  - '2.1.7'
6
6
  - '2.2.3'
7
- - ruby-head
8
7
  - jruby
9
8
  - jruby-head
10
9
  - rbx-2
data/README.md CHANGED
@@ -3,8 +3,12 @@
3
3
  [![Code Climate](https://codeclimate.com/github/tlux/vnstat-ruby/badges/gpa.svg)](https://codeclimate.com/github/tlux/vnstat-ruby) [![Test Coverage](https://codeclimate.com/github/tlux/vnstat-ruby/badges/coverage.svg)](https://codeclimate.com/github/tlux/vnstat-ruby/coverage) [![Build Status](https://travis-ci.org/tlux/vnstat-ruby.svg?branch=master)](https://travis-ci.org/tlux/vnstat-ruby)
4
4
 
5
5
  Vnstat is a tool that tracks the traffic on your network interfaces.
6
- This tiny library dependends on the `vnstat` command line utility to provide
7
- network traffic information through an easy-to-use API.
6
+ This tiny library is intended to provide network traffic information
7
+ through an easy-to-use API.
8
+
9
+ It depends on the
10
+ [vnstat command line utility](http://humdi.net/vnstat/) which is
11
+ maintained by Teemu Toivola.
8
12
 
9
13
 
10
14
  ### Prerequisites
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.4
1
+ 1.0.5
@@ -61,8 +61,8 @@ module Vnstat
61
61
  #
62
62
  # @return [Interface]
63
63
  def reset
64
- Utils.call_executable_returning_status('--reset', '-i', id)
65
- reload
64
+ reload if Utils.call_executable_returning_status('--reset', '-i', id)
65
+ self
66
66
  end
67
67
 
68
68
  ##
@@ -36,11 +36,6 @@ module Vnstat
36
36
  def traffic_data
37
37
  interface.data.xpath('//traffic')
38
38
  end
39
-
40
- def entries_hash
41
- fail NotImplementedError,
42
- "Please override #{self.class.name}##{__method__}"
43
- end
44
39
  end
45
40
  end
46
41
  end
@@ -28,6 +28,21 @@ describe Vnstat::InterfaceCollection do
28
28
  end
29
29
  end
30
30
 
31
+ describe '.load_data' do
32
+ it 'calls Vnstat::Utils.call_executable' do
33
+ expect(Vnstat::Utils).to receive(:call_executable).with('--xml')
34
+
35
+ described_class.load_data
36
+ end
37
+
38
+ it 'returns result of Vnstat::Utils.call_executable' do
39
+ allow(Vnstat::Utils).to receive(:call_executable).with(any_args)
40
+ .and_return('test')
41
+
42
+ expect(described_class.load_data).to eq 'test'
43
+ end
44
+ end
45
+
31
46
  describe '#ids' do
32
47
  it 'returns interface names from the data' do
33
48
  expect(subject.ids).to eq %w(eth0 wlan0)
@@ -64,6 +79,59 @@ describe Vnstat::InterfaceCollection do
64
79
  end
65
80
  end
66
81
 
82
+ describe '#create' do
83
+ it 'calls Vnstat::Utils.call_executable_returning_status' do
84
+ expect(Vnstat::Utils).to receive(:call_executable_returning_status)
85
+ .with('--create', '-i', 'test').and_return(false)
86
+
87
+ subject.create('test')
88
+ end
89
+
90
+ context 'when Vnstat::Utils.call_executable_returning_status ' \
91
+ 'returns true' do
92
+ before :each do
93
+ allow(Vnstat::Utils).to receive(:call_executable_returning_status)
94
+ .and_return(true)
95
+ end
96
+
97
+ it 'calls #[] with first arg' do
98
+ allow(subject).to receive(:reload)
99
+
100
+ expect(subject).to receive(:[]).with('test')
101
+
102
+ subject.create('test')
103
+ end
104
+
105
+ it 'returns result of #[] with first arg' do
106
+ allow(subject).to receive(:reload)
107
+
108
+ allow(subject).to receive(:[]).and_return('test')
109
+
110
+ expect(subject.create('eth1')).to eq 'test'
111
+ end
112
+
113
+ it 'calls #reload' do
114
+ allow(subject).to receive(:[]).with('test')
115
+
116
+ expect(subject).to receive(:reload)
117
+
118
+ subject.create('test')
119
+ end
120
+ end
121
+
122
+ context 'when Vnstat::Utils.call_executable_returning_status ' \
123
+ 'returns false' do
124
+ before :each do
125
+ allow(Vnstat::Utils).to receive(:call_executable_returning_status)
126
+ .and_return(false)
127
+ end
128
+
129
+ it 'returns nil' do
130
+ expect(subject.create('test')).to be nil
131
+ end
132
+ end
133
+ end
134
+
67
135
  describe '#reload' do
68
136
  before :each do
69
137
  allow(described_class).to receive(:load_data).and_return('<test />')
@@ -84,48 +84,19 @@ describe Vnstat::Interface do
84
84
  end
85
85
  end
86
86
 
87
- describe '#reload' do
88
- let :reloaded_data do
89
- <<-XML
90
- <vnstat version="1.12" xmlversion="1">
91
- <interface id="eth0">
92
- <id>eth0</id>
93
- <nick>New Ethernet</nick>
94
- </interface>
95
- </vnstat>
96
- XML
97
- end
98
-
99
- before :each do
100
- allow(described_class).to receive(:load_data).and_return('<test />')
101
- end
102
-
103
- it 'returns self' do
104
- expect(subject.reload).to eq subject
105
- end
106
-
107
- it 'calls .load_data with #id as argument' do
108
- expect(described_class).to receive(:load_data).with('eth0')
109
- .and_return(reloaded_data)
110
-
111
- subject.reload
112
- end
113
-
114
- it 'calls #data= with the result from .load_data' do
115
- allow(described_class).to receive(:load_data).and_return('<vnstat />')
116
-
117
- expect(subject).to receive(:data=).with('<vnstat />')
87
+ describe '.load_data' do
88
+ it 'calls Vnstat::Utils.call_executable' do
89
+ expect(Vnstat::Utils).to receive(:call_executable)
90
+ .with('-i', 'test', '--xml')
118
91
 
119
- subject.reload
92
+ described_class.load_data('test')
120
93
  end
121
94
 
122
- it 'resets #nick from reloaded data' do
123
- allow(described_class).to receive(:load_data).with('eth0')
124
- .and_return(reloaded_data)
95
+ it 'returns result of Vnstat::Utils.call_executable' do
96
+ allow(Vnstat::Utils).to receive(:call_executable).with(any_args)
97
+ .and_return('test')
125
98
 
126
- expect { subject.reload }
127
- .to change { subject.nick }
128
- .from('Ethernet').to('New Ethernet')
99
+ expect(described_class.load_data('eth0')).to eq 'test'
129
100
  end
130
101
  end
131
102
 
@@ -239,4 +210,118 @@ describe Vnstat::Interface do
239
210
  expect(subject.tops.interface).to eq subject
240
211
  end
241
212
  end
213
+
214
+ describe '#reload' do
215
+ let :reloaded_data do
216
+ <<-XML
217
+ <vnstat version="1.12" xmlversion="1">
218
+ <interface id="eth0">
219
+ <id>eth0</id>
220
+ <nick>New Ethernet</nick>
221
+ </interface>
222
+ </vnstat>
223
+ XML
224
+ end
225
+
226
+ before :each do
227
+ allow(described_class).to receive(:load_data).and_return('<test />')
228
+ end
229
+
230
+ it 'returns self' do
231
+ expect(subject.reload).to eq subject
232
+ end
233
+
234
+ it 'calls .load_data with #id as argument' do
235
+ expect(described_class).to receive(:load_data).with('eth0')
236
+ .and_return(reloaded_data)
237
+
238
+ subject.reload
239
+ end
240
+
241
+ it 'calls #data= with the result from .load_data' do
242
+ allow(described_class).to receive(:load_data).and_return('<vnstat />')
243
+
244
+ expect(subject).to receive(:data=).with('<vnstat />')
245
+
246
+ subject.reload
247
+ end
248
+
249
+ it 'resets #nick from reloaded data' do
250
+ allow(described_class).to receive(:load_data).with('eth0')
251
+ .and_return(reloaded_data)
252
+
253
+ expect { subject.reload }
254
+ .to change { subject.nick }.from('Ethernet').to('New Ethernet')
255
+ end
256
+ end
257
+
258
+ describe '#delete' do
259
+ it 'calls Vnstat::Utils.call_executable_returning_status' do
260
+ expect(Vnstat::Utils).to receive(:call_executable_returning_status)
261
+ .with('--delete', '-i', subject.id)
262
+
263
+ subject.delete
264
+ end
265
+
266
+ [true, false].each do |expected|
267
+ context "when Vnstat::Utils.call_executable_returning_status " \
268
+ "returns #{expected}" do
269
+ before :each do
270
+ allow(Vnstat::Utils).to receive(:call_executable_returning_status)
271
+ .with(any_args).and_return(expected)
272
+ end
273
+
274
+ it 'returns true' do
275
+ expect(subject.delete).to be expected
276
+ end
277
+ end
278
+ end
279
+ end
280
+
281
+ describe '#reset' do
282
+ it 'calls Vnstat::Utils.call_executable_returning_status' do
283
+ expect(Vnstat::Utils).to receive(:call_executable_returning_status)
284
+ .with('--reset', '-i', subject.id)
285
+
286
+ subject.reset
287
+ end
288
+
289
+ context 'when Vnstat::Utils.call_executable_returning_status ' \
290
+ 'returns true' do
291
+ before :each do
292
+ allow(Vnstat::Utils).to receive(:call_executable_returning_status)
293
+ .with(any_args).and_return(true)
294
+ end
295
+
296
+ it 'returns self' do
297
+ allow(subject).to receive(:reload)
298
+
299
+ expect(subject.reset).to eq subject
300
+ end
301
+
302
+ it 'calls #reload' do
303
+ expect(subject).to receive(:reload)
304
+
305
+ subject.reset
306
+ end
307
+ end
308
+
309
+ context 'when Vnstat::Utils.call_executable_returning_status ' \
310
+ 'returns false' do
311
+ before :each do
312
+ allow(Vnstat::Utils).to receive(:call_executable_returning_status)
313
+ .with(any_args).and_return(false)
314
+ end
315
+
316
+ it 'returns self' do
317
+ expect(subject.reset).to eq subject
318
+ end
319
+
320
+ it 'does not call #reload' do
321
+ expect(subject).not_to receive(:reload)
322
+
323
+ subject.reset
324
+ end
325
+ end
326
+ end
242
327
  end
data/vnstat-ruby.gemspec CHANGED
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: vnstat-ruby 1.0.4 ruby lib
5
+ # stub: vnstat-ruby 1.0.5 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "vnstat-ruby"
9
- s.version = "1.0.4"
9
+ s.version = "1.0.5"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Tobias Casper"]
14
- s.date = "2015-11-25"
14
+ s.date = "2015-11-28"
15
15
  s.description = "Uses the the vnstat CLI to track your network traffic."
16
16
  s.email = "tobias.casper@gmail.com"
17
17
  s.extra_rdoc_files = [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vnstat-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Casper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-25 00:00:00.000000000 Z
11
+ date: 2015-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri