carrierwave 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of carrierwave might be problematic. Click here for more details.

@@ -1,3 +1,12 @@
1
+ === Version 0.3.4 2009-09-01
2
+
3
+ * [added] `default_url` as a replacement for `default_path`
4
+ * [deprecated] `default_path` is deprecated
5
+
6
+ === Version 0.3.4 2009-08-31
7
+
8
+ * [fixed] Deleting no longer causes TypeError in MongoMapper
9
+
1
10
  === Version 0.3.3 2009-08-29
2
11
 
3
12
  * [added] Support for MongoMapper
@@ -49,6 +49,7 @@ lib/carrierwave/uploader.rb
49
49
  lib/carrierwave/uploader/cache.rb
50
50
  lib/carrierwave/uploader/callbacks.rb
51
51
  lib/carrierwave/uploader/default_path.rb
52
+ lib/carrierwave/uploader/default_url.rb
52
53
  lib/carrierwave/uploader/extension_whitelist.rb
53
54
  lib/carrierwave/uploader/mountable.rb
54
55
  lib/carrierwave/uploader/paths.rb
@@ -78,6 +79,7 @@ spec/sanitized_file_spec.rb
78
79
  spec/spec_helper.rb
79
80
  spec/uploader/cache_spec.rb
80
81
  spec/uploader/default_path_spec.rb
82
+ spec/uploader/default_url_spec.rb
81
83
  spec/uploader/extension_whitelist_spec.rb
82
84
  spec/uploader/mountable_spec.rb
83
85
  spec/uploader/paths_spec.rb
@@ -9,7 +9,7 @@ upload files.
9
9
 
10
10
  == Description
11
11
 
12
- * RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/].
12
+ * RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/rdoc].
13
13
  * Source code {hosted at GitHub}[http://github.com/jnicklas/carrierwave]
14
14
  * Please {report any issues}[http://github.com/jnicklas/carrierwave/issues] on GitHub
15
15
  * Please direct any questions at the {mailing list}[http://groups.google.com/group/carrierwave]
@@ -20,10 +20,6 @@ Install the latest stable release:
20
20
 
21
21
  [sudo] gem install carrierwave
22
22
 
23
- Or the cutting edge development version:
24
-
25
- [sudo] gem install jnicklas-carrierwave --source http://gems.github.com
26
-
27
23
  In Merb, add it as a dependency to your config/dependencies.rb:
28
24
 
29
25
  dependency 'carrierwave'
@@ -71,15 +67,12 @@ simply assign files and get going:
71
67
 
72
68
  === ActiveRecord, DataMapper, Sequel, MongoMapper
73
69
 
74
- If you are *not* using Merb or Rails you'll need to require the relevant ORM
75
- extension.
70
+ Make sure you are loading CarrierWave after loading your ORM, otherwise you'll
71
+ need to require the relevant extension manually, e.g.:
76
72
 
77
73
  require 'carrierwave/orm/activerecord'
78
- require 'carrierwave/orm/datamapper'
79
- require 'carrierwave/orm/sequel'
80
- require 'carrierwave/orm/mongomapper'
81
74
 
82
- Open your model file, for ActiveRecord do something like:
75
+ Open your model file. For ActiveRecord do something like:
83
76
 
84
77
  class User < ActiveRecord::Base
85
78
  mount_uploader :avatar, AvatarUploader
@@ -196,15 +189,15 @@ CarrierWave from writing to the file system by setting
196
189
  `CarrierWave.config[:cache_to_cache_dir] = false`. This will however break
197
190
  redisplays of forms.
198
191
 
199
- == Providing a default path
192
+ == Providing a default URL
200
193
 
201
194
  In many cases, especially when working with images, it might be a good idea to
202
- provide a default path, a fallback in case no file has been uploaded. You can do
203
- this easily by overriding the +default_path+ method in your uploader:
195
+ provide a default url, a fallback in case no file has been uploaded. You can do
196
+ this easily by overriding the +default_url+ method in your uploader:
204
197
 
205
198
  class MyUploader < CarrierWave::Uploader::Base
206
- def default_path
207
- "images/fallback/" + [version_name, "default.png"].compact.join('_')
199
+ def default_url
200
+ "/images/fallback/" + [version_name, "default.png"].compact.join('_')
208
201
  end
209
202
  end
210
203
 
@@ -2,24 +2,24 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{carrierwave}
5
- s.version = "0.3.3"
5
+ s.version = "0.3.5"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jonas Nicklas"]
9
- s.date = %q{2009-08-29}
10
- s.description = %q{* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/].
9
+ s.date = %q{2009-09-01}
10
+ s.description = %q{* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/rdoc].
11
11
  * Source code {hosted at GitHub}[http://github.com/jnicklas/carrierwave]
12
12
  * Please {report any issues}[http://github.com/jnicklas/carrierwave/issues] on GitHub
13
13
  * Please direct any questions at the {mailing list}[http://groups.google.com/group/carrierwave]}
14
14
  s.email = ["jonas.nicklas@gmail.com"]
15
15
  s.extra_rdoc_files = ["History.txt", "Manifest.txt", "features/fixtures/bork.txt", "features/fixtures/monkey.txt", "README.rdoc"]
16
- s.files = ["Generators", "History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "carrierwave.gemspec", "cucumber.yml", "features/caching.feature", "features/file_storage.feature", "features/file_storage_overridden_filename.feature", "features/file_storage_overridden_store_dir.feature", "features/file_storage_reversing_processor.feature", "features/fixtures/bork.txt", "features/fixtures/monkey.txt", "features/mount_activerecord.feature", "features/mount_datamapper.feature", "features/step_definitions/activerecord_steps.rb", "features/step_definitions/caching_steps.rb", "features/step_definitions/datamapper_steps.rb", "features/step_definitions/file_steps.rb", "features/step_definitions/general_steps.rb", "features/step_definitions/mount_steps.rb", "features/step_definitions/store_steps.rb", "features/support/activerecord.rb", "features/support/datamapper.rb", "features/support/env.rb", "features/versions_basics.feature", "features/versions_nested_versions.feature", "features/versions_overridden_filename.feature", "features/versions_overriden_store_dir.feature", "lib/carrierwave.rb", "lib/carrierwave/compatibility/paperclip.rb", "lib/carrierwave/core_ext/blank.rb", "lib/carrierwave/core_ext/inheritable_attributes.rb", "lib/carrierwave/core_ext/module_setup.rb", "lib/carrierwave/mount.rb", "lib/carrierwave/orm/activerecord.rb", "lib/carrierwave/orm/datamapper.rb", "lib/carrierwave/orm/mongomapper.rb", "lib/carrierwave/orm/sequel.rb", "lib/carrierwave/processing/image_science.rb", "lib/carrierwave/processing/rmagick.rb", "lib/carrierwave/sanitized_file.rb", "lib/carrierwave/storage/abstract.rb", "lib/carrierwave/storage/file.rb", "lib/carrierwave/storage/s3.rb", "lib/carrierwave/test/matchers.rb", "lib/carrierwave/uploader.rb", "lib/carrierwave/uploader/cache.rb", "lib/carrierwave/uploader/callbacks.rb", "lib/carrierwave/uploader/default_path.rb", "lib/carrierwave/uploader/extension_whitelist.rb", "lib/carrierwave/uploader/mountable.rb", "lib/carrierwave/uploader/paths.rb", "lib/carrierwave/uploader/processing.rb", "lib/carrierwave/uploader/proxy.rb", "lib/carrierwave/uploader/remove.rb", "lib/carrierwave/uploader/store.rb", "lib/carrierwave/uploader/url.rb", "lib/carrierwave/uploader/versions.rb", "lib/generators/uploader_generator.rb", "rails_generators/uploader/USAGE", "rails_generators/uploader/templates/uploader.rb", "rails_generators/uploader/uploader_generator.rb", "script/console", "script/destroy", "script/generate", "spec/compatibility/paperclip_spec.rb", "spec/fixtures/bork.txt", "spec/fixtures/test.jpeg", "spec/fixtures/test.jpg", "spec/mount_spec.rb", "spec/orm/activerecord_spec.rb", "spec/orm/datamapper_spec.rb", "spec/orm/mongomapper_spec.rb", "spec/orm/sequel_spec.rb", "spec/sanitized_file_spec.rb", "spec/spec_helper.rb", "spec/uploader/cache_spec.rb", "spec/uploader/default_path_spec.rb", "spec/uploader/extension_whitelist_spec.rb", "spec/uploader/mountable_spec.rb", "spec/uploader/paths_spec.rb", "spec/uploader/processing_spec.rb", "spec/uploader/proxy_spec.rb", "spec/uploader/remove_spec.rb", "spec/uploader/store_spec.rb", "spec/uploader/url_spec.rb", "spec/uploader/versions_spec.rb"]
16
+ s.files = ["Generators", "History.txt", "Manifest.txt", "README.rdoc", "Rakefile", "carrierwave.gemspec", "cucumber.yml", "features/caching.feature", "features/file_storage.feature", "features/file_storage_overridden_filename.feature", "features/file_storage_overridden_store_dir.feature", "features/file_storage_reversing_processor.feature", "features/fixtures/bork.txt", "features/fixtures/monkey.txt", "features/mount_activerecord.feature", "features/mount_datamapper.feature", "features/step_definitions/activerecord_steps.rb", "features/step_definitions/caching_steps.rb", "features/step_definitions/datamapper_steps.rb", "features/step_definitions/file_steps.rb", "features/step_definitions/general_steps.rb", "features/step_definitions/mount_steps.rb", "features/step_definitions/store_steps.rb", "features/support/activerecord.rb", "features/support/datamapper.rb", "features/support/env.rb", "features/versions_basics.feature", "features/versions_nested_versions.feature", "features/versions_overridden_filename.feature", "features/versions_overriden_store_dir.feature", "lib/carrierwave.rb", "lib/carrierwave/compatibility/paperclip.rb", "lib/carrierwave/core_ext/blank.rb", "lib/carrierwave/core_ext/inheritable_attributes.rb", "lib/carrierwave/core_ext/module_setup.rb", "lib/carrierwave/mount.rb", "lib/carrierwave/orm/activerecord.rb", "lib/carrierwave/orm/datamapper.rb", "lib/carrierwave/orm/mongomapper.rb", "lib/carrierwave/orm/sequel.rb", "lib/carrierwave/processing/image_science.rb", "lib/carrierwave/processing/rmagick.rb", "lib/carrierwave/sanitized_file.rb", "lib/carrierwave/storage/abstract.rb", "lib/carrierwave/storage/file.rb", "lib/carrierwave/storage/s3.rb", "lib/carrierwave/test/matchers.rb", "lib/carrierwave/uploader.rb", "lib/carrierwave/uploader/cache.rb", "lib/carrierwave/uploader/callbacks.rb", "lib/carrierwave/uploader/default_path.rb", "lib/carrierwave/uploader/default_url.rb", "lib/carrierwave/uploader/extension_whitelist.rb", "lib/carrierwave/uploader/mountable.rb", "lib/carrierwave/uploader/paths.rb", "lib/carrierwave/uploader/processing.rb", "lib/carrierwave/uploader/proxy.rb", "lib/carrierwave/uploader/remove.rb", "lib/carrierwave/uploader/store.rb", "lib/carrierwave/uploader/url.rb", "lib/carrierwave/uploader/versions.rb", "lib/generators/uploader_generator.rb", "rails_generators/uploader/USAGE", "rails_generators/uploader/templates/uploader.rb", "rails_generators/uploader/uploader_generator.rb", "script/console", "script/destroy", "script/generate", "spec/compatibility/paperclip_spec.rb", "spec/fixtures/bork.txt", "spec/fixtures/test.jpeg", "spec/fixtures/test.jpg", "spec/mount_spec.rb", "spec/orm/activerecord_spec.rb", "spec/orm/datamapper_spec.rb", "spec/orm/mongomapper_spec.rb", "spec/orm/sequel_spec.rb", "spec/sanitized_file_spec.rb", "spec/spec_helper.rb", "spec/uploader/cache_spec.rb", "spec/uploader/default_path_spec.rb", "spec/uploader/default_url_spec.rb", "spec/uploader/extension_whitelist_spec.rb", "spec/uploader/mountable_spec.rb", "spec/uploader/paths_spec.rb", "spec/uploader/processing_spec.rb", "spec/uploader/proxy_spec.rb", "spec/uploader/remove_spec.rb", "spec/uploader/store_spec.rb", "spec/uploader/url_spec.rb", "spec/uploader/versions_spec.rb"]
17
17
  s.homepage = %q{http://carrierwave.rubyforge.org}
18
18
  s.rdoc_options = ["--main", "README.rdoc"]
19
19
  s.require_paths = ["lib"]
20
20
  s.rubyforge_project = %q{carrierwave}
21
21
  s.rubygems_version = %q{1.3.5}
22
- s.summary = %q{* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/]}
22
+ s.summary = %q{* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/rdoc]}
23
23
 
24
24
  if s.respond_to? :specification_version then
25
25
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
@@ -7,7 +7,7 @@ require 'carrierwave/core_ext/inheritable_attributes'
7
7
 
8
8
  module CarrierWave
9
9
 
10
- VERSION = "0.3.4"
10
+ VERSION = "0.3.5"
11
11
 
12
12
  class << self
13
13
  attr_accessor :config, :logger
@@ -64,6 +64,7 @@ module CarrierWave
64
64
  autoload :Paths, 'carrierwave/uploader/paths'
65
65
  autoload :ExtensionWhitelist, 'carrierwave/uploader/extension_whitelist'
66
66
  autoload :DefaultPath, 'carrierwave/uploader/default_path'
67
+ autoload :DefaultUrl, 'carrierwave/uploader/default_url'
67
68
  autoload :Proxy, 'carrierwave/uploader/proxy'
68
69
  autoload :Url, 'carrierwave/uploader/url'
69
70
  autoload :Mountable, 'carrierwave/uploader/mountable'
@@ -101,35 +102,23 @@ CarrierWave.config = {
101
102
  }
102
103
  }
103
104
 
104
- if defined?(Merb::Plugins)
105
+ if defined?(Merb)
106
+ CarrierWave.logger = Merb.logger
105
107
  CarrierWave.config[:root] = Merb.root
106
108
  CarrierWave.config[:public] = Merb.dir_for(:public)
109
+ Merb.add_generators File.dirname(__FILE__) / 'generators' / 'uploader_generator'
107
110
 
108
111
  Merb::BootLoader.before_app_loads do
109
- # Set logger
110
- CarrierWave.logger ||= Merb.logger
111
112
  # Setup path for uploaders and load all of them before classes are loaded
112
113
  Merb.push_path(:uploaders, Merb.root / 'app' / 'uploaders', '*.rb')
113
114
  Dir.glob(File.join(Merb.load_paths[:uploaders])).each {|f| require f }
114
115
  end
115
116
 
116
- orm_path = File.dirname(__FILE__) / 'carrierwave' / 'orm' / Merb.orm
117
- require orm_path if File.exist?(orm_path + '.rb')
118
-
119
- Merb.add_generators File.dirname(__FILE__) / 'generators' / 'uploader_generator'
120
-
121
117
  elsif defined?(Rails)
122
- begin
123
- CarrierWave.logger = Rails.logger
124
- rescue
125
- # Rails < 2.1
126
- CarrierWave.logger = RAILS_DEFAULT_LOGGER
127
- end
118
+ CarrierWave.logger = Rails.logger
128
119
  CarrierWave.config[:root] = Rails.root
129
120
  CarrierWave.config[:public] = File.join(Rails.root, 'public')
130
121
 
131
- require File.join(File.dirname(__FILE__), "carrierwave", "orm", 'activerecord')
132
-
133
122
  ActiveSupport::Dependencies.load_paths << File.join(Rails.root, "app", "uploaders")
134
123
 
135
124
  elsif defined?(Sinatra)
@@ -139,7 +128,8 @@ elsif defined?(Sinatra)
139
128
 
140
129
  end
141
130
 
142
- # MongoMapper is framework agnostic so we could need this in any environment.
143
- if defined?(MongoMapper)
144
- require File.join(File.dirname(__FILE__), "carrierwave", "orm", "mongomapper")
145
- end
131
+
132
+ require File.join(File.dirname(__FILE__), "carrierwave", "orm", 'activerecord') if defined?(ActiveRecord)
133
+ require File.join(File.dirname(__FILE__), "carrierwave", "orm", 'datamapper') if defined?(DataMapper)
134
+ require File.join(File.dirname(__FILE__), "carrierwave", "orm", 'sequel') if defined?(Sequel)
135
+ require File.join(File.dirname(__FILE__), "carrierwave", "orm", "mongomapper") if defined?(MongoMapper)
@@ -37,6 +37,7 @@ module CarrierWave
37
37
  use CarrierWave::Uploader::DefaultPath
38
38
  use CarrierWave::Uploader::Processing
39
39
  use CarrierWave::Uploader::Versions
40
+ use CarrierWave::Uploader::DefaultUrl
40
41
  end # Base
41
42
 
42
43
  end # Uploader
@@ -7,6 +7,7 @@ module CarrierWave
7
7
  def initialize(*args)
8
8
  super
9
9
  if default_path
10
+ puts "WARNING: Default Path is deprecated and will be removed in CarrierWave 0.4. Please use default_url instead!"
10
11
  @file = CarrierWave::SanitizedFile.new(File.expand_path(default_path, public))
11
12
  def @file.blank?; true; end
12
13
  end
@@ -0,0 +1,19 @@
1
+ # encoding: utf-8
2
+
3
+ module CarrierWave
4
+ module Uploader
5
+ module DefaultUrl
6
+
7
+ def url(*args)
8
+ super || default_url
9
+ end
10
+
11
+ ##
12
+ # Override this method in your uploader to provide a default url
13
+ # in case no file has been cached/stored yet.
14
+ #
15
+ def default_url; end
16
+
17
+ end # DefaultPath
18
+ end # Uploader
19
+ end # CarrierWave
@@ -0,0 +1,85 @@
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/../spec_helper'
4
+
5
+ describe CarrierWave::Uploader do
6
+
7
+ before do
8
+ @uploader_class = Class.new(CarrierWave::Uploader::Base)
9
+ @uploader = @uploader_class.new
10
+ end
11
+
12
+ after do
13
+ FileUtils.rm_rf(public_path)
14
+ end
15
+
16
+ describe 'with a default url' do
17
+ before do
18
+ @uploader_class.class_eval do
19
+ version :thumb
20
+ def default_url
21
+ ["http://someurl.example.com", version_name].compact.join('/')
22
+ end
23
+ end
24
+ @uploader = @uploader_class.new
25
+ end
26
+
27
+ describe '#blank?' do
28
+ it "should be true by default" do
29
+ @uploader.should be_blank
30
+ end
31
+ end
32
+
33
+ describe '#current_path' do
34
+ it "should return nil" do
35
+ @uploader.current_path.should be_nil
36
+ end
37
+ end
38
+
39
+ describe '#url' do
40
+ it "should return the default url" do
41
+ @uploader.url.should == 'http://someurl.example.com'
42
+ end
43
+
44
+ it "should return the default url with version when given" do
45
+ @uploader.url(:thumb).should == 'http://someurl.example.com/thumb'
46
+ end
47
+ end
48
+
49
+ describe '#cache!' do
50
+
51
+ before do
52
+ CarrierWave.stub!(:generate_cache_id).and_return('20071201-1234-345-2255')
53
+ end
54
+
55
+ it "should cache a file" do
56
+ @uploader.cache!(File.open(file_path('test.jpg')))
57
+ @uploader.file.should be_an_instance_of(CarrierWave::SanitizedFile)
58
+ end
59
+
60
+ it "should be cached" do
61
+ @uploader.cache!(File.open(file_path('test.jpg')))
62
+ @uploader.should be_cached
63
+ end
64
+
65
+ it "should no longer be blank" do
66
+ @uploader.cache!(File.open(file_path('test.jpg')))
67
+ @uploader.should_not be_blank
68
+ end
69
+
70
+ it "should set the current_path" do
71
+ @uploader.cache!(File.open(file_path('test.jpg')))
72
+ @uploader.current_path.should == public_path('uploads/tmp/20071201-1234-345-2255/test.jpg')
73
+ end
74
+
75
+ it "should set the url" do
76
+ @uploader.cache!(File.open(file_path('test.jpg')))
77
+ @uploader.url.should_not == 'http://someurl.example.com'
78
+ @uploader.url.should == '/uploads/tmp/20071201-1234-345-2255/test.jpg'
79
+ end
80
+
81
+ end
82
+
83
+ end
84
+
85
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Nicklas
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-30 00:00:00 +02:00
12
+ date: 2009-09-01 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -113,7 +113,7 @@ dependencies:
113
113
  version: 2.3.3
114
114
  version:
115
115
  description: |-
116
- * RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/].
116
+ * RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/rdoc].
117
117
  * Source code {hosted at GitHub}[http://github.com/jnicklas/carrierwave]
118
118
  * Please {report any issues}[http://github.com/jnicklas/carrierwave/issues] on GitHub
119
119
  * Please direct any questions at the {mailing list}[http://groups.google.com/group/carrierwave]
@@ -181,6 +181,7 @@ files:
181
181
  - lib/carrierwave/uploader/cache.rb
182
182
  - lib/carrierwave/uploader/callbacks.rb
183
183
  - lib/carrierwave/uploader/default_path.rb
184
+ - lib/carrierwave/uploader/default_url.rb
184
185
  - lib/carrierwave/uploader/extension_whitelist.rb
185
186
  - lib/carrierwave/uploader/mountable.rb
186
187
  - lib/carrierwave/uploader/paths.rb
@@ -210,6 +211,7 @@ files:
210
211
  - spec/spec_helper.rb
211
212
  - spec/uploader/cache_spec.rb
212
213
  - spec/uploader/default_path_spec.rb
214
+ - spec/uploader/default_url_spec.rb
213
215
  - spec/uploader/extension_whitelist_spec.rb
214
216
  - spec/uploader/mountable_spec.rb
215
217
  - spec/uploader/paths_spec.rb
@@ -247,6 +249,6 @@ rubyforge_project: carrierwave
247
249
  rubygems_version: 1.3.5
248
250
  signing_key:
249
251
  specification_version: 3
250
- summary: "* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/]"
252
+ summary: "* RDoc Documentation {available at Rubyforge}[http://carrierwave.rubyforge.org/rdoc]"
251
253
  test_files: []
252
254