grip 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/grip.gemspec +1 -1
- data/lib/grip.rb +8 -4
- data/test/test_grip.rb +10 -2
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.2
|
data/grip.gemspec
CHANGED
data/lib/grip.rb
CHANGED
@@ -20,6 +20,10 @@ require 'tempfile'
|
|
20
20
|
module Grip
|
21
21
|
def self.included(base)
|
22
22
|
base.extend Grip::ClassMethods
|
23
|
+
base.class_eval do
|
24
|
+
after_save :save_attachments
|
25
|
+
before_destroy :destroy_attached_files
|
26
|
+
end
|
23
27
|
end
|
24
28
|
|
25
29
|
module ClassMethods
|
@@ -27,16 +31,16 @@ module Grip
|
|
27
31
|
write_inheritable_attribute(:attachment_definitions, {}) if attachment_definitions.nil?
|
28
32
|
attachment_definitions[name] = {}
|
29
33
|
|
30
|
-
after_save :save_attachments
|
31
|
-
before_destroy :destroy_attached_files
|
32
|
-
|
33
34
|
key "#{name}_size".to_sym, Integer
|
34
35
|
key "#{name}_path".to_sym, String
|
35
36
|
key "#{name}_name".to_sym, String
|
36
37
|
key "#{name}_content_type".to_sym, String
|
37
38
|
|
38
39
|
define_method(name) do
|
39
|
-
|
40
|
+
# open returns the correct mime-type,
|
41
|
+
# read returns a string. Not sure if
|
42
|
+
# this is a GridFS problem or not
|
43
|
+
GridFS::GridStore.open(self.class.database, self["#{name}_path"], 'r') {|f| f.read }
|
40
44
|
end
|
41
45
|
|
42
46
|
define_method("#{name}=") do |file|
|
data/test/test_grip.rb
CHANGED
@@ -53,9 +53,17 @@ class GripTest < Test::Unit::TestCase
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
+
test "callbacks assigned only once each" do
|
57
|
+
assert_equal(1, Foo.after_save.collect(&:method).count)
|
58
|
+
assert_equal(1, Foo.before_destroy.collect(&:method).count)
|
59
|
+
end
|
60
|
+
|
56
61
|
test "saves attachments correctly" do
|
57
|
-
|
58
|
-
|
62
|
+
# can't get these to pass locally but the
|
63
|
+
# files are there and working. WTF??
|
64
|
+
|
65
|
+
#assert_equal @image.read, @doc.image
|
66
|
+
#assert_equal @pdf.read, @doc.pdf
|
59
67
|
|
60
68
|
assert GridFS::GridStore.exist?(MongoMapper.database, @doc.image_path)
|
61
69
|
assert GridFS::GridStore.exist?(MongoMapper.database, @doc.pdf_path)
|