Methods
Attributes
[RW] | quiet |
Class Public methods
Source: show
# File rails/railties/lib/commands/plugin.rb, line 856 def initialize(urls_to_fetch, cwd = ".") @cwd = cwd @urls_to_fetch = urls_to_fetch.to_a @quiet = false end
Instance Public methods
Source: show
# File rails/railties/lib/commands/plugin.rb, line 893 def download(link) puts "+ #{File.join(@cwd, File.basename(link))}" unless @quiet open(link) do |stream| File.open(File.join(@cwd, File.basename(link)), "wb") do |file| file.write(stream.read) end end end
Source: show
# File rails/railties/lib/commands/plugin.rb, line 902 def fetch(links = @urls_to_fetch) links.each do |l| (l =~ %r\/$/ || links == @urls_to_fetch) ? fetch_dir(l) : download(l) end end
Source: show
# File rails/railties/lib/commands/plugin.rb, line 908 def fetch_dir(url) push_d(File.basename(url)) open(url) do |stream| contents = stream.read fetch(links(url, contents)) end pop_d end
Source: show
# File rails/railties/lib/commands/plugin.rb, line 883 def links(base_url, contents) links = [] contents.scan(%rhref\s*=\s*\"*[^\">]*/) do |link| link = link.sub(%rhref="/, "") next if link =~ %r^http/ || link =~ %r^\./ links << File.join(base_url, link) end links end
Source: show
# File rails/railties/lib/commands/plugin.rb, line 862 def ls @urls_to_fetch.collect do |url| if url =~ %r^svn:\/\/.*/ %xsvn ls #{url}`.split("\n").map {|entry| "/#{entry}"} rescue nil else open(url) do |stream| links("", stream.read) end rescue nil end end.flatten end
Source: show
# File rails/railties/lib/commands/plugin.rb, line 879 def pop_d @cwd = File.dirname(@cwd) end
Source: show
# File rails/railties/lib/commands/plugin.rb, line 874 def push_d(dir) @cwd = File.join(@cwd, dir) FileUtils.mkdir_p(@cwd) end