bookie_accounting 1.1.1 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Gemfile +5 -0
- data/bookie_accounting.gemspec +4 -4
- data/lib/bookie/database.rb +7 -3
- data/lib/bookie/sender.rb +1 -1
- data/lib/bookie/version.rb +1 -1
- data/spec/comma_dump_formatter_spec.rb +1 -1
- data/spec/database_spec.rb +28 -29
- data/spec/formatter_spec.rb +1 -1
- data/spec/sender_spec.rb +2 -2
- data/spec/spreadsheet_formatter_spec.rb +1 -1
- metadata +22 -84
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 51d9831cfce7c78318df081d81a40661536c00d4
|
4
|
+
data.tar.gz: 0da6780bd2c5f3fd1db7fcbc2207338873ab1c28
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 6fdab8622a6f572d45e4c7895d4f9ceab4d0bddb3e3f306f6c4e25a1735ddf4715ca39f916d9e125187bd7b93ca801eda70245c9bde68f4b66f69bd528a7c43e
|
7
|
+
data.tar.gz: 3cc99f7f5346c2fa5a41373a33b093568ef4632d40eb443df62d0a336c879c8454184c663b83a3180cd7292aceb99caa51c7ee4965066c750345e2691d332463
|
data/Gemfile
CHANGED
data/bookie_accounting.gemspec
CHANGED
@@ -23,9 +23,9 @@ Gem::Specification.new do |gem|
|
|
23
23
|
#To do: figure out how to remove (file issue?)
|
24
24
|
gem.add_dependency('mysql2')
|
25
25
|
gem.add_dependency('pacct')
|
26
|
+
#Introduces the old ActiveRecord mass assignment security methods
|
27
|
+
#(until I update the database code for the new methods)
|
28
|
+
gem.add_dependency('protected_attributes')
|
26
29
|
gem.add_dependency('spreadsheet')
|
27
|
-
gem.add_development_dependency('bundler')
|
28
|
-
gem.add_development_dependency('mocha')
|
29
|
-
gem.add_development_dependency('rspec')
|
30
|
-
gem.add_development_dependency('sqlite3')
|
31
30
|
end
|
31
|
+
|
data/lib/bookie/database.rb
CHANGED
@@ -2,6 +2,8 @@ require 'bookie/config'
|
|
2
2
|
require 'bookie/extensions'
|
3
3
|
|
4
4
|
require 'active_record'
|
5
|
+
#To do: remove when code is updated.
|
6
|
+
require 'protected_attributes'
|
5
7
|
|
6
8
|
module Bookie
|
7
9
|
##
|
@@ -176,8 +178,10 @@ module Bookie
|
|
176
178
|
#Returns an array of all jobs, pre-loading relations to reduce the need for extra queries
|
177
179
|
#
|
178
180
|
#Relations are not cached between calls.
|
181
|
+
#
|
182
|
+
#To do: use ActiveRecord's #includes instead of this scheme?
|
179
183
|
def self.all_with_relations
|
180
|
-
jobs = all
|
184
|
+
jobs = self.all.to_a
|
181
185
|
users = {}
|
182
186
|
groups = {}
|
183
187
|
systems = {}
|
@@ -439,7 +443,7 @@ module Bookie
|
|
439
443
|
date_range = date_begin ... date_end
|
440
444
|
|
441
445
|
unscoped = self.unscoped
|
442
|
-
summaries = by_date_range(date_range).order(:date).
|
446
|
+
summaries = by_date_range(date_range).order(:date).to_a
|
443
447
|
index = 0
|
444
448
|
date_range.each do |date|
|
445
449
|
new_index = index
|
@@ -625,7 +629,7 @@ Please make sure that all previous systems with this hostname have been marked a
|
|
625
629
|
#
|
626
630
|
#Relations are not cached between calls.
|
627
631
|
def self.all_with_relations
|
628
|
-
systems = all
|
632
|
+
systems = self.all.to_a
|
629
633
|
system_types = {}
|
630
634
|
systems.each do |system|
|
631
635
|
system_type = system_types[system.system_type_id]
|
data/lib/bookie/sender.rb
CHANGED
@@ -138,7 +138,7 @@ module Bookie
|
|
138
138
|
#Used internally by #send_data and #undo_send
|
139
139
|
def clear_summaries(date_min, date_max)
|
140
140
|
#Since joins don't mix with DELETE statements, we have to do this the hard way.
|
141
|
-
systems = Database::System.by_name(@config.hostname).
|
141
|
+
systems = Database::System.by_name(@config.hostname).to_a
|
142
142
|
systems.map!{ |sys| sys.id }
|
143
143
|
Database::JobSummary.where('job_summaries.system_id in (?)', systems).where('date >= ? AND date <= ?', date_min, date_max).delete_all
|
144
144
|
end
|
data/lib/bookie/version.rb
CHANGED
@@ -33,7 +33,7 @@ describe Bookie::Formatters::CommaDump do
|
|
33
33
|
|
34
34
|
it "correctly formats jobs" do
|
35
35
|
with_utc do
|
36
|
-
@formatter.print_jobs(@jobs.order(:start_time).limit(2).
|
36
|
+
@formatter.print_jobs(@jobs.order(:start_time).limit(2).to_a)
|
37
37
|
@m.buf.should eql <<-eos
|
38
38
|
User, Group, System, System type, Start time, End time, Wall time, CPU time, Memory usage, Command, Exit code
|
39
39
|
"root", "root", "test1", "Standalone", "2012-01-01 00:00:00", "2012-01-01 01:00:00", "0 weeks, 0 days, 01:00:00", "0 weeks, 0 days, 00:01:40", "200kb (avg)", "vi", "0"
|
data/spec/database_spec.rb
CHANGED
@@ -124,7 +124,7 @@ describe Bookie::Database do
|
|
124
124
|
|
125
125
|
it "correctly filters by user" do
|
126
126
|
user = Bookie::Database::User.by_name('test').order(:id).first
|
127
|
-
jobs = @jobs.by_user(user).
|
127
|
+
jobs = @jobs.by_user(user).to_a
|
128
128
|
jobs.each do |job|
|
129
129
|
job.user.should eql user
|
130
130
|
end
|
@@ -132,29 +132,29 @@ describe Bookie::Database do
|
|
132
132
|
end
|
133
133
|
|
134
134
|
it "correctly filters by user name" do
|
135
|
-
jobs = @jobs.by_user_name('root').
|
135
|
+
jobs = @jobs.by_user_name('root').to_a
|
136
136
|
jobs.length.should eql 10
|
137
137
|
jobs[0].user.name.should eql "root"
|
138
|
-
jobs = @jobs.by_user_name('test').order(:end_time).
|
138
|
+
jobs = @jobs.by_user_name('test').order(:end_time).to_a
|
139
139
|
jobs.length.should eql 20
|
140
140
|
jobs.each do |job|
|
141
141
|
job.user.name.should eql 'test'
|
142
142
|
end
|
143
143
|
jobs[0].user_id.should_not eql jobs[-1].user_id
|
144
|
-
jobs = @jobs.by_user_name('user').
|
144
|
+
jobs = @jobs.by_user_name('user').to_a
|
145
145
|
jobs.length.should eql 0
|
146
146
|
end
|
147
147
|
|
148
148
|
it "correctly filters by group name" do
|
149
|
-
jobs = @jobs.by_group_name("root").
|
149
|
+
jobs = @jobs.by_group_name("root").to_a
|
150
150
|
jobs.length.should eql 10
|
151
151
|
jobs.each do |job|
|
152
152
|
job.user.group.name.should eql "root"
|
153
153
|
end
|
154
|
-
jobs = @jobs.by_group_name("admin").order(:start_time).
|
154
|
+
jobs = @jobs.by_group_name("admin").order(:start_time).to_a
|
155
155
|
jobs.length.should eql 20
|
156
156
|
jobs[0].user.name.should_not eql jobs[1].user.name
|
157
|
-
jobs = @jobs.by_group_name("test").
|
157
|
+
jobs = @jobs.by_group_name("test").to_a
|
158
158
|
jobs.length.should eql 0
|
159
159
|
end
|
160
160
|
|
@@ -259,9 +259,8 @@ describe Bookie::Database do
|
|
259
259
|
|
260
260
|
describe "#summary" do
|
261
261
|
before(:all) do
|
262
|
-
Time.expects(:now).returns(base_time + 36000 * 4).at_least_once
|
263
262
|
@jobs = Bookie::Database::Job
|
264
|
-
@length = @jobs.
|
263
|
+
@length = @jobs.count
|
265
264
|
@summary = Helpers::create_summaries(@jobs, base_time)
|
266
265
|
end
|
267
266
|
|
@@ -355,8 +354,8 @@ describe Bookie::Database do
|
|
355
354
|
describe "" do
|
356
355
|
before(:all) do
|
357
356
|
d = Date.new(2012)
|
358
|
-
Bookie::Database::User.
|
359
|
-
Bookie::Database::System.
|
357
|
+
Bookie::Database::User.find_each do |user|
|
358
|
+
Bookie::Database::System.find_each do |system|
|
360
359
|
['vi', 'emacs'].each do |command_name|
|
361
360
|
(d ... d + 2).each do |date|
|
362
361
|
Bookie::Database::JobSummary.create!(
|
@@ -376,7 +375,7 @@ describe Bookie::Database do
|
|
376
375
|
|
377
376
|
it "correctly filters by date" do
|
378
377
|
d = Date.new(2012)
|
379
|
-
sums = Bookie::Database::JobSummary.by_date(d).
|
378
|
+
sums = Bookie::Database::JobSummary.by_date(d).to_a
|
380
379
|
sums.length.should eql 32
|
381
380
|
sums.each do |sum|
|
382
381
|
sum.date.should eql d
|
@@ -395,7 +394,7 @@ describe Bookie::Database do
|
|
395
394
|
|
396
395
|
it "correctly filters by user" do
|
397
396
|
u = Bookie::Database::User.first
|
398
|
-
sums = Bookie::Database::JobSummary.by_user(u).
|
397
|
+
sums = Bookie::Database::JobSummary.by_user(u).to_a
|
399
398
|
sums.length.should eql 16
|
400
399
|
sums.each do |sum|
|
401
400
|
sum.user.should eql u
|
@@ -403,7 +402,7 @@ describe Bookie::Database do
|
|
403
402
|
end
|
404
403
|
|
405
404
|
it "correctly filters by user name" do
|
406
|
-
sums = Bookie::Database::JobSummary.by_user_name('test').
|
405
|
+
sums = Bookie::Database::JobSummary.by_user_name('test').to_a
|
407
406
|
sums.length.should eql 32
|
408
407
|
sums.each do |sum|
|
409
408
|
sum.user.name.should eql 'test'
|
@@ -412,7 +411,7 @@ describe Bookie::Database do
|
|
412
411
|
|
413
412
|
it "correctly filters by group" do
|
414
413
|
g = Bookie::Database::Group.find_by_name('admin')
|
415
|
-
sums = Bookie::Database::JobSummary.by_group(g).
|
414
|
+
sums = Bookie::Database::JobSummary.by_group(g).to_a
|
416
415
|
sums.length.should eql 32
|
417
416
|
sums.each do |sum|
|
418
417
|
sum.user.group.should eql g
|
@@ -420,7 +419,7 @@ describe Bookie::Database do
|
|
420
419
|
end
|
421
420
|
|
422
421
|
it "correctly filters by group name" do
|
423
|
-
sums = Bookie::Database::JobSummary.by_group_name('admin').
|
422
|
+
sums = Bookie::Database::JobSummary.by_group_name('admin').to_a
|
424
423
|
sums.length.should eql 32
|
425
424
|
sums.each do |sum|
|
426
425
|
sum.user.group.name.should eql 'admin'
|
@@ -429,7 +428,7 @@ describe Bookie::Database do
|
|
429
428
|
|
430
429
|
it "correctly filters by system" do
|
431
430
|
s = Bookie::Database::System.first
|
432
|
-
sums = Bookie::Database::JobSummary.by_system(s).
|
431
|
+
sums = Bookie::Database::JobSummary.by_system(s).to_a
|
433
432
|
sums.length.should eql 16
|
434
433
|
sums.each do |sum|
|
435
434
|
sum.system.should eql s
|
@@ -437,7 +436,7 @@ describe Bookie::Database do
|
|
437
436
|
end
|
438
437
|
|
439
438
|
it "correctly filters by system name" do
|
440
|
-
sums = Bookie::Database::JobSummary.by_system_name('test1').
|
439
|
+
sums = Bookie::Database::JobSummary.by_system_name('test1').to_a
|
441
440
|
sums.length.should eql 32
|
442
441
|
sums.each do |sum|
|
443
442
|
sum.system.name.should eql 'test1'
|
@@ -446,7 +445,7 @@ describe Bookie::Database do
|
|
446
445
|
|
447
446
|
it "correctly filters by system type" do
|
448
447
|
s = Bookie::Database::SystemType.first
|
449
|
-
sums = Bookie::Database::JobSummary.by_system_type(s).
|
448
|
+
sums = Bookie::Database::JobSummary.by_system_type(s).to_a
|
450
449
|
sums.length.should eql 32
|
451
450
|
sums.each do |sum|
|
452
451
|
sum.system.system_type.should eql s
|
@@ -454,7 +453,7 @@ describe Bookie::Database do
|
|
454
453
|
end
|
455
454
|
|
456
455
|
it "correctly filters by command name" do
|
457
|
-
sums = Bookie::Database::JobSummary.by_command_name('vi').
|
456
|
+
sums = Bookie::Database::JobSummary.by_command_name('vi').to_a
|
458
457
|
sums.length.should eql 32
|
459
458
|
sums.each do |sum|
|
460
459
|
sum.command_name.should eql 'vi'
|
@@ -488,7 +487,7 @@ describe Bookie::Database do
|
|
488
487
|
d = Date.new(2012)
|
489
488
|
range = base_time ... base_time + 1.days
|
490
489
|
Bookie::Database::JobSummary.summarize(d)
|
491
|
-
sums = Bookie::Database::JobSummary.all
|
490
|
+
sums = Bookie::Database::JobSummary.all.to_a
|
492
491
|
found_sums = Set.new
|
493
492
|
sums.each do |sum|
|
494
493
|
sum.date.should eql Date.new(2012)
|
@@ -498,7 +497,7 @@ describe Bookie::Database do
|
|
498
497
|
found_sums.add([sum.user.id, sum.system.id, sum.command_name])
|
499
498
|
end
|
500
499
|
#Is it catching all of the combinations of categories?
|
501
|
-
Bookie::Database::Job.by_time_range_inclusive(range).select('user_id, system_id, command_name').uniq.
|
500
|
+
Bookie::Database::Job.by_time_range_inclusive(range).select('user_id, system_id, command_name').uniq.find_each do |values|
|
502
501
|
values = [values.user_id, values.system_id, values.command_name]
|
503
502
|
found_sums.include?(values).should eql true
|
504
503
|
end
|
@@ -507,7 +506,7 @@ describe Bookie::Database do
|
|
507
506
|
it "creates dummy summaries when there are no jobs" do
|
508
507
|
d = Date.new(2012) + 5
|
509
508
|
Bookie::Database::JobSummary.summarize(d)
|
510
|
-
sums = Bookie::Database::JobSummary.by_date(d).
|
509
|
+
sums = Bookie::Database::JobSummary.by_date(d).to_a
|
511
510
|
sums.length.should eql 1
|
512
511
|
sum = sums[0]
|
513
512
|
sum.cpu_time.should eql 0
|
@@ -603,8 +602,9 @@ describe Bookie::Database do
|
|
603
602
|
Bookie::Database::JobSummary.delete_all
|
604
603
|
empty = Bookie::Database::System.limit(0)
|
605
604
|
#Check the case where there are no systems.
|
606
|
-
|
607
|
-
|
605
|
+
#Stub out methods of System's "Relation" class:
|
606
|
+
Bookie::Database::System.where('1=1').class.any_instance.expects(:'any?').at_least_once.returns(false)
|
607
|
+
Bookie::Database::System.where('1=1').class.any_instance.expects(:first).at_least_once.returns(nil)
|
608
608
|
sum = Bookie::Database::JobSummary.summary
|
609
609
|
sum.should eql({
|
610
610
|
:num_jobs => 0,
|
@@ -612,7 +612,6 @@ describe Bookie::Database do
|
|
612
612
|
:memory_time => 0,
|
613
613
|
:successful => 0,
|
614
614
|
})
|
615
|
-
ActiveRecord::Relation.any_instance.unstub(:'any?')
|
616
615
|
Bookie::Database::JobSummary.any?.should eql false
|
617
616
|
end
|
618
617
|
|
@@ -688,7 +687,7 @@ describe Bookie::Database do
|
|
688
687
|
|
689
688
|
describe Bookie::Database::User do
|
690
689
|
it "correctly filters by name" do
|
691
|
-
users = Bookie::Database::User.by_name('test').
|
690
|
+
users = Bookie::Database::User.by_name('test').to_a
|
692
691
|
users.length.should eql 2
|
693
692
|
users.each do |user|
|
694
693
|
user.name.should eql 'test'
|
@@ -872,7 +871,7 @@ describe Bookie::Database do
|
|
872
871
|
@summary[:empty][:avail_memory_time].should eql 0
|
873
872
|
@summary[:empty][:avail_memory_avg].should eql 0.0
|
874
873
|
begin
|
875
|
-
@systems.
|
874
|
+
@systems.find_each do |system|
|
876
875
|
unless system.id == 1
|
877
876
|
system.end_time = Time.now
|
878
877
|
system.save!
|
@@ -885,7 +884,7 @@ describe Bookie::Database do
|
|
885
884
|
s2[:avail_memory_avg] = Float(1000000 * system_total_wall_time) / (3600 * 41)
|
886
885
|
summary_all_systems_ended.should eql s2
|
887
886
|
ensure
|
888
|
-
@systems.
|
887
|
+
@systems.find_each do |system|
|
889
888
|
unless system.id == 1
|
890
889
|
system.end_time = nil
|
891
890
|
system.save!
|
data/spec/formatter_spec.rb
CHANGED
@@ -36,7 +36,7 @@ describe Bookie::Formatter do
|
|
36
36
|
|
37
37
|
it "correctly calculates fields for jobs" do
|
38
38
|
with_utc do
|
39
|
-
@formatter.send(:fields_for_each_job, @jobs.limit(1).
|
39
|
+
@formatter.send(:fields_for_each_job, @jobs.limit(1).to_a) do |fields|
|
40
40
|
fields.should eql [
|
41
41
|
'root',
|
42
42
|
'root',
|
data/spec/sender_spec.rb
CHANGED
@@ -118,7 +118,7 @@ describe Bookie::Sender do
|
|
118
118
|
#The filename is just a dummy argument.
|
119
119
|
sender.send_data('snapshot/pacct')
|
120
120
|
|
121
|
-
jobs = Bookie::Database::Job.by_system_name(@config.hostname).order(:end_time).
|
121
|
+
jobs = Bookie::Database::Job.by_system_name(@config.hostname).order(:end_time).to_a
|
122
122
|
jobs[0].system.should eql @sys_1
|
123
123
|
jobs[1].system.should eql @sys_2
|
124
124
|
end
|
@@ -177,7 +177,7 @@ describe Bookie::Sender do
|
|
177
177
|
|
178
178
|
sender.send(:clear_summaries, date_start + 1, date_end - 1)
|
179
179
|
|
180
|
-
sums = Bookie::Database::JobSummary.all
|
180
|
+
sums = Bookie::Database::JobSummary.all.to_a
|
181
181
|
sums.length.should eql 9
|
182
182
|
sums.each do |sum|
|
183
183
|
unless sum.system == @sys_dummy
|
@@ -75,7 +75,7 @@ describe Bookie::Formatters::Spreadsheet do
|
|
75
75
|
|
76
76
|
it "correctly formats jobs" do
|
77
77
|
with_utc do
|
78
|
-
@formatter.print_jobs(@jobs.limit(2).
|
78
|
+
@formatter.print_jobs(@jobs.limit(2).to_a)
|
79
79
|
w = @m.worksheet('Details')
|
80
80
|
w.last_row_index.should eql 2
|
81
81
|
w.mock_columns.length.should eql Bookie::Formatter::DETAILS_FIELD_LABELS.length
|
metadata
CHANGED
@@ -1,158 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bookie_accounting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Ben Merritt
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-22 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activerecord
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: json
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: mysql2
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: pacct
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
|
-
name:
|
70
|
+
name: protected_attributes
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
|
-
name:
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
102
|
-
type: :development
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: mocha
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: rspec
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - ! '>='
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: '0'
|
134
|
-
type: :development
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
|
-
requirements:
|
139
|
-
- - ! '>='
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
version: '0'
|
142
|
-
- !ruby/object:Gem::Dependency
|
143
|
-
name: sqlite3
|
84
|
+
name: spreadsheet
|
144
85
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
86
|
requirements:
|
147
|
-
- -
|
87
|
+
- - '>='
|
148
88
|
- !ruby/object:Gem::Version
|
149
89
|
version: '0'
|
150
|
-
type: :
|
90
|
+
type: :runtime
|
151
91
|
prerelease: false
|
152
92
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
93
|
requirements:
|
155
|
-
- -
|
94
|
+
- - '>='
|
156
95
|
- !ruby/object:Gem::Version
|
157
96
|
version: '0'
|
158
97
|
description: A simple system to record and query process accounting records
|
@@ -219,27 +158,26 @@ files:
|
|
219
158
|
homepage: https://github.com/blm768/bookie/
|
220
159
|
licenses:
|
221
160
|
- MIT
|
161
|
+
metadata: {}
|
222
162
|
post_install_message:
|
223
163
|
rdoc_options: []
|
224
164
|
require_paths:
|
225
165
|
- lib
|
226
166
|
required_ruby_version: !ruby/object:Gem::Requirement
|
227
|
-
none: false
|
228
167
|
requirements:
|
229
|
-
- -
|
168
|
+
- - '>='
|
230
169
|
- !ruby/object:Gem::Version
|
231
170
|
version: '0'
|
232
171
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
172
|
requirements:
|
235
|
-
- -
|
173
|
+
- - '>='
|
236
174
|
- !ruby/object:Gem::Version
|
237
175
|
version: '0'
|
238
176
|
requirements: []
|
239
177
|
rubyforge_project:
|
240
|
-
rubygems_version:
|
178
|
+
rubygems_version: 2.0.3
|
241
179
|
signing_key:
|
242
|
-
specification_version:
|
180
|
+
specification_version: 4
|
243
181
|
summary: A simple system to record and query process accounting records
|
244
182
|
test_files:
|
245
183
|
- spec/comma_dump_formatter_spec.rb
|