Sha256: 6e7a7568d8693a01fe78eb9654b054f7bd073110bf8293e1ec7eee7b02ef74f5

Contents?: true

Size: 653 Bytes

Versions: 2

Compression:

Stored size: 653 Bytes

Contents

require 'hirb'

module Hirb::Views::Kangaroo
  def kangaroo__model__base_view obj
    { :fields => get_kangaroo_fields(obj) }
  end
  
  def get_kangaroo_fields obj
    fields = obj.class.attribute_names
    
    # if query used select
    if obj.attributes.keys.sort != obj.class.attribute_names.sort
      selected_columns = obj.attributes.keys
      sorted_columns = obj.class.attribute_names.dup.delete_if {|e| !selected_columns.include?(e) }
      sorted_columns += (selected_columns - sorted_columns)
      fields = sorted_columns.map {|e| e.to_sym}
    end
    fields
  end
end

Hirb::DynamicView.add Hirb::Views::Kangaroo, :helper => :auto_table

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kangaroo-0.0.3 lib/kangaroo/hirb.rb
kangaroo-0.0.2 lib/kangaroo/hirb.rb