Class: Compendium::Query
- Inherits:
-
Object
- Object
- Compendium::Query
- Defined in:
- lib/compendium/query.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#metrics ⇒ Object
readonly
Returns the value of attribute metrics.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#options ⇒ Object
Returns the value of attribute options.
-
#proc ⇒ Object
Returns the value of attribute proc.
-
#report ⇒ Object
Returns the value of attribute report.
-
#results ⇒ Object
readonly
Returns the value of attribute results.
Instance Method Summary collapse
- #add_metric(name, proc, options = {}) ⇒ Object
-
#empty? ⇒ Boolean
A query is empty if it has no results.
-
#initialize(*args) ⇒ Query
constructor
A new instance of Query.
- #initialize_clone ⇒ Object
-
#nil? ⇒ Boolean
A query is nil if it has no proc.
- #ran? ⇒ Boolean (also: #has_run?)
- #render_chart(template, *options, &block) ⇒ Object
- #render_table(template, *options, &block) ⇒ Object
- #run(params, context = self) ⇒ Object
Constructor Details
#initialize(*args) ⇒ Query
Returns a new instance of Query.
13 14 15 16 17 18 19 20 |
# File 'lib/compendium/query.rb', line 13 def initialize(*args) @report = args.shift if arg_is_report?(args.first) raise ArgumentError, "wrong number of arguments (#{args.size + (@report ? 1 : 0)} for 3..4)" unless args.size == 3 @name, @options, @proc = args @metrics = ::Collection[Metric] end |
Instance Attribute Details
#metrics ⇒ Object (readonly)
Returns the value of attribute metrics.
10 11 12 |
# File 'lib/compendium/query.rb', line 10 def metrics @metrics end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
10 11 12 |
# File 'lib/compendium/query.rb', line 10 def name @name end |
#options ⇒ Object
Returns the value of attribute options.
11 12 13 |
# File 'lib/compendium/query.rb', line 11 def @options end |
#proc ⇒ Object
Returns the value of attribute proc.
11 12 13 |
# File 'lib/compendium/query.rb', line 11 def proc @proc end |
#report ⇒ Object
Returns the value of attribute report.
11 12 13 |
# File 'lib/compendium/query.rb', line 11 def report @report end |
#results ⇒ Object (readonly)
Returns the value of attribute results.
10 11 12 |
# File 'lib/compendium/query.rb', line 10 def results @results end |
Instance Method Details
#add_metric(name, proc, options = {}) ⇒ Object
34 35 36 |
# File 'lib/compendium/query.rb', line 34 def add_metric(name, proc, = {}) Compendium::Metric.new(name, self.name, proc, ).tap { |m| @metrics << m } end |
#empty? ⇒ Boolean
A query is empty if it has no results
57 58 59 |
# File 'lib/compendium/query.rb', line 57 def empty? results.empty? end |
#initialize_clone ⇒ Object
22 23 24 25 |
# File 'lib/compendium/query.rb', line 22 def initialize_clone(*) super @metrics = @metrics.clone end |
#nil? ⇒ Boolean
A query is nil if it has no proc
52 53 54 |
# File 'lib/compendium/query.rb', line 52 def nil? proc.nil? end |
#ran? ⇒ Boolean Also known as: has_run?
46 47 48 |
# File 'lib/compendium/query.rb', line 46 def ran? !@results.nil? end |
#render_chart(template, *options, &block) ⇒ Object
42 43 44 |
# File 'lib/compendium/query.rb', line 42 def render_chart(template, *, &block) Compendium::Presenters::Chart.new(template, self, *, &block).render unless empty? end |
#render_table(template, *options, &block) ⇒ Object
38 39 40 |
# File 'lib/compendium/query.rb', line 38 def render_table(template, *, &block) Compendium::Presenters::Table.new(template, self, *, &block).render unless empty? end |
#run(params, context = self) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/compendium/query.rb', line 27 def run(params, context = self) collect_results(context, params) collect_metrics(context) @results end |