Advertisement
Guest User

Untitled

a guest
May 3rd, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. namespace :conway do
  2. desc "Loads the new banner_rotator models from old YAML file"
  3. task :convert => :environment do
  4. require 'yaml'
  5. require 'net/http'
  6.  
  7. ## clear the database tables
  8. print "Scrubbing database tables..."
  9. Banner.destroy_all
  10. BannerPlacement.destroy_all
  11. puts "done."
  12.  
  13. ## get the old CMS YAML file from SVN
  14. svn_root = "svn-freight.con-way.com"
  15. svn_file = "/eweb/trunk/rails/cms/config/banner_rotating.yml"
  16. svn_user = "readonly"
  17. svn_pass = "read123"
  18. http = Net::HTTP.start("#{svn_root}")
  19. req = Net::HTTP::Get.new("#{svn_file}")
  20. req.basic_auth svn_user, svn_pass
  21. response = http.request(req)
  22.  
  23. ## Load database tables from old CMS YAML file
  24. YAML.load(response.body).each do |section|
  25. site_section = section[0].capitalize
  26. puts "Loading #{site_section} banners:"
  27. section[0] == 'home' ? slug = '/' : slug = section[0]
  28. banners = section[1]
  29. page = Page.find_by_slug(slug)
  30. # @banners.each do |banner|
  31. # @new_banner = Banner.new
  32. # @banner_data = banner[1]
  33. # print ' ' + @new_banner.name = "#{@site_section}-#{banner[0]}"
  34. # @new_banner.background_image = @banner_data['banner']
  35. # @new_banner.foreground_image = @banner_data['promo']
  36. # @new_banner.link_url = @banner_data['link']
  37. # @new_banner.link_target = @banner_data['target']
  38. # if !@banner_data['promo_left'].blank? then @new_banner.image_style = "left: #{@banner_data['promo_left']};" end
  39. # ## get banner weight and remove duplicates from @banners
  40. #
  41. # @weight = 0
  42. # @banners.each do |ban|
  43. # if ban[1]['banner'] == @new_banner.background_image
  44. # @weight += 1
  45. # @banners.delete(ban[0])
  46. # end
  47. # end
  48. # puts " with weight of #{@weight}"
  49. # @new_banner.placements = [ {:page_id => @page.id, :weight => @weight} ]
  50. # @new_banner.save
  51. # end
  52.  
  53. new_banner_hash = banners.inject({}) do |banner_hash, banner|
  54. banner_data = banner[1]
  55. bg_image = banner_data['banner']
  56. puts bg_image
  57. banner_hash[bg_image] ||= {}
  58. banner_hash[bg_image][:weight] ||= 0
  59. banner_hash[bg_image][:weight] += 1
  60. banner_hash[bg_image][:background_image] = bg_image
  61. banner_hash[bg_image][:foreground_image] = banner_data['promo']
  62. banner_hash[bg_image][:link_url] = banner_data['link']
  63. banner_hash[bg_image][:link_target] = banner_data['target']
  64. unless banner_data['promo_left'].blank? then banner_hash[bg_image][:image_style] = "left: #{banner_data['promo_left']};" end
  65. end
  66.  
  67. puts new_banner_hash.inspect
  68.  
  69. new_banner_hash.each do |banner|
  70. new_banner = Banner.new
  71.  
  72. end
  73.  
  74. puts 'done.'
  75. end
  76. end
  77. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement