class SprocketsFS::SprocketsDir
Attributes
mount_dir[RW]
parent_dirs[RW]
Public Instance Methods
can_write?(path)
click to toggle source
# File lib/sprockets_fs.rb, line 130 def can_write?(path) #base = convert_to_absolute("#{path[1..-1]}.coffee",false) || convert_to_absolute("#{path[1..-1]}.erb",false) base = unprocessed_parent_relative_file(path[1..-1]) if base false else true end end
contents(path)
click to toggle source
# File lib/sprockets_fs.rb, line 82 def contents(path) all = files res = if path == '/' all.select { |x| x.split("/").size == 1 } + dirs.select { |x| x.split("/").size == 1 } else all.select do |f| f.starts_with?(path[1..-1]) end.map { |f| f.gsub("#{path[1..-1]}/","") } end.uniq res = res.map do |f| if f =~ /\.coffee$/ [f,f.gsub(/\.coffee$/,"")] elsif f =~ /\.erb$/ [f,f.gsub(/\.erb$/,"")] else f end end.flatten puts "contents #{res.size}" res end
convert_to_absolute(file,safe=true)
click to toggle source
# File lib/sprockets_fs.rb, line 42 def convert_to_absolute(file,safe=true) file = file.to_s if file parent_dirs.each do |dir| base = "#{dir}/#{file}" return base if FileTest.exist?(base) end raise "can't convert #{file} to absolute" if safe nil end
convert_to_relative(file)
click to toggle source
# File lib/sprockets_fs.rb, line 32 def convert_to_relative(file) file = file.to_s if file parent_dirs.each do |dir| if file.starts_with?(dir) return file.gsub("#{dir}/","") end end raise "can't convert #{file} to relative, dirs are\n"+parent_dirs.join("\n") nil end
directory?(path)
click to toggle source
# File lib/sprockets_fs.rb, line 78 def directory?(path) path == "/" || dirs.include?(path[1..-1]) end
dirs()
click to toggle source
# File lib/sprockets_fs.rb, line 58 def dirs res = [] files.each do |f| if f.split("/").size > 1 res << File.dirname(f) end end res end
file?(path)
click to toggle source
# File lib/sprockets_fs.rb, line 68 def file?(path) files.each do |f| return true if f == path[1..-1] if f.split(".").size > 2 short = f.split(".")[0..-2].join(".") return true if short == path[1..-1] end end false end
files()
click to toggle source
# File lib/sprockets_fs.rb, line 51 def files res = [] env.each_file do |f| res << convert_to_relative(f) end res - ["rails.png"] end
parent_dir=(dir)
click to toggle source
# File lib/sprockets_fs.rb, line 20 def parent_dir=(dir) self.parent_dirs = [dir] end
read_file(path)
click to toggle source
# File lib/sprockets_fs.rb, line 116 def read_file(path) ML.log("path #{path}") do base = convert_to_absolute(path[1..-1],false) if base File.read(base).strip else env.find_asset(path[1..-1]).to_s.strip end end end
size(path)
click to toggle source
# File lib/sprockets_fs.rb, line 126 def size(path) read_file(path).size end
unprocessed_parent_relative_file(file)
click to toggle source
# File lib/sprockets_fs.rb, line 107 def unprocessed_parent_relative_file(file) files.each do |possible_parent| if possible_parent.starts_with?(file) && possible_parent.length > file.length return possible_parent end end nil end
write_to(path,contents)
click to toggle source
# File lib/sprockets_fs.rb, line 140 def write_to(path,contents) full = convert_to_absolute(path[1..-1],false) if !full if parent_dirs.size == 1 full = "#{parent_dirs.first}#{path}" else raise "can't write" end end File.create full, contents end