polypaperclip 0.1.0 → 0.1.1

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/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