repository_file.rb revision afd1d888784385307c9c0544597a513c2008d342
f49f1c5fa6a9a55a194e5ada042df134907278f4Aki Tuomi if record.repository.points_through_file?(record.target_path)
316cbe323513a0f20d1cf519fe9405e231d633e2Aki Tuomi record.errors[:target_directory] = "Error! This path points to or through a file."
316cbe323513a0f20d1cf519fe9405e231d633e2Aki Tuomi # basic repository file usage
cd24dc2196f7480d4793ca5d5f9f8d70741bc103Aki Tuomi delegate :name, :path, :size, :mime_type, :mime_category,
345f36ebc7dd445cfa3dbf157342d110cc74d7c7Aki Tuomi attr_reader :message, :temp_file, :target_directory, :target_filename
c6108c1bfa10d5fcd1def9c6a23ebcd5204d1775Timo Sirainen validates :message, :temp_file, presence: true
316cbe323513a0f20d1cf519fe9405e231d633e2Aki Tuomi validates_with PathValidator, :if => :temp_file_exists?
316cbe323513a0f20d1cf519fe9405e231d633e2Aki Tuomi [opts[:repository_id], opts[:ref], opts[:path]].compact.join('/'))
de1c645a79d42c37dffb7f52e9c643b6251fdcd0Aki Tuomi repository = Repository.find_by_path(opts[:repository_id])
7e1a69e513739a7c12e3c5ec53dff1eb01b90524Aki Tuomi dir_path = opts[:path].split('/')[0..-2].join('/')
149299c7d5136a8fb425ef3cf8953026a1358002Timo Sirainen entries = repository.git.folder_contents(oid, dir_path).select do |entry|
7e1a69e513739a7c12e3c5ec53dff1eb01b90524Aki Tuomi entry.path.start_with?(opts[:path]) && entry.file?
316cbe323513a0f20d1cf519fe9405e231d633e2Aki Tuomi new(repository_id: repository.to_param, path: entry.path)
ff95c6488eb3239654ed7fd51ed787a6b2c44506Timo Sirainen tempfile = Tempfile.new('repository_tempfile')
86ad487452c763152f3ff4dd4650512f3cecdc55Aki Tuomi new(opts[:repository_file].merge({repository_id: opts[:repository_id]}))
86ad487452c763152f3ff4dd4650512f3cecdc55Aki Tuomi rf.repository.save_file(rf.temp_file.path, rf.target_path, rf.message, opts[:user])
elsif opts[:git_file] && opts[:repository]
@repository = opts[:repository]
if file?
@ontologies ||= begin
if child_name
if dir?
cntnt.map! do |e|
content.each_with_index do |v,i|
v.index = i
Hash[content.group_by do | e |
end.map do | k, v |
[k[:name], v]