class ActiveadminAncestryView::IndexControllerBuilder

Constants

OLD_SCOPED_COL_VAR_NAME
ORDER_VAR_NAME

Private Instance Methods

build_after_action() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 20
def build_after_action
  %{send(:after_action, only: :index) do
      #{restore_sort_order}
      #{restore_old_scoped_collection}
    end}
end
build_attr_accessor() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 8
def build_attr_accessor
  %{attr_accessor :#{ORDER_VAR_NAME}}
end
build_before_action() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 12
def build_before_action
  %{send(:before_action, only: :index) do
      #{save_and_clean_sort_order}
      #{save_old_scoped_collection}
      #{sort_scoped_collection}
    end}
end
restore_old_scoped_collection() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 38
def restore_old_scoped_collection
  "self.class.send :alias_method, :scoped_collection, :#{OLD_SCOPED_COL_VAR_NAME}\n"
end
restore_sort_order() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 47
def restore_sort_order
  %{if #{ORDER_VAR_NAME}
      active_admin_config.sort_order = #{ORDER_VAR_NAME}
      #{ORDER_VAR_NAME} = nil
    end}
end
save_and_clean_sort_order() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 42
def save_and_clean_sort_order
  %{#{ORDER_VAR_NAME} = active_admin_config.sort_order
    active_admin_config.sort_order = ''}
end
save_old_scoped_collection() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 27
def save_old_scoped_collection
  "self.class.send :alias_method, :#{OLD_SCOPED_COL_VAR_NAME}, :scoped_collection\n"
end
sort_scoped_collection() click to toggle source
# File lib/activeadmin_ancestry_view/controller_builder/index_controller_builder.rb, line 31
def sort_scoped_collection
  %{self.class.redefine_method(:scoped_collection) do
      ids = #{OLD_SCOPED_COL_VAR_NAME}.all.sort_by(&:full_ancestry).map(&:id)
      resource_class.ordered_collection(ids)
    end}
end