dynamic_image 0.9.5 → 0.9.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/config/routes.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  # Rails 3 routes
2
2
  Rails.application.routes.draw do
3
- match "dynamic_images/:id/:original(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/, :original => /original/
4
- match "dynamic_images/:id(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/
5
- # Legacy
6
- match "dynamic_image/:id/:original(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/, :original => /original/
7
- match "dynamic_image/:id(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/
3
+ match "dynamic_images/:id/:original(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/, :original => /original/
4
+ match "dynamic_images/:id(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/
5
+ # Legacy
6
+ match "dynamic_image/:id/:original(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/, :original => /original/
7
+ match "dynamic_image/:id(/:size(/:filterset))/*filename" => "images#render_dynamic_image", :size => /\d*x\d*/
8
8
  end
9
9
 
10
10
  # Rails 2 routes
@@ -1,56 +1,50 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{dynamic_image}
8
- s.version = "0.9.5"
7
+ s.name = "dynamic_image"
8
+ s.version = "0.9.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Inge J\303\270rgensen"]
12
- s.date = %q{2011-06-24}
13
- s.email = %q{inge@elektronaut.no}
12
+ s.date = "2012-09-25"
13
+ s.email = "inge@elektronaut.no"
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
16
- "README.rdoc"
16
+ "README.rdoc"
17
17
  ]
18
18
  s.files = [
19
19
  "LICENSE",
20
- "README.rdoc",
21
- "Rakefile",
22
- "VERSION",
23
- "app/controllers/images_controller.rb",
24
- "app/models/image.rb",
25
- "config/routes.rb",
26
- "dynamic_image.gemspec",
27
- "init.rb",
28
- "install.rb",
29
- "lib/binary_storage.rb",
30
- "lib/binary_storage/active_record_extensions.rb",
31
- "lib/binary_storage/blob.rb",
32
- "lib/dynamic_image.rb",
33
- "lib/dynamic_image/active_record_extensions.rb",
34
- "lib/dynamic_image/engine.rb",
35
- "lib/dynamic_image/filterset.rb",
36
- "lib/dynamic_image/helper.rb",
37
- "lib/generators/dynamic_image/USAGE",
38
- "lib/generators/dynamic_image/dynamic_image_generator.rb",
39
- "lib/generators/dynamic_image/templates/migrations/create_images.rb",
40
- "uninstall.rb"
20
+ "README.rdoc",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "app/controllers/images_controller.rb",
24
+ "app/models/image.rb",
25
+ "config/routes.rb",
26
+ "dynamic_image.gemspec",
27
+ "init.rb",
28
+ "install.rb",
29
+ "lib/binary_storage.rb",
30
+ "lib/binary_storage/active_record_extensions.rb",
31
+ "lib/binary_storage/blob.rb",
32
+ "lib/dynamic_image.rb",
33
+ "lib/dynamic_image/active_record_extensions.rb",
34
+ "lib/dynamic_image/engine.rb",
35
+ "lib/dynamic_image/filterset.rb",
36
+ "lib/dynamic_image/helper.rb",
37
+ "lib/generators/dynamic_image/USAGE",
38
+ "lib/generators/dynamic_image/dynamic_image_generator.rb",
39
+ "lib/generators/dynamic_image/templates/migrations/create_images.rb",
40
+ "uninstall.rb"
41
41
  ]
42
- s.homepage = %q{http://github.com/elektronaut/dynamic_image}
43
- s.rdoc_options = ["--charset=UTF-8"]
42
+ s.homepage = "http://github.com/elektronaut/dynamic_image"
44
43
  s.require_paths = ["lib"]
45
- s.rubygems_version = %q{1.3.7}
46
- s.summary = %q{DynamicImage is a rails plugin providing transparent uploading and processing of image files.}
47
- s.test_files = [
48
- "test/dynamic_image_test.rb",
49
- "test/test_helper.rb"
50
- ]
44
+ s.rubygems_version = "1.8.24"
45
+ s.summary = "DynamicImage is a rails plugin providing transparent uploading and processing of image files."
51
46
 
52
47
  if s.respond_to? :specification_version then
53
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
54
48
  s.specification_version = 3
55
49
 
56
50
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
data/init.rb CHANGED
@@ -1 +1 @@
1
- require 'dynamic_image'
1
+ require 'dynamic_image'
@@ -8,21 +8,21 @@ require File.join(File.dirname(__FILE__), 'binary_storage/active_record_extensio
8
8
  require File.join(File.dirname(__FILE__), 'binary_storage/blob')
9
9
 
10
10
  module BinaryStorage
11
- class << self
12
- def storage_dir
13
- @@storage_dir ||= Rails.root.join('db/binary_storage', Rails.env)
14
- end
15
-
16
- def storage_dir=(new_storage_dir)
17
- @@storage_dir = new_storage_dir
18
- end
19
-
20
- def hexdigest_file(path)
21
- Digest::SHA1.file(path).hexdigest
22
- end
11
+ class << self
12
+ def storage_dir
13
+ @@storage_dir ||= Rails.root.join('db/binary_storage', Rails.env)
14
+ end
15
+
16
+ def storage_dir=(new_storage_dir)
17
+ @@storage_dir = new_storage_dir
18
+ end
19
+
20
+ def hexdigest_file(path)
21
+ Digest::SHA1.file(path).hexdigest
22
+ end
23
23
 
24
- def hexdigest(string)
25
- Digest::SHA1.hexdigest(string)
26
- end
27
- end
24
+ def hexdigest(string)
25
+ Digest::SHA1.hexdigest(string)
26
+ end
27
+ end
28
28
  end
@@ -1,144 +1,144 @@
1
1
  require 'binary_storage'
2
2
 
3
3
  module BinaryStorage
4
- module ActiveRecordExtensions
4
+ module ActiveRecordExtensions
5
5
 
6
- def self.included(base)
7
- base.send(:extend, BinaryStorage::ActiveRecordExtensions::ClassMethods)
8
- end
9
-
10
- module ClassMethods
11
-
12
- def register_binary(klass, binary_name, binary_column)
13
- @@binary_columns ||= {}
14
- @@binary_columns[klass] ||= {}
15
- @@binary_columns[klass][binary_name] = binary_column
16
- end
17
-
18
- def binary_column(klass, binary_name)
19
- if @@binary_columns && @@binary_columns[klass] && @@binary_columns[klass][binary_name]
20
- @@binary_columns[klass][binary_name]
21
- else
22
- nil
23
- end
24
- end
25
-
26
- # Count existing references to a binary
27
- def binary_reference_count(hash_string)
28
- references = 0
29
- if @@binary_columns
30
- @@binary_columns.each do |klass, binaries|
31
- binaries.each do |binary_name, binary_column|
32
- references += klass.count(:all, :conditions => ["`#{binary_column} = ?`", hash_string])
33
- end
34
- end
35
- end
36
- end
37
-
38
- def binary_storage(binary_name, binary_column)
39
- binary_name = binary_name.to_s
40
- binary_column = binary_column.to_s
6
+ def self.included(base)
7
+ base.send(:extend, BinaryStorage::ActiveRecordExtensions::ClassMethods)
8
+ end
9
+
10
+ module ClassMethods
11
+
12
+ def register_binary(klass, binary_name, binary_column)
13
+ @@binary_columns ||= {}
14
+ @@binary_columns[klass] ||= {}
15
+ @@binary_columns[klass][binary_name] = binary_column
16
+ end
17
+
18
+ def binary_column(klass, binary_name)
19
+ if @@binary_columns && @@binary_columns[klass] && @@binary_columns[klass][binary_name]
20
+ @@binary_columns[klass][binary_name]
21
+ else
22
+ nil
23
+ end
24
+ end
25
+
26
+ # Count existing references to a binary
27
+ def binary_reference_count(hash_string)
28
+ references = 0
29
+ if @@binary_columns
30
+ @@binary_columns.each do |klass, binaries|
31
+ binaries.each do |binary_name, binary_column|
32
+ references += klass.count(:all, :conditions => ["`#{binary_column} = ?`", hash_string])
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ def binary_storage(binary_name, binary_column)
39
+ binary_name = binary_name.to_s
40
+ binary_column = binary_column.to_s
41
41
 
42
- register_binary(self, binary_name, binary_column)
42
+ register_binary(self, binary_name, binary_column)
43
43
 
44
- class_eval <<-end_eval
45
- before_save do |binary_model|
46
- binary_model.save_binary("#{binary_name}")
47
- end
48
-
49
- after_destroy do |model|
50
- binary_model.destroy_binary("#{binary_name}")
51
- end
44
+ class_eval <<-end_eval
45
+ before_save do |binary_model|
46
+ binary_model.save_binary("#{binary_name}")
47
+ end
48
+
49
+ after_destroy do |model|
50
+ binary_model.destroy_binary("#{binary_name}")
51
+ end
52
52
 
53
- def #{binary_name}
54
- self.get_binary_data("#{binary_name}")
55
- end
53
+ def #{binary_name}
54
+ self.get_binary_data("#{binary_name}")
55
+ end
56
56
 
57
- def #{binary_name}=(binary_data)
58
- self.set_binary_data("#{binary_name}", binary_data)
59
- end
57
+ def #{binary_name}=(binary_data)
58
+ self.set_binary_data("#{binary_name}", binary_data)
59
+ end
60
60
 
61
- def #{binary_name}?
62
- self.has_binary_data?("#{binary_name}")
63
- end
64
- end_eval
61
+ def #{binary_name}?
62
+ self.has_binary_data?("#{binary_name}")
63
+ end
64
+ end_eval
65
65
 
66
- send(:include, BinaryStorage::ActiveRecordExtensions::InstanceMethods)
67
- end
68
- end
69
-
70
- module InstanceMethods
71
-
72
- def binaries
73
- @binaries ||= {}
74
- end
66
+ send(:include, BinaryStorage::ActiveRecordExtensions::InstanceMethods)
67
+ end
68
+ end
69
+
70
+ module InstanceMethods
71
+
72
+ def binaries
73
+ @binaries ||= {}
74
+ end
75
75
 
76
- def binary_column(binary_name)
77
- if column_name = self.class.binary_column(self.class, binary_name)
78
- column_name
79
- else
80
- raise "Binary column #{binary_name} not defined!"
81
- end
82
- end
83
-
84
- def binary_hash_string(binary_name)
85
- self.attributes[binary_column(binary_name)]
86
- end
76
+ def binary_column(binary_name)
77
+ if column_name = self.class.binary_column(self.class, binary_name)
78
+ column_name
79
+ else
80
+ raise "Binary column #{binary_name} not defined!"
81
+ end
82
+ end
83
+
84
+ def binary_hash_string(binary_name)
85
+ self.attributes[binary_column(binary_name)]
86
+ end
87
87
 
88
- def save_binary(binary_name)
89
- if binaries.has_key?(binary_name)
90
- if binary = binaries[binary_name]
91
- binary.save
92
- self.attributes = self.attributes.merge({binary_column(binary_name).to_sym => binary.hash_string})
93
- else
94
- self.attributes = self.attributes.merge({binary_column(binary_name).to_sym => nil})
95
- end
96
- end
97
- end
88
+ def save_binary(binary_name)
89
+ if binaries.has_key?(binary_name)
90
+ if binary = binaries[binary_name]
91
+ binary.save
92
+ self.attributes = self.attributes.merge({binary_column(binary_name).to_sym => binary.hash_string})
93
+ else
94
+ self.attributes = self.attributes.merge({binary_column(binary_name).to_sym => nil})
95
+ end
96
+ end
97
+ end
98
98
 
99
- def destroy_binary(binary_name)
100
- if binary = binaries[binary_name]
101
- if hash_string = binary.hash_string
102
- references = self.class.binary_reference_count
103
- if references < 1
104
- binary.delete!
105
- end
106
- end
107
- end
108
- end
109
-
110
- def get_binary_data(binary_name)
111
- # Set directly?
112
- if binary = binaries[binary_name]
113
- binary.data
99
+ def destroy_binary(binary_name)
100
+ if binary = binaries[binary_name]
101
+ if hash_string = binary.hash_string
102
+ references = self.class.binary_reference_count
103
+ if references < 1
104
+ binary.delete!
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+ def get_binary_data(binary_name)
111
+ # Set directly?
112
+ if binary = binaries[binary_name]
113
+ binary.data
114
114
 
115
- # Try loading
116
- elsif hash_string = binary_hash_string(binary_name)
117
- if binary = BinaryStorage::Blob.find(hash_string)
118
- binaries[binary_name] = binary # Cache it
119
- binary.data
120
- else
121
- nil
122
- end
123
- end
124
- end
125
-
126
- def set_binary_data(binary_name, binary_data)
127
- binary = (binary_data) ? BinaryStorage::Blob.new(binary_data) : nil
128
- binaries[binary_name] = binary
129
- end
130
-
131
- def has_binary_data?(binary_name)
132
- if binaries[binary_name]
133
- true
134
- else
135
- hash_string = binary_hash_string(binary_name)
136
- (hash_string && BinaryStorage::Blob.exists?(hash_string)) ? true : false
137
- end
138
- end
139
- end
115
+ # Try loading
116
+ elsif hash_string = binary_hash_string(binary_name)
117
+ if binary = BinaryStorage::Blob.find(hash_string)
118
+ binaries[binary_name] = binary # Cache it
119
+ binary.data
120
+ else
121
+ nil
122
+ end
123
+ end
124
+ end
125
+
126
+ def set_binary_data(binary_name, binary_data)
127
+ binary = (binary_data) ? BinaryStorage::Blob.new(binary_data) : nil
128
+ binaries[binary_name] = binary
129
+ end
130
+
131
+ def has_binary_data?(binary_name)
132
+ if binaries[binary_name]
133
+ true
134
+ else
135
+ hash_string = binary_hash_string(binary_name)
136
+ (hash_string && BinaryStorage::Blob.exists?(hash_string)) ? true : false
137
+ end
138
+ end
139
+ end
140
140
 
141
- end
141
+ end
142
142
  end
143
143
 
144
- ActiveRecord::Base.send(:include, BinaryStorage::ActiveRecordExtensions)
144
+ ActiveRecord::Base.send(:include, BinaryStorage::ActiveRecordExtensions)
@@ -1,105 +1,105 @@
1
1
  module BinaryStorage
2
- class Blob
3
-
4
- class << self
5
- def find(hash_string)
6
- blob = self.new(:hash_string => hash_string)
7
- return nil unless blob.exists?
8
- blob.load
9
- blob
10
- end
2
+ class Blob
3
+
4
+ class << self
5
+ def find(hash_string)
6
+ blob = self.new(:hash_string => hash_string)
7
+ return nil unless blob.exists?
8
+ blob.load
9
+ blob
10
+ end
11
11
 
12
- def exists?(hash_string)
13
- self.new(:hash_string => hash_string).exists?
14
- end
12
+ def exists?(hash_string)
13
+ self.new(:hash_string => hash_string).exists?
14
+ end
15
15
 
16
- def create(data)
17
- blob = self.new(data)
18
- blob.save
19
- blob
20
- end
21
-
22
- def storage_dir(hash_string=nil)
23
- root = BinaryStorage.storage_dir
24
- (hash_string) ? File.join(root, hash_string.match(/^(..)/)[1]) : root
25
- end
26
-
27
- def storage_path(hash_string)
28
- File.join(storage_dir(hash_string), hash_string.gsub(/^(..)/, ''))
29
- end
30
- end
31
-
32
- def initialize(*args)
33
- args = *args
34
- options = {
35
- :hash_string => nil,
36
- :data => nil
37
- }
38
- if args.kind_of?(Hash)
39
- options.merge!(args)
40
- else
41
- options[:data] = args
42
- end
43
- @hash_string = options[:hash_string]
44
- @data = options[:data]
45
- end
46
-
47
- def data
48
- @data
49
- end
50
-
51
- def data=(new_data)
52
- @hash_string = nil
53
- @data = new_data
54
- end
55
-
56
- def hash_string
57
- unless @hash_string
58
- if @data
59
- @hash_string = BinaryStorage.hexdigest(data)
60
- else
61
- raise "Binary has no data!"
62
- end
63
- end
64
- @hash_string
65
- end
66
-
67
- def storage_dir
68
- BinaryStorage::Blob.storage_dir(hash_string)
69
- end
16
+ def create(data)
17
+ blob = self.new(data)
18
+ blob.save
19
+ blob
20
+ end
21
+
22
+ def storage_dir(hash_string=nil)
23
+ root = BinaryStorage.storage_dir
24
+ (hash_string) ? File.join(root, hash_string.match(/^(..)/)[1]) : root
25
+ end
26
+
27
+ def storage_path(hash_string)
28
+ File.join(storage_dir(hash_string), hash_string.gsub(/^(..)/, ''))
29
+ end
30
+ end
31
+
32
+ def initialize(*args)
33
+ args = *args
34
+ options = {
35
+ :hash_string => nil,
36
+ :data => nil
37
+ }
38
+ if args.kind_of?(Hash)
39
+ options.merge!(args)
40
+ else
41
+ options[:data] = args
42
+ end
43
+ @hash_string = options[:hash_string]
44
+ @data = options[:data]
45
+ end
46
+
47
+ def data
48
+ @data
49
+ end
50
+
51
+ def data=(new_data)
52
+ @hash_string = nil
53
+ @data = new_data
54
+ end
55
+
56
+ def hash_string
57
+ unless @hash_string
58
+ if @data
59
+ @hash_string = BinaryStorage.hexdigest(data)
60
+ else
61
+ raise "Binary has no data!"
62
+ end
63
+ end
64
+ @hash_string
65
+ end
66
+
67
+ def storage_dir
68
+ BinaryStorage::Blob.storage_dir(hash_string)
69
+ end
70
70
 
71
- def storage_path
72
- BinaryStorage::Blob.storage_path(hash_string)
73
- end
74
-
75
- def exists?
76
- File.exists?(storage_path)
77
- end
78
-
79
- def empty?
80
- (hash_string && !exists?) || !data || data.empty?
81
- end
82
-
83
- def load
84
- raise "File not found" unless exists?
85
- @data = File.open(storage_path, "rb") {|io| io.read }
86
- end
87
-
88
- def delete
89
- if exists?
90
- FileUtils.rm(storage_path)
91
- end
92
- end
71
+ def storage_path
72
+ BinaryStorage::Blob.storage_path(hash_string)
73
+ end
74
+
75
+ def exists?
76
+ File.exists?(storage_path)
77
+ end
78
+
79
+ def empty?
80
+ (hash_string && !exists?) || !data || data.empty?
81
+ end
82
+
83
+ def load
84
+ raise "File not found" unless exists?
85
+ @data = File.open(storage_path, "rb") {|io| io.read }
86
+ end
87
+
88
+ def delete
89
+ if exists?
90
+ FileUtils.rm(storage_path)
91
+ end
92
+ end
93
93
 
94
- def save
95
- unless exists?
96
- FileUtils.mkdir_p(storage_dir)
97
- file = File.new(storage_path, 'wb')
98
- file.write(@data)
99
- file.close
100
- end
101
- return true
102
- end
103
-
104
- end
105
- end
94
+ def save
95
+ unless exists?
96
+ FileUtils.mkdir_p(storage_dir)
97
+ file = File.new(storage_path, 'wb')
98
+ file.write(@data)
99
+ file.close
100
+ end
101
+ return true
102
+ end
103
+
104
+ end
105
+ end