Class: ActiveRecord::SortableBy::Config

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

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



8
9
10
11
# File 'lib/sortable_by.rb', line 8

def initialize
  @_fields  = {}
  @_default = nil
end

Instance Attribute Details

#_defaultObject (readonly)

Returns the value of attribute _default.



6
7
8
# File 'lib/sortable_by.rb', line 6

def _default
  @_default
end

#_fieldsObject (readonly)

Returns the value of attribute _fields.



6
7
8
# File 'lib/sortable_by.rb', line 6

def _fields
  @_fields
end

Instance Method Details

#default(expr) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'lib/sortable_by.rb', line 26

def default(expr)
  # legacy support
  if expr.is_a?(Hash)
    expr = expr.map do |field, dir|
      [(dir == :desc ? '-' : ''), field].join
    end.join(',')
  end

  @_default = expr.to_s
end

#dupObject



13
14
15
16
17
18
# File 'lib/sortable_by.rb', line 13

def dup
  duplicate = self.class.new
  duplicate.instance_variable_set :@_fields, _fields.deep_dup
  duplicate.instance_variable_set :@_default, _default.deep_dup
  duplicate
end

#field(name, **opts) ⇒ Object



20
21
22
23
24
# File 'lib/sortable_by.rb', line 20

def field(name, **opts)
  name = name.to_s
  @_fields[name] = Field.new(name, **opts)
  @_default ||= name
end