Sha256: 2b2d54e8f63e2577898f25596b755e82618614fd142ab6c81384b61189eed845

Contents?: true

Size: 710 Bytes

Versions: 6

Compression:

Stored size: 710 Bytes

Contents

def create_compare_proc config
  if(config==nil || config["method"] == nil)
    return lambda do |a, b|
      a <=> b
    end
  elsif config["method"].kind_of?(Hash)
    return lambda do |a, b|
      eval_pragger(config["method"],[a])[0] <=> eval_pragger(config["method"],[b])[0]
    end
  else
    return lambda do |a, b|
      method = config['method']
      a = a.respond_to?(method) ? a.__send__(method) : nil
      b = b.respond_to?(method) ? b.__send__(method) : nil
      return a <=> b if a.respond_to?('<=>')
      return b <=> a if b.respond_to?('<=>')
      nil
    end
  end
end

def sort(config,data)
  proc = create_compare_proc(config)
  return data.sort do|a, b|
    proc.call(a, b)
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
yapra-0.2.2 plugins/Filter/sort.rb
yapra-0.2.0 plugins/Filter/sort.rb
yapra-0.1.3 plugins/Filter/sort.rb
yapra-0.1.0 plugins/Filter/sort.rb
yapra-0.1.1 plugins/Filter/sort.rb
yapra-0.1.2 plugins/Filter/sort.rb