Module: SequelImage::InstanceMethods

Defined in:
lib/ramaze/contrib/sequel/image.rb

Instance Method Summary collapse

Instance Method Details

#basenameObject



146
147
148
# File 'lib/ramaze/contrib/sequel/image.rb', line 146

def basename
  File.basename(original, File.extname(original))
end

#cleanupObject



166
167
168
169
170
171
172
173
174
175
# File 'lib/ramaze/contrib/sequel/image.rb', line 166

def cleanup
  conf[:sizes].each do |name, args|
    out = public_file(name)
    Ramaze::Log.debug "Remove Thumbnail: #{out}"
    FileUtils.rm_f(out)
  end

  Ramaze::Log.debug "Remove original: #{original}"
  FileUtils.rm_f(original)
end

#confObject



162
163
164
# File 'lib/ramaze/contrib/sequel/image.rb', line 162

def conf
  self.class::IMAGE
end

#file(size = nil) ⇒ Object



125
126
127
# File 'lib/ramaze/contrib/sequel/image.rb', line 125

def file(size = nil)
  File.join('/', path, filename(size))
end

#filename(size) ⇒ Object



154
155
156
157
158
159
160
# File 'lib/ramaze/contrib/sequel/image.rb', line 154

def filename(size)
  if size
    "#{basename}_#{size}.png"
  else
    "#{basename}.png"
  end
end

#generate_thumbnailsObject



177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# File 'lib/ramaze/contrib/sequel/image.rb', line 177

def generate_thumbnails
  FileUtils.mkdir_p(public_path)

  sizes, algorithm = conf.values_at(:sizes, :algorithm)

  ImageScience.with_image(original) do |img|
    Ramaze::Log.debug "Process original: #{original}"

    sizes.each do |name, args|
      out = public_file(name)
      Ramaze::Log.debug "Generate Thumbnail: #{out}"

      img.send(algorithm, *args) do |thumb|
        thumb.save(out)
      end
    end
  end
end

#next_name(uid, ext) ⇒ Object



141
142
143
144
# File 'lib/ramaze/contrib/sequel/image.rb', line 141

def next_name(uid, ext)
  uid = uid.to_s.scan(%r![^\\/'".:?&;\s]+!).join('-')
  "#{uid}#{ext}"
end

#pathObject



137
138
139
# File 'lib/ramaze/contrib/sequel/image.rb', line 137

def path
  conf[:path] || conf[:owner].to_s.downcase
end

#public_file(size) ⇒ Object



129
130
131
# File 'lib/ramaze/contrib/sequel/image.rb', line 129

def public_file(size)
  File.join(public_path, filename(size))
end

#public_pathObject



133
134
135
# File 'lib/ramaze/contrib/sequel/image.rb', line 133

def public_path
  File.join(public_root, path)
end

#public_rootObject



150
151
152
# File 'lib/ramaze/contrib/sequel/image.rb', line 150

def public_root
  Ramaze.options.roots.first
end