Sha256: cb523785511c3e971ce9b14651c86e14706c6d00277fe33a9138c570bd2dda00

Contents?: true

Size: 693 Bytes

Versions: 30

Compression:

Stored size: 693 Bytes

Contents

module ActiveAdmin
  class OrderClause
    attr_reader :field, :order

    def initialize(clause)
      clause =~ /^([\w\_\.]+)(->'\w+')?_(desc|asc)$/
      @column = $1
      @op = $2
      @order = $3

      @field = [@column, @op].compact.join
    end

    def valid?
      @field.present? && @order.present?
    end

    def to_sql(active_admin_config)
      table = active_admin_config.resource_column_names.include?(@column) ? active_admin_config.resource_table_name : nil
      table_column = (@column =~ /\./) ? @column :
        [table, active_admin_config.resource_quoted_column_name(@column)].compact.join(".")

      [table_column, @op, ' ', @order].compact.join
    end
  end
end

Version data entries

30 entries across 30 versions & 6 rubygems

Version Path
activeadmin_addons-1.1.2 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/order_clause.rb
activeadmin_addons-1.1.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.17.pre lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.16.pre lib/active_admin/order_clause.rb
activeadmin_addons-1.1.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/order_clause.rb
activeadmin_addons-1.0.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/order_clause.rb
activeadmin_addons-1.0.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.15.pre lib/active_admin/order_clause.rb
activeadmin-orac-1.0.0.pre4 lib/active_admin/order_clause.rb
activeadmin-orac-1.0.0 lib/active_admin/order_clause.rb
activeadmin-orac-1.0.0.pre.orac lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.14.pre lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.13.pre lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.12.pre lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.11.pre lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.10.pre lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.9.pre lib/active_admin/order_clause.rb
yousty-activeadmin-1.0.8.pre lib/active_admin/order_clause.rb
activeadmin-1.0.0.pre4 lib/active_admin/order_clause.rb
activeadmin-1.0.0.pre3 lib/active_admin/order_clause.rb