Method: Thor::Runner#update

Defined in:
lib/thor/runner.rb

#update(name) ⇒ Object

Raises:



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/thor/runner.rb', line 132

def update(name)
  raise Error, "Can't find module '#{name}'" if !thor_yaml[name] || !thor_yaml[name][:location]

  say "Updating '#{name}' from #{thor_yaml[name][:location]}"

  old_filename = thor_yaml[name][:filename]
  self.options = options.merge("as" => name)

  if File.directory? File.expand_path(name)
    require "fileutils"
    FileUtils.rm_rf(File.join(thor_root, old_filename))

    thor_yaml.delete(old_filename)
    save_yaml(thor_yaml)

    filename = install(name)
  else
    filename = install(thor_yaml[name][:location])
  end

  File.delete(File.join(thor_root, old_filename)) unless filename == old_filename
end