miloops-attachment_fu 3.2.6 → 3.2.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -9,15 +9,15 @@ module Technoweenie # :nodoc:
9
9
  #
10
10
  # == Requirements
11
11
  #
12
- # Requires the {Cloud Files Gem}[http://www.mosso.com/cloudfiles.jsp] by Rackspace
12
+ # Requires the {Cloud Files Gem}[http://www.mosso.com/cloudfiles.jsp] by Rackspace
13
13
  #
14
14
  # == Configuration
15
15
  #
16
- # Configuration is done via <tt>RAILS_ROOT/config/rackspace_cloudfiles.yml</tt> and is loaded according to the <tt>RAILS_ENV</tt>.
16
+ # Configuration is done via <tt>Rails.root/config/rackspace_cloudfiles.yml</tt> and is loaded according to the <tt>Rails.env</tt>.
17
17
  # The minimum connection options that you must specify are a container name, your Mosso login name and your Mosso API key.
18
- # You can sign up for Cloud Files and get access keys by visiting https://www.mosso.com/buy.htm
18
+ # You can sign up for Cloud Files and get access keys by visiting https://www.mosso.com/buy.htm
19
19
  #
20
- # Example configuration (RAILS_ROOT/config/rackspace_cloudfiles.yml)
20
+ # Example configuration (Rails.root/config/rackspace_cloudfiles.yml)
21
21
  #
22
22
  # development:
23
23
  # container_name: appname_development
@@ -36,7 +36,7 @@ module Technoweenie # :nodoc:
36
36
  #
37
37
  # You can change the location of the config path by passing a full path to the :cloudfiles_config_path option.
38
38
  #
39
- # has_attachment :storage => :cloud_files, :cloudfiles_config_path => (RAILS_ROOT + '/config/mosso.yml')
39
+ # has_attachment :storage => :cloud_files, :cloudfiles_config_path => (Rails.root + '/config/mosso.yml')
40
40
  #
41
41
  # === Required configuration parameters
42
42
  #
@@ -116,8 +116,8 @@ module Technoweenie # :nodoc:
116
116
  end
117
117
 
118
118
  begin
119
- @@cloudfiles_config_path = base.attachment_options[:cloudfiles_config_path] || (RAILS_ROOT + '/config/rackspace_cloudfiles.yml')
120
- @@cloudfiles_config = @@cloudfiles_config = YAML.load(ERB.new(File.read(@@cloudfiles_config_path)).result)[RAILS_ENV].symbolize_keys
119
+ @@cloudfiles_config_path = base.attachment_options[:cloudfiles_config_path] || (Rails.root + '/config/rackspace_cloudfiles.yml')
120
+ @@cloudfiles_config = @@cloudfiles_config = YAML.load(ERB.new(File.read(@@cloudfiles_config_path)).result)[Rails.env].symbolize_keys
121
121
  rescue
122
122
  #raise ConfigFileNotFoundError.new('File %s not found' % @@cloudfiles_config_path)
123
123
  end
@@ -125,7 +125,7 @@ module Technoweenie # :nodoc:
125
125
  @@container_name = @@cloudfiles_config[:container_name]
126
126
  @@cf = CloudFiles::Connection.new(@@cloudfiles_config[:username], @@cloudfiles_config[:api_key])
127
127
  @@container = @@cf.container(@@container_name)
128
-
128
+
129
129
  base.before_update :rename_file
130
130
  end
131
131
 
@@ -9,12 +9,12 @@ module Technoweenie # :nodoc:
9
9
  def self.included(base) #:nodoc:
10
10
  base.before_update :rename_file
11
11
  end
12
-
12
+
13
13
  # Gets the full path to the filename in this format:
14
14
  #
15
15
  # # This assumes a model name like MyModel
16
- # # public/#{table_name} is the default filesystem path
17
- # RAILS_ROOT/public/my_models/5/blah.jpg
16
+ # # public/#{table_name} is the default filesystem path
17
+ # Rails.root/public/my_models/5/blah.jpg
18
18
  #
19
19
  # Overwrite this method in your model to customize the filename.
20
20
  # The optional thumbnail argument will output the thumbnail's filename.
@@ -22,17 +22,17 @@ module Technoweenie # :nodoc:
22
22
  file_system_path = (thumbnail ? thumbnail_class : self).attachment_options[:path_prefix].to_s
23
23
  Rails.root.join( file_system_path, *partitioned_path(thumbnail_name_for(thumbnail))).to_s
24
24
  end
25
-
25
+
26
26
  # Used as the base path that #public_filename strips off full_filename to create the public path
27
27
  def base_path
28
28
  @base_path ||= Rails.root.join('public').to_s
29
29
  end
30
-
30
+
31
31
  # The attachment ID used in the full path of a file
32
32
  def attachment_path_id
33
33
  ((respond_to?(:parent_id) && parent_id) || id) || 0
34
34
  end
35
-
35
+
36
36
  # Partitions the given path into an array of path components.
37
37
  #
38
38
  # For example, given an <tt>*args</tt> of ["foo", "bar"], it will return
@@ -42,10 +42,10 @@ module Technoweenie # :nodoc:
42
42
  # hashing the string value of the id with SHA-512, and splitting the result
43
43
  # into 4 components. If the id a 128-bit UUID (as set by :uuid_primary_key => true)
44
44
  # then it will be split into 2 components.
45
- #
45
+ #
46
46
  # To turn this off entirely, set :partition => false.
47
47
  def partitioned_path(*args)
48
- if respond_to?(:attachment_options) && attachment_options[:partition] == false
48
+ if respond_to?(:attachment_options) && attachment_options[:partition] == false
49
49
  args
50
50
  elsif attachment_options[:uuid_primary_key]
51
51
  # Primary key is a 128-bit UUID in hex format. Split it into 2 components.
@@ -65,13 +65,13 @@ module Technoweenie # :nodoc:
65
65
  end
66
66
  end
67
67
  end
68
-
68
+
69
69
  # Gets the public path to the file
70
70
  # The optional thumbnail argument will output the thumbnail's filename.
71
71
  def public_filename(thumbnail = nil)
72
72
  full_filename(thumbnail).gsub %r(^#{Regexp.escape(base_path)}), ''
73
73
  end
74
-
74
+
75
75
  def filename=(value)
76
76
  @old_filename = full_filename unless filename.nil? || @old_filename
77
77
  write_attribute :filename, sanitize_filename(value)
@@ -104,7 +104,7 @@ module Technoweenie # :nodoc:
104
104
  @old_filename = nil
105
105
  true
106
106
  end
107
-
107
+
108
108
  # Saves the file to the file system
109
109
  def save_to_storage
110
110
  if save_attachment?
@@ -116,7 +116,7 @@ module Technoweenie # :nodoc:
116
116
  @old_filename = nil
117
117
  true
118
118
  end
119
-
119
+
120
120
  def current_data
121
121
  File.file?(full_filename) ? File.read(full_filename) : nil
122
122
  end
@@ -12,7 +12,7 @@ module Technoweenie # :nodoc:
12
12
  #
13
13
  # == Configuration
14
14
  #
15
- # Configuration is done via <tt>RAILS_ROOT/config/amazon_s3.yml</tt> and is loaded according to the <tt>RAILS_ENV</tt>.
15
+ # Configuration is done via <tt>Rails.root/config/amazon_s3.yml</tt> and is loaded according to the <tt>RAILS_ENV</tt>.
16
16
  # The minimum connection options that you must specify are a bucket name, your access key id and your secret access key.
17
17
  # If you don't already have your access keys, all you need to sign up for the S3 service is an account at Amazon.
18
18
  # You can sign up for S3 and get access keys by visiting http://aws.amazon.com/s3.
@@ -20,7 +20,7 @@ module Technoweenie # :nodoc:
20
20
  # If you wish to use Amazon CloudFront to serve the files, you can also specify a distibution domain for the bucket.
21
21
  # To read more about CloudFront, visit http://aws.amazon.com/cloudfront
22
22
  #
23
- # Example configuration (RAILS_ROOT/config/amazon_s3.yml)
23
+ # Example configuration (Rails.root/config/amazon_s3.yml)
24
24
  #
25
25
  # development:
26
26
  # bucket_name: appname_development
@@ -42,7 +42,7 @@ module Technoweenie # :nodoc:
42
42
  #
43
43
  # You can change the location of the config path by passing a full path to the :s3_config_path option.
44
44
  #
45
- # has_attachment :storage => :s3, :s3_config_path => (RAILS_ROOT + '/config/s3.yml')
45
+ # has_attachment :storage => :s3, :s3_config_path => (Rails.root + '/config/s3.yml')
46
46
  #
47
47
  # === Required configuration parameters
48
48
  #
@@ -158,9 +158,9 @@ module Technoweenie # :nodoc:
158
158
  #
159
159
  # Niether <tt>base_path</tt> or <tt>full_filename</tt> include the bucket name as part of the path.
160
160
  # You can retrieve the bucket name using the <tt>bucket_name</tt> method.
161
- #
161
+ #
162
162
  # === Accessing CloudFront URLs
163
- #
163
+ #
164
164
  # You can get an object's CloudFront URL using the cloudfront_url accessor. Using the example from above:
165
165
  # @postcard.cloudfront_url # => http://XXXX.cloudfront.net/photos/1/mexico.jpg
166
166
  #
@@ -183,7 +183,7 @@ module Technoweenie # :nodoc:
183
183
  end
184
184
 
185
185
  begin
186
- @@s3_config_path = base.attachment_options[:s3_config_path] || (RAILS_ROOT + '/config/amazon_s3.yml')
186
+ @@s3_config_path = base.attachment_options[:s3_config_path] || (Rails.root + '/config/amazon_s3.yml')
187
187
  @@s3_config = @@s3_config = YAML.load(ERB.new(File.read(@@s3_config_path)).result)[RAILS_ENV].symbolize_keys
188
188
  #rescue
189
189
  # raise ConfigFileNotFoundError.new('File %s not found' % @@s3_config_path)
@@ -216,7 +216,7 @@ module Technoweenie # :nodoc:
216
216
  def self.port_string
217
217
  @port_string ||= (s3_config[:port].nil? || s3_config[:port] == (s3_config[:use_ssl] ? 443 : 80)) ? '' : ":#{s3_config[:port]}"
218
218
  end
219
-
219
+
220
220
  def self.distribution_domain
221
221
  @distribution_domain = s3_config[:distribution_domain]
222
222
  end
@@ -233,7 +233,7 @@ module Technoweenie # :nodoc:
233
233
  def s3_port_string
234
234
  Technoweenie::AttachmentFu::Backends::S3Backend.port_string
235
235
  end
236
-
236
+
237
237
  def cloudfront_distribution_domain
238
238
  Technoweenie::AttachmentFu::Backends::S3Backend.distribution_domain
239
239
  end
@@ -269,26 +269,26 @@ module Technoweenie # :nodoc:
269
269
  #
270
270
  # The resulting url is in the form: <tt>http(s)://:server/:bucket_name/:table_name/:id/:file</tt> where
271
271
  # the <tt>:server</tt> variable defaults to <tt>AWS::S3 URL::DEFAULT_HOST</tt> (s3.amazonaws.com) and can be
272
- # set using the configuration parameters in <tt>RAILS_ROOT/config/amazon_s3.yml</tt>.
272
+ # set using the configuration parameters in <tt>Rails.root/config/amazon_s3.yml</tt>.
273
273
  #
274
274
  # The optional thumbnail argument will output the thumbnail's filename (if any).
275
275
  def s3_url(thumbnail = nil)
276
276
  File.join(s3_protocol + s3_hostname + s3_port_string, bucket_name, full_filename(thumbnail))
277
277
  end
278
-
278
+
279
279
  # All public objects are accessible via a GET request to CloudFront. You can generate a
280
280
  # url for an object using the cloudfront_url method.
281
281
  #
282
282
  # @photo.cloudfront_url
283
283
  #
284
284
  # The resulting url is in the form: <tt>http://:distribution_domain/:table_name/:id/:file</tt> using
285
- # the <tt>:distribution_domain</tt> variable set in the configuration parameters in <tt>RAILS_ROOT/config/amazon_s3.yml</tt>.
285
+ # the <tt>:distribution_domain</tt> variable set in the configuration parameters in <tt>Rails.root/config/amazon_s3.yml</tt>.
286
286
  #
287
287
  # The optional thumbnail argument will output the thumbnail's filename (if any).
288
288
  def cloudfront_url(thumbnail = nil)
289
289
  "http://" + cloudfront_distribution_domain + "/" + full_filename(thumbnail)
290
290
  end
291
-
291
+
292
292
  def public_filename(*args)
293
293
  if attachment_options[:cloudfront]
294
294
  cloudfront_url(args)
@@ -347,7 +347,7 @@ module Technoweenie # :nodoc:
347
347
  def s3_port_string
348
348
  Technoweenie::AttachmentFu::Backends::S3Backend.port_string
349
349
  end
350
-
350
+
351
351
  def cloudfront_distribution_domain
352
352
  Technoweenie::AttachmentFu::Backends::S3Backend.distribution_domain
353
353
  end
data/test/test_helper.rb CHANGED
@@ -2,10 +2,10 @@
2
2
  $:.unshift(File.dirname(__FILE__) + '/../lib')
3
3
 
4
4
  ENV['RAILS_ENV'] = 'test'
5
- ENV['RAILS_ROOT'] ||= File.dirname(__FILE__) + '/../../../..'
5
+ ENV['Rails.root'] ||= File.dirname(__FILE__) + '/../../../..'
6
6
 
7
7
  require 'test/unit'
8
- require File.expand_path(File.join(ENV['RAILS_ROOT'], 'config/environment.rb'))
8
+ require File.expand_path(File.join(ENV['Rails.root'], 'config/environment.rb'))
9
9
 
10
10
  config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml'))
11
11
  ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
@@ -13,7 +13,7 @@ ActiveRecord::Base.logger = Logger.new(File.dirname(__FILE__) + "/debug.log")
13
13
  db_adapter = ENV['DB']
14
14
 
15
15
  # no db passed, try one of these fine config-free DBs before bombing.
16
- db_adapter ||=
16
+ db_adapter ||=
17
17
  begin
18
18
  require 'rubygems'
19
19
  require 'sqlite'
@@ -52,7 +52,7 @@ class Test::Unit::TestCase #:nodoc:
52
52
  DbFile.transaction { [Attachment, FileAttachment, OrphanAttachment, MinimalAttachment, DbFile].each { |klass| klass.delete_all } }
53
53
  attachment_model self.class.attachment_model
54
54
  end
55
-
55
+
56
56
  def teardown
57
57
  FileUtils.rm_rf File.join(File.dirname(__FILE__), 'files')
58
58
  # Files generated by random_tempfile_filename
@@ -63,7 +63,7 @@ class Test::Unit::TestCase #:nodoc:
63
63
  #self.use_instantiated_fixtures = false
64
64
 
65
65
  def self.attachment_model(klass = nil)
66
- @attachment_model = klass if klass
66
+ @attachment_model = klass if klass
67
67
  @attachment_model
68
68
  end
69
69
 
@@ -97,7 +97,7 @@ class Test::Unit::TestCase #:nodoc:
97
97
  return att
98
98
  end
99
99
  end
100
-
100
+
101
101
  def use_temp_file(fixture_filename)
102
102
  temp_path = File.join('/tmp', File.basename(fixture_filename))
103
103
  temp_dir = File.join(FIXTURE_PATH, 'tmp')
@@ -121,10 +121,10 @@ class Test::Unit::TestCase #:nodoc:
121
121
  end
122
122
  end
123
123
 
124
- def assert_valid(record)
124
+ def assert_valid(record)
125
125
  assert record.valid?, record.errors.full_messages.join("\n")
126
- end
127
-
126
+ end
127
+
128
128
  def assert_file_jpeg_quality(model, thumbnail, expected)
129
129
  filename = if model.respond_to?(:full_filename)
130
130
  model.full_filename(thumbnail)
@@ -145,11 +145,11 @@ class Test::Unit::TestCase #:nodoc:
145
145
  STDERR.puts "ImageMagick's identify not found / not in PATH: can't quickly check produced image quality."
146
146
  end
147
147
  end
148
-
148
+
149
149
  def assert_not_created
150
150
  assert_created(0) { yield }
151
151
  end
152
-
152
+
153
153
  def should_reject_by_size_with(klass)
154
154
  attachment_model klass
155
155
  assert_not_created do
@@ -159,22 +159,22 @@ class Test::Unit::TestCase #:nodoc:
159
159
  assert_nil attachment.db_file if attachment.respond_to?(:db_file)
160
160
  end
161
161
  end
162
-
162
+
163
163
  def assert_difference(object, method = nil, difference = 1)
164
164
  initial_value = object.send(method)
165
165
  yield
166
166
  assert_equal initial_value + difference, object.send(method)
167
167
  end
168
-
168
+
169
169
  def assert_no_difference(object, method, &block)
170
170
  assert_difference object, method, 0, &block
171
171
  end
172
-
172
+
173
173
  def attachment_model(klass = nil)
174
- @attachment_model = klass if klass
174
+ @attachment_model = klass if klass
175
175
  @attachment_model
176
176
  end
177
177
  end
178
178
 
179
179
  require File.join(File.dirname(__FILE__), 'fixtures/attachment')
180
- require File.join(File.dirname(__FILE__), 'base_attachment_tests')
180
+ require File.join(File.dirname(__FILE__), 'base_attachment_tests')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miloops-attachment_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.6
4
+ version: 3.2.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: