Class: Uploadcare::Rails::AttachedFiles
Constant Summary
collapse
- ATTRIBUTES =
%i[
id cdn_url datetime_created files_count files
datetime_removed datetime_stored datetime_uploaded
is_image is_ready mime_type original_file_url original_filename
size url uuid variations content_info metadata appdata source
].freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
#cache_expires_in, #cache_key, #caching_enabled?, #resource_to_hash, #update_attrs, #uploadcare_configuration
Constructor Details
#initialize(attributes = {}, client: nil) ⇒ AttachedFiles
Returns a new instance of AttachedFiles.
23
24
25
26
27
28
29
30
|
# File 'lib/uploadcare/rails/attached_files.rb', line 23
def initialize(attributes = {}, client: nil)
@client = client
attributes = attributes.transform_keys(&:to_s)
ATTRIBUTES.each do |attr|
key = attr.to_s
instance_variable_set("@#{attr}", attributes[key]) if attributes.key?(key)
end
end
|
Instance Attribute Details
#client=(value) ⇒ Object
Sets the attribute client
21
22
23
|
# File 'lib/uploadcare/rails/attached_files.rb', line 21
def client=(value)
@client = value
end
|
Instance Method Details
#delete ⇒ Object
58
59
60
|
# File 'lib/uploadcare/rails/attached_files.rb', line 58
def delete
resolve_client.groups.find(group_id: id).delete
end
|
#file_urls ⇒ Object
44
45
46
47
48
|
# File 'lib/uploadcare/rails/attached_files.rb', line 44
def file_urls
map_file_urls do |index|
group_file_url(index)
end
end
|
#load(force: false) ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/uploadcare/rails/attached_files.rb', line 62
def load(force: false)
::Rails.cache.delete(cache_key) if force && caching_enabled?
group_info = if caching_enabled?
::Rails.cache.fetch(cache_key, expires_in: cache_expires_in) do
request_group_info_from_api
end
else
request_group_info_from_api
end
update_attrs(group_info)
end
|
#loaded? ⇒ Boolean
75
76
77
|
# File 'lib/uploadcare/rails/attached_files.rb', line 75
def loaded?
datetime_created.present?
end
|
#store ⇒ Object
50
51
52
53
54
55
56
|
# File 'lib/uploadcare/rails/attached_files.rb', line 50
def store
client = resolve_client
group_resource = client.groups.find(group_id: id)
file_uuids = Array(group_resource.files).filter_map { |file| (file) }
client.files.batch_store(uuids: file_uuids) if file_uuids.any?
group_resource
end
|
#to_s ⇒ Object
79
80
81
|
# File 'lib/uploadcare/rails/attached_files.rb', line 79
def to_s
cdn_url
end
|
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/uploadcare/rails/attached_files.rb', line 32
def transform_file_urls(
transformations,
transformator_class = Transformations::ImageTransformations
)
return if cdn_url.blank?
transformations_query = transformator_class.new(transformations).call if transformations.present?
map_file_urls do |index|
[ group_file_url(index), transformations_query ].compact.join("-")
end
end
|