Class: LadyJosephine::ImageUploader

Inherits:
BaseUploader
  • Object
show all
Defined in:
app/uploader/lady_josephine/image_uploader.rb

Instance Method Summary collapse

Methods inherited from BaseUploader

#auto_orient, #compress_to_fill, #compress_to_fit, #store_dir, #strip

Instance Method Details

#add_metadata(image) ⇒ Object



4
5
6
# File 'app/uploader/lady_josephine/image_uploader.rb', line 4

def (image)
  @version_metadata = (image[:dimensions], image[:size])
end

#collect_metadataObject



51
52
53
54
55
56
57
58
# File 'app/uploader/lady_josephine/image_uploader.rb', line 51

def 
  if version_name.nil?
    original_filename.present? ?  : 
  else
    model.send(mounted_as).
  end

end

#collect_metadata_from_cache(json_data) ⇒ Object



76
77
78
# File 'app/uploader/lady_josephine/image_uploader.rb', line 76

def (json_data)
  HashWithIndifferentAccess.new(JSON.parse(json_data))
end

#collect_metadata_from_modelObject



67
68
69
70
71
72
73
74
# File 'app/uploader/lady_josephine/image_uploader.rb', line 67

def 
   = "#{mounted_as}_metadata"
  if model.respond_to?() && (json_data = model.send ).present?
    (json_data)
  else
    
  end
end

#collect_metadata_from_uploadObject



60
61
62
63
64
65
# File 'app/uploader/lady_josephine/image_uploader.rb', line 60

def 
  versions.inject(HashWithIndifferentAccess.new) do |, (key,version_data)|
    [key] = version_data.
    
  end
end

#collect_metadata_from_version_namesObject



80
81
82
83
84
85
# File 'app/uploader/lady_josephine/image_uploader.rb', line 80

def 
  versions.inject(HashWithIndifferentAccess.new) do |, (key,version_data)|
    [key] = (key)
    
  end
end

#dummy_version_metadata(version_name) ⇒ Object



25
26
27
# File 'app/uploader/lady_josephine/image_uploader.rb', line 25

def (version_name)
  ([width_from_version_name(version_name),width_from_version_name(version_name)],1000)
end

#dynamic_version(version) ⇒ Object



113
114
115
116
117
# File 'app/uploader/lady_josephine/image_uploader.rb', line 113

def dynamic_version(version)
  LadyJosephine.image_sizes[version].each do |method, args|
    self.send method, *args
  end
end

#extension_white_listObject



119
120
121
# File 'app/uploader/lady_josephine/image_uploader.rb', line 119

def extension_white_list
  %w(jpg jpeg gif png)
end

#metadataObject



47
48
49
# File 'app/uploader/lady_josephine/image_uploader.rb', line 47

def 
  @metadata ||= 
end

#metadata_entry(dimensions, size) ⇒ Object



8
9
10
11
12
13
14
15
# File 'app/uploader/lady_josephine/image_uploader.rb', line 8

def (dimensions, size)
  data = HashWithIndifferentAccess.new
  data['width']  = dimensions[0]
  data['height'] = dimensions[1]
  data['size']   = size / 1000
  data['ratio']  = ratio data['width'], data['height']
  data
end

#ratio(width, height) ⇒ Object



17
18
19
# File 'app/uploader/lady_josephine/image_uploader.rb', line 17

def ratio(width, height)
  (width.to_f / height.to_f).round(2)
end

#srcset(options = {}) ⇒ Object



33
34
35
36
37
38
39
40
# File 'app/uploader/lady_josephine/image_uploader.rb', line 33

def srcset(options = {})
  src_versions = [options[:only]].reject(&:blank?).flatten.empty? ? versions.keys{|version| version =~ /^w\d+$/ } : [options[:only]].flatten
  src_versions = src_versions - [options[:except]].flatten

  src_versions.collect do |version, version_data|
    srcset_string url(version), [version]['width']
  end.reject(&:blank?).join(", ")
end

#srcset_string(url, width) ⇒ Object



29
30
31
# File 'app/uploader/lady_josephine/image_uploader.rb', line 29

def srcset_string(url, width)
  "#{url} #{width}w"
end

#version_metadataObject



21
22
23
# File 'app/uploader/lady_josephine/image_uploader.rb', line 21

def 
  @version_metadata || (version_name)
end

#width_from_version_name(version_string) ⇒ Object



42
43
44
# File 'app/uploader/lady_josephine/image_uploader.rb', line 42

def width_from_version_name(version_string)
  version_string.to_s.sub(/\D*(\d+)\D*/,'\1').to_i
end