Class: Embarista::Updater::UpdateEmberDataTask

Inherits:
Rake::TaskLib
  • Object
show all
Defined in:
lib/embarista/tasks/updater.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = :update_ember_data) {|_self| ... } ⇒ UpdateEmberDataTask

Returns a new instance of UpdateEmberDataTask.

Yields:

  • (_self)

Yield Parameters:



63
64
65
66
67
# File 'lib/embarista/tasks/updater.rb', line 63

def initialize(name = :update_ember_data)
  @name = name
  yield self if block_given?
  define
end

Instance Attribute Details

#nameObject

Returns the value of attribute name.



61
62
63
# File 'lib/embarista/tasks/updater.rb', line 61

def name
  @name
end

Instance Method Details

#defineObject



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/embarista/tasks/updater.rb', line 69

def define
  update_ember_data_task = task name do |t, args|
    old_sha, new_sha = nil, nil
    regexp = /ember-data-([0-9a-f]{4,40})/
    app_vendor_path = File.expand_path("app/vendor")
    cd(app_vendor_path) do
      old_filename = Dir['*'].grep(regexp)[0]
      old_filename =~ regexp
      old_sha = $1
    end
    raise "Couldn't find current ember-data js version" if old_sha.nil?
    cd('../ember-data') do
      new_sha = `git rev-parse HEAD`.chomp
      Bundler.with_clean_env do
        `npm install; ./node_modules/.bin/grunt dist`
      end
      cd('./dist') do
        cp('ember-data.js', "#{app_vendor_path}/ember-data-#{new_sha}.js")
        cp('ember-data.min.js', "#{app_vendor_path}/ember-data-#{new_sha}.min.js")
      end
    end
    if old_sha != new_sha
      cd(app_vendor_path) do
        rm("ember-data-#{old_sha}.js")
        rm("ember-data-#{old_sha}.min.js")
      end
      Embarista::Updater.update_asset_file(old_sha, new_sha)
    end
    puts "Updated from #{old_sha} to #{new_sha}"
  end
  update_ember_data_task.add_description "Update Ember data from a repo in ../ember-data"
end