Skip to content

Commit

Permalink
Md5sum conditionally, simplecov installed
Browse files Browse the repository at this point in the history
  • Loading branch information
gzigzigzeo committed Aug 4, 2013
1 parent 0598fd7 commit 83c7ddb
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 29 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Expand Up @@ -2,4 +2,5 @@
.bundle
Gemfile.lock
pkg/*
tmp/*
tmp/*
coverage
4 changes: 3 additions & 1 deletion README.rdoc
Expand Up @@ -16,7 +16,7 @@ Add the following line to your Gemfile:

storage :file

process :store_meta
process :store_meta => [{md5sum: true}]

version :version do
process :resize_to_fill => [200, 200]
Expand All @@ -33,12 +33,14 @@ Add the following line to your Gemfile:
uploader.image_size # [500, 300]
uploader.file_size # 20000
uploader.content_type # "image/jpeg"
uploader.md5sum # "fuuaasdfasdf...."

uploader.version.width # 200
uploader.version.height # 200
uploader.version.image_size # [200, 200]
uploader.version.file_zie # less than 20000
uploader.version.content_type # "image/jpeg"
uploader.version.md5sum # nil

= Saving values to database

Expand Down
1 change: 1 addition & 0 deletions carrierwave-meta.gemspec
Expand Up @@ -29,4 +29,5 @@ Gem::Specification.new do |s|
s.add_development_dependency(%q<carrierwave-imagesorcery>)
s.add_development_dependency(%q<carrierwave-vips>)
s.add_development_dependency(%q<fog>, '~> 1.3.1')
s.add_development_dependency(%q<simplecov>)
end
19 changes: 11 additions & 8 deletions lib/carrierwave-meta/meta.rb
Expand Up @@ -24,7 +24,7 @@ module Meta
model_delegate_attribute :md5sum, ''
end

def store_meta
def store_meta(options = {})
if self.file.present?
dimensions = get_dimensions
width, height = dimensions
Expand All @@ -33,23 +33,26 @@ def store_meta
self.image_size = dimensions
self.width = width
self.height = height
self.md5sum = Digest::MD5.hexdigest(File.read(self.file.path))
if options[:md5sum]
self.md5sum = Digest::MD5.hexdigest(File.read(self.file.path))
end
end
end

def set_content_type(file = nil)
super(true)
end

def image_size_s
image_size.join('x')
end

private
def call_store_meta(file = nil)
# Re-retrieve metadata for a file only if model is not present OR model is not saved.
# Re-retrieve metadata for a file only if model is not present OR
# model is not saved.
if model.nil? || (model.respond_to?(:new_record?) && model.new_record?)
store_meta
processor_options = processors.
find { |p| p.first == :store_meta }.
try(:[], 1)

store_meta(*processor_options)
end
end

Expand Down
3 changes: 3 additions & 0 deletions spec/modules/meta_spec.rb
Expand Up @@ -56,11 +56,14 @@ def obj_value_name(name, prefix)
def uploader_values_eq(uploader, args)
obj_values_eq(uploader, :original_size, args)
obj_values_eq(uploader.version, :version_size, args)
uploader.md5sum.should_not be_blank
uploader.version.md5sum.should be_blank
end

def model_values_eq(model, args)
obj_values_eq(model, :original_size, args, 'image')
obj_values_eq(model, :version_size, args, 'image_version')
model.image_md5sum.should_not be_blank
end

FORMATS.each do |format, args|
Expand Down
24 changes: 11 additions & 13 deletions spec/spec_helper.rb
@@ -1,13 +1,16 @@
$LOAD_PATH << "." unless $LOAD_PATH.include?(".")

begin
require "bundler"
Bundler.setup
Bundler.require
rescue Bundler::GemNotFound
raise RuntimeError, "Bundler couldn't find some gems." +
"Did you run `bundle install`?"
end
require 'rubygems'
require 'bundler/setup'
require 'simplecov'
require 'mime/types'
require 'carrierwave'
require 'support/remote'
require 'support/current_processor'

SimpleCov.start

require 'carrierwave-meta'

PROCESSOR = (ENV["PROCESSOR"] || :rmagick).to_sym
puts "Using #{PROCESSOR} processor"
Expand All @@ -17,11 +20,6 @@
CarrierWave::Meta.ghostscript_enabled = true
end

require 'mime/types'
require 'carrierwave'
require 'support/remote'
require 'carrierwave-meta'
require 'support/current_processor'
require 'support/test_delegate_uploader'
require 'support/test_blank_uploader'
require 'support/test_uploader'
Expand Down
11 changes: 6 additions & 5 deletions spec/support/test_model.rb
Expand Up @@ -2,20 +2,21 @@ class TestModel
attr_accessor :image_x
attr_accessor :image_version_x
attr_accessor :image_dimensions
attr_accessor :image_version_dimensions
attr_accessor :image_version_dimensions

attr_accessor :image_width
attr_accessor :image_width
attr_accessor :image_height
attr_accessor :image_image_size
attr_accessor :image_image_size
attr_accessor :image_content_type
attr_accessor :image_file_size
attr_accessor :image_md5sum

attr_accessor :image_version_width
attr_accessor :image_version_width
attr_accessor :image_version_height
attr_accessor :image_version_image_size
attr_accessor :image_version_content_type
attr_accessor :image_version_file_size

attr_accessor :destroyed

def destroyed?
Expand Down
2 changes: 1 addition & 1 deletion spec/support/test_uploader.rb
Expand Up @@ -10,7 +10,7 @@ def cache_dir
"tmp/cache"
end

process :store_meta
process :store_meta => [{md5sum: true}]
version :version do
process :resize_to_fill => [200, 200]
process :store_meta
Expand Down

0 comments on commit 83c7ddb

Please sign in to comment.