Module: Utils
- Defined in:
- lib/performance_promise/utils.rb
Class Method Summary collapse
- .colored(color, string) ⇒ Object
- .guess_order(db_queries) ⇒ Object
- .summarize_queries(db_queries) ⇒ Object
Class Method Details
.colored(color, string) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/performance_promise/utils.rb', line 35 def self.colored(color, string) color = case color when :red "\e[31m" when :green "\e[32m" when :cyan "\e[36m" end end_color = "\e[0m" "#{color}#{string}#{end_color}" end |
.guess_order(db_queries) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/performance_promise/utils.rb', line 10 def self.guess_order(db_queries) order = [] single_queries = 0 queries_with_count = summarize_queries(db_queries) queries_with_count.each do |query, count| if count == 1 single_queries += 1 else if (lookup_field = /WHERE .*"(.*?_id)" = \?/.match(query[:sql])) klass = lookup_field[1].humanize order << "#{klass}.N.queries" else order << "n(???)" end end end if single_queries == 1 order << '1.query' elsif single_queries > 1 order << "#{single_queries}.queries" end order.join(" + ") end |
.summarize_queries(db_queries) ⇒ Object
2 3 4 5 6 7 8 |
# File 'lib/performance_promise/utils.rb', line 2 def self.summarize_queries(db_queries) summary = Hash.new(0) db_queries.each do |query| summary[query.except(:duration)] += 1 end summary end |