module CalculateAll::Helpers
Public Instance Methods
decode_function_aliases(aliases)
click to toggle source
Method to convert function aliases like :count to SQL commands like 'COUNT(*)'
# File lib/calculate-all/helpers.rb, line 5 def decode_function_aliases(aliases) aliases.map do |key| function = case key when String key when :count 'COUNT(*)' when /^(.*)_distinct_count$/, /^count_distinct_(.*)$/ "COUNT(DISTINCT #{$1})" when /^(.*)_(count|sum|max|min|avg)$/ "#{$2.upcase}(#{$1})" when /^(count|sum|max|min|avg)_(.*)$$/ "#{$1.upcase}(#{$2})" when /^(.*)_average$/, /^average_(.*)$/ "AVG(#{$1})" when /^(.*)_maximum$/, /^maximum_(.*)$/ "MAX(#{$1})" when /^(.*)_minimum$/, /^minimum_(.*)$/ "MIN(#{$1})" else raise ArgumentError, "Can't recognize function alias #{key}" end [key, function] end.to_h end