attachment_saver 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5a22b412009475caf986f038cc3613ce59ff940c
4
+ data.tar.gz: 072903d7678d8305718b416d62058623f4e7bc2d
5
+ SHA512:
6
+ metadata.gz: b945b2d6f38082b9bd9befa2fb20f9f58ba150c63382d46d2860228b573a1851f6a0197ce43866052dd5f1a089d1226e88faeae706d81990b39a0a52ad71e19c
7
+ data.tar.gz: cbabbc1710ec1bf2547104eb825baaa96939c73a8a4182dee0e4500fc067988292d562e52c923e8a81c5987ca11c0cd1cf821b33cab78a77aaf31581faf46261
data/Rakefile CHANGED
@@ -11,6 +11,6 @@ desc 'Test the columns_on_demand plugin.'
11
11
  Rake::TestTask.new(:test) do |t|
12
12
  t.libs << 'lib'
13
13
  t.libs << 'test'
14
- t.pattern = 'test/*_test.rb'
14
+ t.test_files = FileList['test/*_test.rb']
15
15
  t.verbose = true
16
16
  end
@@ -46,7 +46,7 @@ module AttachmentSaver
46
46
  # until we have all the attributes, and then until validation passes - so we just retain
47
47
  # the data or file reference for now.
48
48
  if uploaded.is_a?(String) # we allow people to upload into the file field using a normal input element (eg. a textarea)
49
- return if uploaded.blank? # this handles the case when a form has a file field but no file is selected - most browsers submit an empty string then (annoyingly)
49
+ return if uploaded.empty? # this handles the case when a form has a file field but no file is selected - most browsers submit an empty string then (annoyingly)
50
50
  @uploaded_data = uploaded
51
51
  @uploaded_file = nil
52
52
  elsif uploaded.is_a?(StringIO)
@@ -62,7 +62,7 @@ module AttachmentSaver
62
62
  end
63
63
  @save_upload = true
64
64
 
65
- self.size = uploaded.size if respond_to?(:size=)
65
+ self.size = uploaded.respond_to?(:bytesize) ? uploaded.bytesize : uploaded.size if respond_to?(:size=)
66
66
  self.content_type = uploaded.content_type.strip.downcase if respond_to?(:content_type=) && uploaded.respond_to?(:content_type)
67
67
  self.original_filename = trim_original_filename(uploaded.original_filename) if respond_to?(:original_filename=) && uploaded.respond_to?(:original_filename)
68
68
  end
@@ -1,3 +1,3 @@
1
1
  module AttachmentSaver
2
- VERSION = '1.0.0'
2
+ VERSION = '1.0.1'
3
3
  end
@@ -79,6 +79,23 @@ class AttachmentSaverTest < Test::Unit::TestCase
79
79
  model.file_extension = 'ext'
80
80
  assert_equal 'ext', model.file_extension
81
81
 
82
+ model = SomeModel.new
83
+ data = File.open(ImageFixtures::valid[:path], "rb").read
84
+ model.uploaded_data = data
85
+ assert_equal ImageFixtures::valid[:size], model.size
86
+ assert_equal nil, model.content_type
87
+ assert_equal nil, model.original_filename
88
+ assert_equal data, model.uploaded_data # before converting to an uploaded_file
89
+ assert_not_equal nil, model.uploaded_file
90
+ assert model.uploaded_file.is_a?(Tempfile)
91
+ assert_equal model.uploaded_file.object_id, model.uploaded_file.object_id, 'uploaded_file should return the same instance each time'
92
+ assert_equal data, model.uploaded_data # after converting to an uploaded_file
93
+ assert_equal data, contents_of(model.uploaded_file)
94
+ assert_equal data, model.uploaded_data
95
+ assert_equal 'bin', model.file_extension
96
+ model.file_extension = 'ext'
97
+ assert_equal 'ext', model.file_extension
98
+
82
99
  model = SomeModel.new
83
100
  model.uploaded_data = StringIO.new('test #2')
84
101
  assert_equal 7, model.size
@@ -10,7 +10,8 @@ class ImageFixtures
10
10
  :width => 448,
11
11
  :height => 600,
12
12
  :expected_content_type => 'image/jpeg',
13
- :expected_extension => 'jpg' }
13
+ :expected_extension => 'jpg',
14
+ :size => 66335 }
14
15
  end
15
16
 
16
17
  def self.wrong_extension
@@ -72,7 +72,7 @@ class ModelTest < Test::Unit::TestCase
72
72
  end
73
73
 
74
74
  def uploaded_file_from(fixture)
75
- f = File.open(fixture[:path])
75
+ f = File.open(fixture[:path], "rb")
76
76
  f.extend ValidUploadedFileAttributes
77
77
  f.fixture = fixture
78
78
  f
@@ -83,6 +83,7 @@ class ModelTest < Test::Unit::TestCase
83
83
  assert_equal ImageFixtures::valid[:expected_content_type], model.content_type
84
84
  assert_equal ImageFixtures::valid[:expected_extension], model.file_extension
85
85
  assert_equal ImageFixtures::valid[:expected_extension], AttachmentSaver::split_filename(model.storage_filename).last
86
+ assert_equal ImageFixtures::valid[:size], model.size
86
87
  assert File.read(ImageFixtures::valid[:path]) == File.read(model.storage_filename), "stored data doesn't match!"
87
88
  end
88
89
 
metadata CHANGED
@@ -1,106 +1,99 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: attachment_saver
3
- version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Will Bryant
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-04-21 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
11
+ date: 2013-05-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
21
14
  name: activerecord
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 0
31
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
32
20
  type: :runtime
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: rake
36
21
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- none: false
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- hash: 3
43
- segments:
44
- - 0
45
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
46
34
  type: :development
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: image_science
50
35
  prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- hash: 3
57
- segments:
58
- - 0
59
- version: "0"
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: image_science
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
60
48
  type: :development
61
- version_requirements: *id003
62
- - !ruby/object:Gem::Dependency
63
- name: rmagick
64
49
  prerelease: false
65
- requirement: &id004 !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ">="
69
- - !ruby/object:Gem::Version
70
- hash: 3
71
- segments:
72
- - 0
73
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rmagick
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
74
62
  type: :development
75
- version_requirements: *id004
76
- - !ruby/object:Gem::Dependency
77
- name: mini_magick
78
63
  prerelease: false
79
- requirement: &id005 !ruby/object:Gem::Requirement
80
- none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: mini_magick
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
88
76
  type: :development
89
- version_requirements: *id005
90
- - !ruby/object:Gem::Dependency
91
- name: sqlite3
92
77
  prerelease: false
93
- requirement: &id006 !ruby/object:Gem::Requirement
94
- none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- hash: 3
99
- segments:
100
- - 0
101
- version: "0"
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
102
90
  type: :development
103
- version_requirements: *id006
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
104
97
  description: |
105
98
  This plugin implements attachment storage and processing, integrated with
106
99
  ActiveRecord models and Ruby CGI/Rails-style uploads. Image processing
@@ -108,24 +101,20 @@ description: |
108
101
  provided, and the architecture simplifies clean implementation of other types
109
102
  of processing. Errors are carefully handled to minimize the possibility of
110
103
  broken uploads leaving incomplete or corrupt data.
111
-
104
+
112
105
  RMagick, MiniMagick, and ImageScience image processors are supported.
113
-
114
-
106
+
107
+
115
108
  Compatibility
116
109
  =============
117
-
110
+
118
111
  Currently tested against Rails 3.2.13 and 3.1.8, on Ruby 1.8.7 and 2.0.0p0.
119
112
  Was also tested compatible with 2.3.14 and 3.0.17.
120
-
121
113
  email: will.bryant@gmail.com
122
114
  executables: []
123
-
124
115
  extensions: []
125
-
126
116
  extra_rdoc_files: []
127
-
128
- files:
117
+ files:
129
118
  - .gitignore
130
119
  - MIT-LICENSE
131
120
  - README
@@ -168,38 +157,28 @@ files:
168
157
  - test/test_helper.rb
169
158
  homepage: http://github.com/willbryant/attachment_saver
170
159
  licenses: []
171
-
160
+ metadata: {}
172
161
  post_install_message:
173
162
  rdoc_options: []
174
-
175
- require_paths:
163
+ require_paths:
176
164
  - lib
177
- required_ruby_version: !ruby/object:Gem::Requirement
178
- none: false
179
- requirements:
180
- - - ">="
181
- - !ruby/object:Gem::Version
182
- hash: 3
183
- segments:
184
- - 0
185
- version: "0"
186
- required_rubygems_version: !ruby/object:Gem::Requirement
187
- none: false
188
- requirements:
189
- - - ">="
190
- - !ruby/object:Gem::Version
191
- hash: 3
192
- segments:
193
- - 0
194
- version: "0"
165
+ required_ruby_version: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - '>='
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - '>='
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
195
175
  requirements: []
196
-
197
176
  rubyforge_project:
198
- rubygems_version: 1.8.15
177
+ rubygems_version: 2.0.2
199
178
  signing_key:
200
- specification_version: 3
179
+ specification_version: 4
201
180
  summary: Saves attachments in files, models, or columns.
202
- test_files:
181
+ test_files:
203
182
  - test/attachment_saver_test.rb
204
183
  - test/database.yml
205
184
  - test/file_system_datastore_test.rb