Class: ArQueryMatchers::Queries::QueryCounter::QueryStats
- Inherits:
-
Object
- Object
- ArQueryMatchers::Queries::QueryCounter::QueryStats
- Defined in:
- lib/ar_query_matchers/queries/query_counter.rb
Instance Attribute Summary collapse
-
#queries ⇒ Object
readonly
Returns the value of attribute queries.
Instance Method Summary collapse
-
#initialize(queries) ⇒ QueryStats
constructor
A new instance of QueryStats.
-
#query_counts ⇒ Hash
Of model name to query count, for example: { ‘Company’ => 5}.
-
#query_lines_by_frequency ⇒ Hash
Of line in the source code to its frequency.
Constructor Details
#initialize(queries) ⇒ QueryStats
Returns a new instance of QueryStats.
36 37 38 |
# File 'lib/ar_query_matchers/queries/query_counter.rb', line 36 def initialize(queries) @queries = queries end |
Instance Attribute Details
#queries ⇒ Object (readonly)
Returns the value of attribute queries.
40 41 42 |
# File 'lib/ar_query_matchers/queries/query_counter.rb', line 40 def queries @queries end |
Instance Method Details
#query_counts ⇒ Hash
Returns of model name to query count, for example: { ‘Company’ => 5}.
43 44 45 |
# File 'lib/ar_query_matchers/queries/query_counter.rb', line 43 def query_counts Hash[*queries.reduce({}) { |acc, (model_name, data)| acc.update model_name => data[:count] }.sort_by(&:first).flatten] end |
#query_lines_by_frequency ⇒ Hash
Returns of line in the source code to its frequency.
48 49 50 51 52 53 54 55 |
# File 'lib/ar_query_matchers/queries/query_counter.rb', line 48 def query_lines_by_frequency queries.reduce({}) do |lines, (model_name, data)| frequencies = data[:lines].reduce(Hash.new { |h, k| h[k] = 0 }) do |freq, line| freq.update line => freq[line] + 1 end lines.update model_name => frequencies end end |