Guest User

Untitled

a guest
Feb 21st, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. namespace :parsegems do
  2. def parse_gems(gem_list)
  3. hsh={}
  4. last = ''
  5. gem_list.each do |line|
  6. case line
  7. when /\A([-\w]+)\s+\((.*?)\)/
  8. (hsh[$1] ||= {})[:versions]=$2
  9. last = $1
  10. when /\A(\s+\w.*?)\Z/
  11. (hsh[last][:desc] ||= '') << ($1+' ')
  12. end
  13. end
  14. hsh
  15. end
  16.  
  17. desc 'Gets the gems list --remote and parse it into the app_gems database table for quick autocomplete.'
  18. task :import => :environment do
  19. hsh = parse_gems(`gem list --remote`)
  20. hsh.keys.each do |key|
  21. g = GemIndex.find_or_create_by_name(key)
  22. g.update_attributes :versions => hsh[key][:versions],
  23. :description => hsh[key][:desc]
  24. puts "Imported Gem Data for: #{key}"
  25. end
  26. end
  27.  
  28. end
Add Comment
Please, Sign In to add comment