bookie_accounting 1.1.1 → 1.1.2
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 +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
|