Class: Embarista::Updater::UpdateEmberStatesTask

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_states) {|_self| ... } ⇒ UpdateEmberStatesTask

Returns a new instance of UpdateEmberStatesTask.

Yields:

  • (_self)

Yield Parameters:



106
107
108
109
110
# File 'lib/embarista/tasks/updater.rb', line 106

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

Instance Attribute Details

#nameObject

Returns the value of attribute name.



104
105
106
# File 'lib/embarista/tasks/updater.rb', line 104

def name
  @name
end

Instance Method Details

#defineObject



112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/embarista/tasks/updater.rb', line 112

def define
  update_ember_states_task = task name do |t, args|
    old_sha, new_sha = nil, nil
    regexp = /ember-states-([0-9a-f]{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-states js version" if old_sha.nil?
    cd('../ember-states') do
      new_sha = `git rev-parse HEAD`.chomp
      Bundler.with_clean_env do
        `bundle && bundle exec rake dist`
      end
      cd('./dist') do
        cp('ember-states.js', "#{app_vendor_path}/ember-states-#{new_sha}.js")
        cp('ember-states.min.js', "#{app_vendor_path}/ember-states-#{new_sha}.min.js")
      end
    end
    if old_sha != new_sha
      cd(app_vendor_path) do
        rm("ember-states-#{old_sha}.js")
        rm("ember-states-#{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_states_task.add_description "Update Ember States from a repo in ../ember-states"
end