require ‘pry’ require ‘ember-gen/support’

namespace :embergen do

namespace :update do
  include EmberGen::Support::FileSupport

  desc "upgrade ember.js and ember-data.js files takes optional argument of release, stable, canary"
  task :upgrade_ember, :version do |t, args|
    release = args[:version] || 'release'
    detect_version = ->(file) { File.readlines(file).detect { |l| l =~ /@version/ } }

    ember_path = './vendor/scripts/ember.js'

    if File.exists?(ember_path)
      puts "Existing ember version: #{detect_version.call(File.open(ember_path, 'r'))}"
    end

    %w[ember.js ember.min.js ember.prod.js ember-data.js ember-data.prod.js ember-data.min.js].each do |file_name|
      url = "http://builds.emberjs.com/#{release}/#{file_name}"
      download_and_move(url, "./vendor/scripts/#{file_name}")
      if file_name == 'ember.js'
        ember_file = File.open("./vendor/scripts/#{file_name}", 'r')
        puts "Downloaded version: #{detect_version.call(ember_file)}"
      end
    end
  end

end

namespace :install do
  include EmberGen::Support

  desc "install latest jquery 1.x"
  task "jquery_1x", :option do |t, args|
    task('install:jquery').invoke('1x', args[:option])
  end

  desc "install latest jquery 2.x"
  task "jquery_2x", :option do |t, args|
    puts 'jquery_2x task called'
    task('install:jquery').invoke('2x', args[:option])
  end

  desc "install specific version of jquery"
  task :jquery, :version, :option do |t, args|
    puts 'jquery task called'
    puts args.inspect
    version = args[:version]
    option = args[:option]
    option = 'uncompressed' unless %w[uncompressed minified].include?(option)

    conf = EmberGen::Support::Config.new(:vendor_map)

    begin
      url = conf.hash['jquery'][version][option]
    rescue
      begin
        url = conf.hash['jquery']['generic'][option]
        url.sub!('<version>', version)
      rescue NoMethodError
        raise "unable to find jquery with: version -> #{version}, option -> #{option}"
      end
    end
    download_and_move(url, "./vendor/assets/javascripts/jquery.js")
  end
end

end # embergen namespace