aboutsummaryrefslogtreecommitdiffstats
path: root/parse_report.rb
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2014-11-14 14:29:06 +0100
committerHarald Eilertsen <haraldei@anduin.net>2014-11-14 14:29:06 +0100
commit1aa812034f41e79d3497a14528bcb66d362c4eb2 (patch)
tree97619853fd5847178225057075eaffbe04723a5e /parse_report.rb
parent8fd06149ffe3d5790cdcb64d40916210590b03ba (diff)
downloadimusician-reports-1aa812034f41e79d3497a14528bcb66d362c4eb2.tar.gz
imusician-reports-1aa812034f41e79d3497a14528bcb66d362c4eb2.tar.bz2
imusician-reports-1aa812034f41e79d3497a14528bcb66d362c4eb2.zip
Instantiate reports instead of using static methods.
Diffstat (limited to 'parse_report.rb')
-rw-r--r--parse_report.rb20
1 files changed, 14 insertions, 6 deletions
diff --git a/parse_report.rb b/parse_report.rb
index 2286cc0..9a2340c 100644
--- a/parse_report.rb
+++ b/parse_report.rb
@@ -1,4 +1,4 @@
-require 'sale'
+require_relative 'lib/sale'
require 'csv'
def parse_csv(csv_file)
@@ -13,7 +13,8 @@ def parse_csv(csv_file)
CSV.foreach(csv_file, csv_opts) do |row|
if row.count > 0
- sales << SalesReporter::Sale.new(row["Date"], row["revenue EUR"], row["quantity"], row["Country"], row["Shop"])
+ sale = SalesReporter::Sale.new(row["Date"], row["revenue EUR"], row["quantity"], row["Country"], row["Shop"])
+ sales << sale
end
end
@@ -21,15 +22,22 @@ def parse_csv(csv_file)
end
def load_reports
+ reports = []
+
Dir[File.join('lib', 'reports', '*.rb')].each do |f|
require_relative f
end
+
+ SalesReporter::Reports.constants.each do |report|
+ reports << SalesReporter::Reports.const_get(report).new
+ end
+
+ reports
end
sales = parse_csv(ARGV[0])
+reports = load_reports
-load_reports
-
-SalesReporter::Reports.constants.each do |report|
- SalesReporter::Reports.const_get(report).render(sales)
+reports.each do |report|
+ report.render(sales)
end