polypaperclip 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -6,6 +6,7 @@ gem "paperclip", "~> 2.3"
6
6
  gem "rails", "~>3.0.0"
7
7
 
8
8
  group :development do
9
+ gem "ruby-debug"
9
10
  gem "rspec", "~> 2.3.0"
10
11
  gem "yard", "~> 0.6.0"
11
12
  gem "bundler", "~> 1.0.0"
data/Gemfile.lock CHANGED
@@ -30,6 +30,7 @@ GEM
30
30
  activesupport (3.0.7)
31
31
  arel (2.0.10)
32
32
  builder (2.1.2)
33
+ columnize (0.3.2)
33
34
  diff-lcs (1.1.2)
34
35
  erubis (2.6.6)
35
36
  abstract (>= 1.0.0)
@@ -39,6 +40,7 @@ GEM
39
40
  bundler (~> 1.0.0)
40
41
  git (>= 1.2.5)
41
42
  rake
43
+ linecache (0.43)
42
44
  mail (2.2.19)
43
45
  activesupport (>= 2.3.6)
44
46
  i18n (>= 0.4.0)
@@ -78,6 +80,11 @@ GEM
78
80
  rspec-expectations (2.3.0)
79
81
  diff-lcs (~> 1.1.2)
80
82
  rspec-mocks (2.3.0)
83
+ ruby-debug (0.10.4)
84
+ columnize (>= 0.1)
85
+ ruby-debug-base (~> 0.10.4.0)
86
+ ruby-debug-base (0.10.4)
87
+ linecache (>= 0.3)
81
88
  sqlite3 (1.3.3)
82
89
  sqlite3-ruby (1.3.3)
83
90
  sqlite3 (>= 1.3.3)
@@ -99,5 +106,6 @@ DEPENDENCIES
99
106
  rake (= 0.8.7)
100
107
  rcov
101
108
  rspec (~> 2.3.0)
109
+ ruby-debug
102
110
  sqlite3-ruby (~> 1.3.0)
103
111
  yard (~> 0.6.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -22,6 +22,7 @@ module Polypaperclip
22
22
  def build_instance
23
23
  @instance ||= @poly_instance.send("build_#{@poly_name}_attachment")
24
24
  @instance.attachment_type = name
25
+ @instance.attachable = @poly_instance
25
26
  @instance
26
27
  end
27
28
 
@@ -1,6 +1,8 @@
1
1
  module Polypaperclip
2
2
  class PersistedAttachment < ActiveRecord::Base
3
3
  include Paperclip::Glue
4
+ belongs_to :attachable,
5
+ :polymorphic => true
4
6
 
5
7
  set_table_name :attachments
6
8
  define_paperclip_callbacks :post_process, :attachment_post_process
data/lib/polypaperclip.rb CHANGED
@@ -46,10 +46,10 @@ module Polypaperclip
46
46
  #initialize a polypaperclip model if a configuration hasn't already been loaded
47
47
  def initialize_polypaperclip
48
48
  if polypaperclip_definitions.nil?
49
- has_many_attachments_association
50
-
51
49
  after_save :save_attached_files
52
50
  before_destroy :destroy_attached_files
51
+
52
+ has_many_attachments_association
53
53
 
54
54
  write_inheritable_attribute(:polypaperclip_definitions, {})
55
55
 
@@ -62,6 +62,7 @@ module Polypaperclip
62
62
  def has_many_attachments_association
63
63
  unless self.respond_to?(:attachments)
64
64
  has_many :attachments,
65
+ :class_name => "Polypaperclip::PersistedAttachment",
65
66
  :as => :attachable
66
67
  end
67
68
  end
@@ -74,6 +75,17 @@ module Polypaperclip
74
75
  yield(name, paperclip_attachment_for(name))
75
76
  end
76
77
  end
78
+
79
+ def save_attached_files
80
+ #premptively save each attachment
81
+ Paperclip.log("Saving attachments.")
82
+ each_attachment do |name, attachment|
83
+ if attachment && attachment.instance
84
+ attachment.instance.save
85
+ attachment.send(:save)
86
+ end
87
+ end
88
+ end
77
89
 
78
90
  def paperclip_attachment_for(name)
79
91
  @_paperclip_attachments ||= {}
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{polypaperclip}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dan Pickett"]
12
- s.date = %q{2011-05-29}
12
+ s.date = %q{2011-06-06}
13
13
  s.description = %q{hacks paperclip to have a single repo of attachments}
14
14
  s.email = %q{dpickett@enlightsolutions.com}
15
15
  s.extra_rdoc_files = [
@@ -55,6 +55,7 @@ Gem::Specification.new do |s|
55
55
  s.add_runtime_dependency(%q<rake>, ["= 0.8.7"])
56
56
  s.add_runtime_dependency(%q<paperclip>, ["~> 2.3"])
57
57
  s.add_runtime_dependency(%q<rails>, ["~> 3.0.0"])
58
+ s.add_development_dependency(%q<ruby-debug>, [">= 0"])
58
59
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
59
60
  s.add_development_dependency(%q<yard>, ["~> 0.6.0"])
60
61
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -66,6 +67,7 @@ Gem::Specification.new do |s|
66
67
  s.add_dependency(%q<rake>, ["= 0.8.7"])
67
68
  s.add_dependency(%q<paperclip>, ["~> 2.3"])
68
69
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
70
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
69
71
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
70
72
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
71
73
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -78,6 +80,7 @@ Gem::Specification.new do |s|
78
80
  s.add_dependency(%q<rake>, ["= 0.8.7"])
79
81
  s.add_dependency(%q<paperclip>, ["~> 2.3"])
80
82
  s.add_dependency(%q<rails>, ["~> 3.0.0"])
83
+ s.add_dependency(%q<ruby-debug>, [">= 0"])
81
84
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
82
85
  s.add_dependency(%q<yard>, ["~> 0.6.0"])
83
86
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
data/spec/page_spec.rb CHANGED
@@ -43,6 +43,14 @@ describe "Page" do
43
43
  subject.primary_image_attachment.attachment_updated_at.should_not be_nil
44
44
  end
45
45
 
46
+ it "should set the appropriate id for the image" do
47
+ attach_primary_image
48
+ subject.save!
49
+ subject.primary_image_attachment.id.should_not be_nil
50
+ subject.primary_image.instance.should_not be_nil
51
+ subject.primary_image.path.should =~ /#{subject.primary_image_attachment.id}/
52
+ end
53
+
46
54
  PRIMARY_IMAGE_PATH = File.dirname(__FILE__) + "/fixtures/rails.png"
47
55
  def attach_primary_image
48
56
  subject.primary_image = File.open(PRIMARY_IMAGE_PATH)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polypaperclip
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dan Pickett
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-05-29 00:00:00 -04:00
18
+ date: 2011-06-06 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -68,6 +68,20 @@ dependencies:
68
68
  - !ruby/object:Gem::Dependency
69
69
  type: :development
70
70
  requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ name: ruby-debug
80
+ version_requirements: *id004
81
+ prerelease: false
82
+ - !ruby/object:Gem::Dependency
83
+ type: :development
84
+ requirement: &id005 !ruby/object:Gem::Requirement
71
85
  none: false
72
86
  requirements:
73
87
  - - ~>
@@ -79,11 +93,11 @@ dependencies:
79
93
  - 0
80
94
  version: 2.3.0
81
95
  name: rspec
82
- version_requirements: *id004
96
+ version_requirements: *id005
83
97
  prerelease: false
84
98
  - !ruby/object:Gem::Dependency
85
99
  type: :development
86
- requirement: &id005 !ruby/object:Gem::Requirement
100
+ requirement: &id006 !ruby/object:Gem::Requirement
87
101
  none: false
88
102
  requirements:
89
103
  - - ~>
@@ -95,11 +109,11 @@ dependencies:
95
109
  - 0
96
110
  version: 0.6.0
97
111
  name: yard
98
- version_requirements: *id005
112
+ version_requirements: *id006
99
113
  prerelease: false
100
114
  - !ruby/object:Gem::Dependency
101
115
  type: :development
102
- requirement: &id006 !ruby/object:Gem::Requirement
116
+ requirement: &id007 !ruby/object:Gem::Requirement
103
117
  none: false
104
118
  requirements:
105
119
  - - ~>
@@ -111,11 +125,11 @@ dependencies:
111
125
  - 0
112
126
  version: 1.0.0
113
127
  name: bundler
114
- version_requirements: *id006
128
+ version_requirements: *id007
115
129
  prerelease: false
116
130
  - !ruby/object:Gem::Dependency
117
131
  type: :development
118
- requirement: &id007 !ruby/object:Gem::Requirement
132
+ requirement: &id008 !ruby/object:Gem::Requirement
119
133
  none: false
120
134
  requirements:
121
135
  - - ~>
@@ -127,11 +141,11 @@ dependencies:
127
141
  - 2
128
142
  version: 1.5.2
129
143
  name: jeweler
130
- version_requirements: *id007
144
+ version_requirements: *id008
131
145
  prerelease: false
132
146
  - !ruby/object:Gem::Dependency
133
147
  type: :development
134
- requirement: &id008 !ruby/object:Gem::Requirement
148
+ requirement: &id009 !ruby/object:Gem::Requirement
135
149
  none: false
136
150
  requirements:
137
151
  - - ~>
@@ -143,11 +157,11 @@ dependencies:
143
157
  - 0
144
158
  version: 1.3.0
145
159
  name: sqlite3-ruby
146
- version_requirements: *id008
160
+ version_requirements: *id009
147
161
  prerelease: false
148
162
  - !ruby/object:Gem::Dependency
149
163
  type: :development
150
- requirement: &id009 !ruby/object:Gem::Requirement
164
+ requirement: &id010 !ruby/object:Gem::Requirement
151
165
  none: false
152
166
  requirements:
153
167
  - - ">="
@@ -157,11 +171,11 @@ dependencies:
157
171
  - 0
158
172
  version: "0"
159
173
  name: rcov
160
- version_requirements: *id009
174
+ version_requirements: *id010
161
175
  prerelease: false
162
176
  - !ruby/object:Gem::Dependency
163
177
  type: :development
164
- requirement: &id010 !ruby/object:Gem::Requirement
178
+ requirement: &id011 !ruby/object:Gem::Requirement
165
179
  none: false
166
180
  requirements:
167
181
  - - ">="
@@ -171,7 +185,7 @@ dependencies:
171
185
  - 0
172
186
  version: "0"
173
187
  name: mocha
174
- version_requirements: *id010
188
+ version_requirements: *id011
175
189
  prerelease: false
176
190
  description: hacks paperclip to have a single repo of attachments
177
191
  email: dpickett@enlightsolutions.com