class Alchemy::Custom::Model::ElFinder::Paths::ActiveRecordReference

Constants

URI_SPACER

Public Class Methods

file_to_uri(p) click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 33
def self.file_to_uri(p)
  #p.to_global_id.uri.to_s.gsub(/^gid\:\/\//,'')
  "#{p.id}#{URI_SPACER}"
end

Public Instance Methods

active_record_class() click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 16
def active_record_class
  raise "ToOverride"
end
active_record_instance() click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 24
def active_record_instance
  return @_active_record_instance if @_active_record_instance
  id = self.path.basename.to_s.split(URI_SPACER).first
  @_active_record_instance = self.active_record_class.find(id)

  # gid = "gid://#{self.path.basename.to_s}"#.split(URI_SPACER)
  # @_active_record_instance = GlobalID::Locator.locate gid# self.active_record_class.find(id)
end
active_record_instance=(v) click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 20
def active_record_instance=(v)
  @_active_record_instance = v
end
directory?() click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 12
def directory?
  false
end
file() click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 47
def file
  active_record_instance.file
end
file?() click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 8
def file?
  true
end
fisical_path() click to toggle source
# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 51
def fisical_path
  file.path
end
mtime() click to toggle source

Identifichiamo la data di modifica del file con la data di modifica del record, in questo modo la cache che viene generata attraverso l'inserimento di un parametro nella query con il valore t=orario non andrĂ  ad essere aggiornato ad ogni refresh, anche solo a livello di browser nel caso abbiamo problemi usiamo lo standard

# File lib/alchemy/custom/model/el_finder/paths/active_record_reference.rb, line 43
def mtime
  active_record_instance.updated_at rescue super
end