LibraryStatistics 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/libraryapp.rb +71 -0
  2. metadata +46 -0
data/lib/libraryapp.rb ADDED
@@ -0,0 +1,71 @@
1
+ require 'csv'
2
+ require_relative 'librarystatistics/category.rb'
3
+ require_relative 'librarystatistics/library.rb'
4
+ require_relative 'librarystatistics/csvreader.rb'
5
+ require_relative 'librarystatistics/categorybuilder.rb'
6
+
7
+ class LibraryApp
8
+ attr_accessor :name, :category_array
9
+
10
+ def initialize(args = {})
11
+
12
+ @library = Library.new({name: args[:name],
13
+ quantity: args[:quantity],
14
+ checkouts: args[:checkouts]})
15
+
16
+ inputfile = CategoryBuilder.new
17
+ @category_array = inputfile.build(@library, args[:file])
18
+
19
+ end
20
+
21
+
22
+ def display
23
+ @category_array.each do |stuff|
24
+ puts stuff.name
25
+ puts "Quantity: #{stuff.quantity}"
26
+ puts "% of Total Books: #{stuff.percent_of_total}"
27
+ puts "Checkouts: #{stuff.checkouts}"
28
+ puts "% of Total Checkouts: #{stuff.percent_of_checkouts}"
29
+ puts "Performance (average number of checkouts per book in category): #{stuff.performance}"
30
+ puts "-------------"
31
+ end
32
+ end
33
+
34
+
35
+ def winners
36
+ best_score = 0.01
37
+ loser_array = []
38
+ winner_array = []
39
+
40
+ @category_array.each do |stuff|
41
+
42
+ #collect best performers
43
+ if stuff.performance > best_score
44
+ best_score = stuff.performance
45
+ winner_array.clear
46
+ winner_array << stuff
47
+ end
48
+
49
+ #collect worst performers
50
+ if stuff.percent_of_checkouts == 0
51
+ loser_array << stuff
52
+ end
53
+
54
+ end
55
+
56
+ puts "Losers:"
57
+ loser_array.each do |loser|
58
+ puts loser.name
59
+ end
60
+
61
+ puts "Winner:"
62
+ winner_array.each do |winner|
63
+ puts winner.name
64
+ end
65
+
66
+ return true
67
+
68
+ end
69
+
70
+
71
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: LibraryStatistics
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Cheri Allen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-07 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: A gem to track the performance of different categories of books in a
15
+ library
16
+ email: cherimarie@gmail.com
17
+ executables: []
18
+ extensions: []
19
+ extra_rdoc_files: []
20
+ files:
21
+ - lib/libraryapp.rb
22
+ homepage: http://rubygems.org/gems/LibraryStatistics
23
+ licenses: []
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.24
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: Performance statistics for libraries
46
+ test_files: []