Class: ReportsKit::Reports::GenerateAutocompleteResults
- Inherits:
-
Object
- Object
- ReportsKit::Reports::GenerateAutocompleteResults
- Defined in:
- lib/reports_kit/reports/generate_autocomplete_results.rb
Instance Attribute Summary collapse
-
#context_record ⇒ Object
Returns the value of attribute context_record.
-
#filter ⇒ Object
Returns the value of attribute filter.
-
#filter_key ⇒ Object
Returns the value of attribute filter_key.
-
#params ⇒ Object
Returns the value of attribute params.
Instance Method Summary collapse
-
#initialize(params, properties, context_record: nil) ⇒ GenerateAutocompleteResults
constructor
A new instance of GenerateAutocompleteResults.
- #perform ⇒ Object
Constructor Details
#initialize(params, properties, context_record: nil) ⇒ GenerateAutocompleteResults
Returns a new instance of GenerateAutocompleteResults.
6 7 8 9 10 11 |
# File 'lib/reports_kit/reports/generate_autocomplete_results.rb', line 6 def initialize(params, properties, context_record: nil) self.params = params self.filter_key = params[:key] self.filter = Reports::PropertiesToFilter.new(properties, context_record: context_record).perform(filter_key) self.context_record = context_record end |
Instance Attribute Details
#context_record ⇒ Object
Returns the value of attribute context_record.
4 5 6 |
# File 'lib/reports_kit/reports/generate_autocomplete_results.rb', line 4 def context_record @context_record end |
#filter ⇒ Object
Returns the value of attribute filter.
4 5 6 |
# File 'lib/reports_kit/reports/generate_autocomplete_results.rb', line 4 def filter @filter end |
#filter_key ⇒ Object
Returns the value of attribute filter_key.
4 5 6 |
# File 'lib/reports_kit/reports/generate_autocomplete_results.rb', line 4 def filter_key @filter_key end |
#params ⇒ Object
Returns the value of attribute params.
4 5 6 |
# File 'lib/reports_kit/reports/generate_autocomplete_results.rb', line 4 def params @params end |
Instance Method Details
#perform ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/reports_kit/reports/generate_autocomplete_results.rb', line 13 def perform raise ArgumentError.new("Could not find a model for filter_key: '#{filter_key}'") unless model return autocomplete_results_method.call(params: params, context_record: context_record, relation: relation) if autocomplete_results_method results = relation results = results.limit(10_000) results = results.map { |result| { id: result.id, text: result.to_s } } results = results.sort_by { |result| result[:text].downcase } results = filter_results(results) results.first(100) end |