Class: SimpleImage

Inherits:
ApplicationRecord
  • Object
show all
Includes:
Checkable, HasOwner, HasTrack, HasUuid
Defined in:
app/models/simple_image.rb

Overview

Universal simple image

Attributes:

agent_id [Agent], optional
biovision_component_id [BiovisionComponent]
caption [string], optional
checksum [String], optional
created_at [DateTime]
data [jsonb]
image [SimpleImageUploader]
image_alt_text [string]
ip_address_id [IpAddress], optional
object_count [integer]
source_link [string], optional
source_name [string], optional
updated_at [DateTime]
user_id [User], optional
uuid [uuid]

Constant Summary collapse

META_LIMIT =
255
ORIGINAL_CHECKSUM =
'original_checksum'

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HasOwner

#owned_by?, #owner_name

Class Method Details

.[](input) ⇒ Object

Parameters:

  • input (String)


51
52
53
54
55
56
57
58
59
# File 'app/models/simple_image.rb', line 51

def self.[](input)
  case input
  when /\A\h{8}-\h{4}-4\h{3}-[89ab]\h{3}-\h{12}\Z/i
    find_by(uuid: input)
  when /\A[a-f0-9]{64}\z/i
    key = "data->>'#{ORIGINAL_CHECKSUM}'"
    find_by(checksum: input) || find_by("#{key} = ?", input)
  end
end

.entity_parametersObject



61
62
63
# File 'app/models/simple_image.rb', line 61

def self.entity_parameters
  %i[caption image image_alt_text source_link source_name]
end

.json_attributesObject



65
66
67
# File 'app/models/simple_image.rb', line 65

def self.json_attributes
  %i[caption image_alt_text source_link source_name]
end

Instance Method Details

#file_sizeObject



73
74
75
# File 'app/models/simple_image.rb', line 73

def file_size
  File.size(image.path)
end

#image_slugObject



77
78
79
# File 'app/models/simple_image.rb', line 77

def image_slug
  "#{uuid[0..2]}/#{uuid[3..5]}/#{uuid}"
end

#nameObject



69
70
71
# File 'app/models/simple_image.rb', line 69

def name
  File.basename(image.path)
end