class Korgi::FileUploadFilter

Attributes

id[R]
target[R]
version[R]

Public Class Methods

new(doc, context = nil, result = nil) click to toggle source
Calls superclass method
# File lib/korgi/file_upload_filter.rb, line 8
def initialize(doc, context = nil, result = nil)
  super doc, context, result
  @target, @id, @version = nil
end

Public Instance Methods

call() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 13
def call
  doc.to_s.gsub(pattern) do
    origin, @target, @id, @version = Regexp.last_match.to_a
    valid_target? ? file_url : origin
  end
end

Private Instance Methods

configured_value(key) click to toggle source
# File lib/korgi/file_upload_filter.rb, line 34
def configured_value(key)
  Korgi.config.file_uploads[target.to_sym][key]
end
default_version() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 50
def default_version
  configured_value(:default_version)
end
file_url() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 26
def file_url
  Korgi::FileObject.new(klass, id, nil_object).fetch.send(mount).url(file_version)
end
file_version() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 54
def file_version
  if version
    valid_file_version? ? version : default_version
  else
    default_version
  end
end
file_versions() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 66
def file_versions
  klass.uploaders[mount].versions.keys
end
klass() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 38
def klass
  Object.const_get(configured_value(:model))
end
mount() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 42
def mount
  configured_value(:mount)
end
nil_object() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 46
def nil_object
  Object.const_get(configured_value(:nil_object))
end
pattern() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 22
def pattern
  %r{\$\+([\w]+).([\d]+)(?:.([\w]+))?\$}
end
valid_file_version?() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 62
def valid_file_version?
  file_versions.include?(version.to_sym)
end
valid_target?() click to toggle source
# File lib/korgi/file_upload_filter.rb, line 30
def valid_target?
  Korgi.config.file_uploads.key?(target.to_sym)
end