Class: Super::Sort::FormObject

Inherits:
Object
  • Object
show all
Defined in:
lib/super/sort.rb

Defined Under Namespace

Classes: Expression

Constant Summary collapse

DIRECTIONS =
["asc", "desc"]

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(model:, params:, default:, sortable_columns:) ⇒ FormObject

Returns a new instance of FormObject.



8
9
10
11
12
13
# File 'lib/super/sort.rb', line 8

def initialize(model:, params:, default:, sortable_columns:)
  @model = model
  @params = params
  @default = default
  @sortable_columns = sortable_columns.map(&:to_s)
end

Instance Attribute Details

#sortable_columnsObject (readonly)

Returns the value of attribute sortable_columns.



15
16
17
# File 'lib/super/sort.rb', line 15

def sortable_columns
  @sortable_columns
end

Instance Method Details

#apply_changes(query) ⇒ Object



57
58
59
60
61
62
63
# File 'lib/super/sort.rb', line 57

def apply_changes(query)
  exprs.each do |expr|
    query = query.order(expr.a => expr.d)
  end

  query
end

#exprsObject



21
22
23
# File 'lib/super/sort.rb', line 21

def exprs
  sanitized_expr_params.map { |ordering| Expression.new(**ordering) }
end

#new_exprObject



25
26
27
# File 'lib/super/sort.rb', line 25

def new_expr
  Expression.new(a: nil, d: :desc)
end

#persisted?Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/super/sort.rb', line 53

def persisted?
  false
end

#to_partial_pathObject



17
18
19
# File 'lib/super/sort.rb', line 17

def to_partial_path
  "sort"
end