attacheable 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.ru +54 -0
  2. data/Rakefile +44 -0
  3. data/init.rb +1 -0
  4. metadata +57 -0
@@ -0,0 +1,54 @@
1
+ После длительной работы с file_column, acts_as_attachment и attachment_fu, которые друг от друга
2
+ решительно ничем не отличаются, были сформулированы претензии к этим плагинам:
3
+
4
+ 1) на каждый тамбнейл создаётся запись в таблице, что лично мне совершенно не нужно;
5
+ 2) поменять набор тамбнейлов очень сложно, никаких ручек для этого плагин не представляет;
6
+ 3) невозможно генерировать тамбнейлы на лету;
7
+ 4) очень сложная логика из-за попыток охватить несколько обработчиков картинок, что само по себе имеет мало смысла:
8
+ если есть RMagick, то 99% доступна утилита convert, которая не жрёт память с таким аппетитом;
9
+ 5) не очень удобно принудительно кропить картинки под нужный размер.
10
+
11
+ Было принято решение немного переделать плагин attachment_fu (http://svn.techno-weenie.net/projects/plugins/attachment_fu/)
12
+ со следующими допущениями:
13
+
14
+ 1) файлы сохраняются только на диск и никуда более;
15
+ 2) картинки обрабатываются только утилитами identify, convert и mogrify;
16
+ 3) на одну картинку со всеми её тамбнейлами создаётся только одна запись в БД;
17
+ 4) картинки можно кропить;
18
+ 5) тамбнейлы можно перегенерировать;
19
+ 6) при удалении картинки попросту удаляется вся директория, где лежали все её картинки,
20
+ что бы стереть всё то, что может быть туда нагенерировано другими плагинами.
21
+
22
+ Плюс к этому доработалась такая функциональность, как репликация по scp на другой сервер.
23
+ Многим проектам среднего размера, где второй сервер покупается не для скорости, а для надежности,
24
+ это будет удобно.
25
+
26
+ В этом плагине есть метод regenerate_thumbnails!: Image.regenerate_thumbnails!(:preview)
27
+ Если поменялся размер картинки, то таким образом можно перегенерировать все preview
28
+
29
+ Использование достаточно простое:
30
+
31
+ Создаётся схема БД наподобие:
32
+
33
+ create_table :images do |t|
34
+ t.string :filename
35
+ t.string :content_type
36
+ t.integer :width
37
+ t.integer :height
38
+ t.string :type
39
+ end
40
+
41
+ После чего в классе прописывается:
42
+
43
+ class Image < ActiveRecord::Base
44
+ has_attachment :thumbnails => {:medium => "120x", :large => "800x600", :preview => "100x100"},
45
+ :croppable_thumbnails => %w(preview)
46
+ validates_as_attachment
47
+ end
48
+
49
+ После этого форме аплоада назначается имя uploaded_data и картинки начинают сохраняться.
50
+ Вывести картинку можно таким образом:
51
+
52
+ <%= image_tag @image.public_filename(:preview) %>
53
+
54
+
@@ -0,0 +1,44 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'rake/testtask'
4
+ require 'rake/gempackagetask'
5
+
6
+ spec = Gem::Specification.new do |s|
7
+ s.name = 'attacheable'
8
+ s.version = '1.0'
9
+ s.summary = 'Library to handle image uploads'
10
+ s.autorequire = 'attacheable'
11
+ s.author = "Max Lapshin"
12
+ s.email = "max@maxidoors.ru"
13
+ s.description = "Fork of attachment_fu. It differs in following ways:
14
+
15
+
16
+
17
+ 1. Can work with merb uploads
18
+
19
+ 2. can create thumbnails on fly
20
+
21
+ 3. goes with Mongrel handler, that autocreate thumbnails on demand
22
+
23
+ 4. works only with file system (and does it better, than attachment_fu)
24
+
25
+ 5. create only one row in table for one image. No separate rows for each thumbnail."
26
+ s.rubyforge_project = "attacheable"
27
+ s.has_rdoc = false
28
+ s.files = FileList["**"].exclude(".git").to_a
29
+
30
+ end
31
+
32
+ Rake::GemPackageTask.new(spec) do |package|
33
+ package.gem_spec = spec
34
+ end
35
+
36
+
37
+ task :default => [ :test ]
38
+
39
+ desc "Run all tests (requires BlueCloth, RedCloth and Rails for integration tests)"
40
+ Rake::TestTask.new("test") { |t|
41
+ t.libs << "test"
42
+ t.pattern = 'test/*_test.rb'
43
+ t.verbose = true
44
+ }
data/init.rb ADDED
@@ -0,0 +1 @@
1
+ require 'attacheable'
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: attacheable
3
+ version: !ruby/object:Gem::Version
4
+ version: "1.0"
5
+ platform: ruby
6
+ authors:
7
+ - Max Lapshin
8
+ autorequire: attacheable
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-04-04 00:00:00 +04:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: "Fork of attachment_fu. It differs in following ways: 1. Can work with merb uploads 2. can create thumbnails on fly 3. goes with Mongrel handler, that autocreate thumbnails on demand 4. works only with file system (and does it better, than attachment_fu) 5. create only one row in table for one image. No separate rows for each thumbnail."
17
+ email: max@maxidoors.ru
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - init.rb
26
+ - lib
27
+ - Rakefile
28
+ - README.ru
29
+ - test
30
+ has_rdoc: false
31
+ homepage:
32
+ post_install_message:
33
+ rdoc_options: []
34
+
35
+ require_paths:
36
+ - lib
37
+ required_ruby_version: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: "0"
42
+ version:
43
+ required_rubygems_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: "0"
48
+ version:
49
+ requirements: []
50
+
51
+ rubyforge_project: attacheable
52
+ rubygems_version: 1.0.1
53
+ signing_key:
54
+ specification_version: 2
55
+ summary: Library to handle image uploads
56
+ test_files: []
57
+