Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace :parsegems do
- def parse_gems(gem_list)
- hsh={}
- last = ''
- gem_list.each do |line|
- case line
- when /\A([-\w]+)\s+\((.*?)\)/
- (hsh[$1] ||= {})[:versions]=$2
- last = $1
- when /\A(\s+\w.*?)\Z/
- (hsh[last][:desc] ||= '') << ($1+' ')
- end
- end
- hsh
- end
- desc 'Gets the gems list --remote and parse it into the app_gems database table for quick autocomplete.'
- task :import => :environment do
- hsh = parse_gems(`gem list --remote`)
- hsh.keys.each do |key|
- g = GemIndex.find_or_create_by_name(key)
- g.update_attributes :versions => hsh[key][:versions],
- :description => hsh[key][:desc]
- puts "Imported Gem Data for: #{key}"
- end
- end
- end
Add Comment
Please, Sign In to add comment