From 3f19baae378eb0fd911ce4fa3584851f9240b509 Mon Sep 17 00:00:00 2001 From: Lee Lawlor Date: Mon, 26 May 2014 20:32:09 -0400 Subject: [PATCH] fix errors if no csv data or incorrect last group call specified --- app/controllers/feed_controller.rb | 5 ++++- app/helpers/feed_helper.rb | 3 ++- app/views/feed/show.csv.erb | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/controllers/feed_controller.rb b/app/controllers/feed_controller.rb index 87d17d4..08e9056 100644 --- a/app/controllers/feed_controller.rb +++ b/app/controllers/feed_controller.rb @@ -104,8 +104,11 @@ class FeedController < ApplicationController # put feeds in correct order (oldest to most recent) last_feeds.reverse! + # check if the correct param is present by getting the param name from arg, e.g.: 'median' from 'medians' + correct_params_present = params[arg.chop.to_sym].present? + feeds_into = self.method("feeds_into_#{arg}") - feed = feeds_into.call(last_feeds, params).last if last_feeds.length > 0 + feed = feeds_into.call(last_feeds, params).last if last_feeds.length > 0 && correct_params_present create_group_result(feed) end diff --git a/app/helpers/feed_helper.rb b/app/helpers/feed_helper.rb index 073ec91..7338ea3 100644 --- a/app/helpers/feed_helper.rb +++ b/app/helpers/feed_helper.rb @@ -272,6 +272,7 @@ module FeedHelper # slice feed into medians def feeds_into_medians(feeds, params) + # convert timescale (minutes) into seconds seconds = params[:median].to_i * 60 # get floored time ranges @@ -355,7 +356,7 @@ module FeedHelper # checks for valid timescale def timeparam_valid?(timeparam) valid_minutes = [10, 15, 20, 30, 60, 240, 720, 1440] - if timeparam and valid_minutes.include?(timeparam.to_i) + if timeparam.present? && valid_minutes.include?(timeparam.to_i) return true else return false diff --git a/app/views/feed/show.csv.erb b/app/views/feed/show.csv.erb index 5939f12..93e6e08 100644 --- a/app/views/feed/show.csv.erb +++ b/app/views/feed/show.csv.erb @@ -1,2 +1,2 @@ -<% if @success %><%= CSV.generate_line @csv_headers %><% row = [] %><% @csv_headers.each do |attr| %><% row.push(@feed.send(attr)) %><% end %><%= CSV.generate_line row %><% else %>-1<% end %> +<% if @success && @csv_headers.present? %><%= CSV.generate_line @csv_headers %><% row = [] %><% @csv_headers.each do |attr| %><% row.push(@feed.send(attr)) %><% end %><%= CSV.generate_line row %><% else %>-1<% end %>