matic_grid 0.0.1 → 0.0.2
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/lib/matic_grid.rb +31 -9
- metadata +4 -4
data/lib/matic_grid.rb
CHANGED
@@ -44,7 +44,10 @@ module Mongomatic
|
|
44
44
|
# Create a method to set the attachment
|
45
45
|
# eg: object.image = File.open('/tmp/somefile.jpg')
|
46
46
|
define_method("#{name}=") do |file|
|
47
|
-
|
47
|
+
case
|
48
|
+
when file.is_a?(Hash) && file[:tempfile]
|
49
|
+
send(:create_attachment, name, file)
|
50
|
+
when file.respond_to?(:read)
|
48
51
|
send(:create_attachment, name, file)
|
49
52
|
else
|
50
53
|
send(:delete_attachment, name, self["#{name}_id"])
|
@@ -137,22 +140,34 @@ module Mongomatic
|
|
137
140
|
##
|
138
141
|
# Attachments we need to add after save.
|
139
142
|
def create_attachment(name,file)
|
140
|
-
|
143
|
+
case
|
144
|
+
when file.is_a?(Hash)
|
145
|
+
filename = file[:filename]
|
146
|
+
size = File.size(file[:tempfile])
|
147
|
+
mime = file[:type]
|
148
|
+
unless mime
|
149
|
+
type = MIME::Types.type_for(filename).first
|
150
|
+
mime = type ? type.content_type : "application/octet-stream"
|
151
|
+
end
|
152
|
+
when file.respond_to?(:read)
|
141
153
|
filename = if file.respond_to?(:original_filename) && file.original_filename
|
142
|
-
|
154
|
+
file.original_filename
|
143
155
|
elsif file.respond_to?(:tempfile)
|
144
156
|
File.basename(file.tempfile.path)
|
145
157
|
else
|
146
158
|
File.basename(file.path)
|
147
159
|
end
|
160
|
+
size = File.size(file.respond_to?(:tempfile) ? file.tempfile : file)
|
148
161
|
type = MIME::Types.type_for(filename).first
|
149
162
|
mime = type ? type.content_type : "application/octet-stream"
|
150
|
-
|
151
|
-
|
152
|
-
self["#{name}_size"] = File.size(file.respond_to?(:tempfile) ? file.tempfile : file)
|
153
|
-
self["#{name}_type"] = mime
|
154
|
-
create_attachment_queue[name] = file
|
163
|
+
else
|
164
|
+
return
|
155
165
|
end
|
166
|
+
self["#{name}_id"] = BSON::ObjectId.new
|
167
|
+
self["#{name}_name"] = filename
|
168
|
+
self["#{name}_size"] = size
|
169
|
+
self["#{name}_type"] = mime
|
170
|
+
create_attachment_queue[name] = file
|
156
171
|
end
|
157
172
|
|
158
173
|
##
|
@@ -171,7 +186,14 @@ module Mongomatic
|
|
171
186
|
##
|
172
187
|
# Save an attachment to Grid
|
173
188
|
def create_grid_attachment(name,file)
|
174
|
-
data =
|
189
|
+
data = case
|
190
|
+
when file.is_a?(Hash)
|
191
|
+
file[:tempfile].read
|
192
|
+
when file.respond_to?(:read)
|
193
|
+
file.read
|
194
|
+
else
|
195
|
+
file
|
196
|
+
end
|
175
197
|
grid.put(
|
176
198
|
data,
|
177
199
|
:filename => self["#{name}_name"],
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: matic_grid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-06-
|
12
|
+
date: 2011-06-29 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mime-types
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153264700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153264700
|
25
25
|
description: Plugin for Mongomatic to attach files via Grid
|
26
26
|
email: github@dusty.name
|
27
27
|
executables: []
|