Sha256: bea81e44ce352e7151c231340bc094427aebf0b0ad962696f644a10403d935fa

Contents?: true

Size: 1.37 KB

Versions: 11

Compression:

Stored size: 1.37 KB

Contents

class RailsInfo::Data
  class << self
    def update_multiple(data)
      collection = {}

      data.each do |element|
        klass, id = element.split(';')
        collection[klass] ||= []
        collection[klass] << id
      end
  
      collection.each do |klass,ids|
        klass.constantize.delete(ids)
      end
    end
  end
  
  def initialize
    @rails_info_model = ::RailsInfo::Model.new
  end
  
  def last_objects
    klasses = @rails_info_model.classes
    objects = {}
        
    klasses.each do |klass|
      sort_field = [:updated_at, :created_at].select{|v| klass.columns.map{|c|c.name.to_sym}.include?(v)}.first
         
      raise NotImplementedError.new("No known sort fields found in attribute keys: #{object.attributes.keys.inspect}") if sort_field.blank?
      
      klass.limit(10).each do |object|
        objects[object.send(sort_field).to_i] = object.attributes
        objects[object.send(sort_field).to_i][:class] = object.class
      end
    end

    row_sets = []
    last_class = ""
    last_objects = []

    objects.keys.sort {|x,y| y <=> x }.each do |sort_value|
      if last_class != "" && objects[sort_value][:class] != last_class
        row_sets << last_objects
        last_objects = []
      end

      last_objects << objects[sort_value]
      last_class = objects[sort_value][:class]
    end

    row_sets << last_objects
    
    row_sets
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
rails_info-0.1.1 lib/rails_info/data.rb
rails_info-0.1.0 lib/rails_info/data.rb
rails_info-0.0.9 lib/rails_info/data.rb
rails_info-0.0.8 lib/rails_info/data.rb
rails_info-0.0.7 lib/rails_info/data.rb
rails_info-0.0.6 lib/rails_info/data.rb
rails_info-0.0.5 lib/rails_info/data.rb
rails_info-0.0.4 lib/rails_info/data.rb
rails_info-0.0.3 lib/rails_info/data.rb
rails_info-0.0.2 lib/rails_info/data.rb
rails_info-0.0.1 lib/rails_info/data.rb