Class: CustomSort::MagicNew::Relation
- Inherits:
-
CustomSort::MagicNew
- Object
- CustomSort::MagicNew
- CustomSort::MagicNew::Relation
- Defined in:
- lib/custom_sort/magic_new.rb
Instance Attribute Summary
Attributes inherited from CustomSort::MagicNew
#label, #options, #query_name, #recency_key, #recent, #sort_order
Class Method Summary collapse
- .generate_relation(relation, field: nil, **options) ⇒ Object
-
.process_result(relation, result, **options) ⇒ Object
allow any options to keep flexible for future.
Instance Method Summary collapse
-
#initialize(**options) ⇒ Relation
constructor
A new instance of Relation.
Methods inherited from CustomSort::MagicNew
Constructor Details
#initialize(**options) ⇒ Relation
Returns a new instance of Relation.
41 42 43 44 |
# File 'lib/custom_sort/magic_new.rb', line 41 def initialize(**) super(**.reject { |k, _| [:default_value, :carry_forward, :last, :current].include?(k) }) @options = end |
Class Method Details
.generate_relation(relation, field: nil, **options) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/custom_sort/magic_new.rb', line 46 def self.generate_relation(relation, field: nil, **) magic = CustomSort::MagicNew::Relation.new(**) # generate ActiveRecord relation relation = RelationBuilder.new( relation, column: field, query_name: magic.query_name, recent: magic.recent, recency_key: magic.recency_key, label: magic.label, sort_order: magic.sort_order ).generate relation end |
.process_result(relation, result, **options) ⇒ Object
allow any options to keep flexible for future
66 67 68 69 70 71 |
# File 'lib/custom_sort/magic_new.rb', line 66 def self.process_result(relation, result, **) relation.customsort_values.reverse.each do |gv| result = gv.perform(relation, result, default_value: [:default_value]) end result end |