paperclip-storage-ftp 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -17,6 +17,8 @@ test/version_tmp
17
17
  tmp
18
18
  .rspec
19
19
  .rvmrc
20
+ .ruby-version
21
+ .ruby-gemset
20
22
  vendor/apache-ftpserver/res/ftpd.pid*
21
23
  vendor/apache-ftpserver/res/home/*
22
24
  vendor/apache-ftpserver/res/log/*
data/.travis.yml CHANGED
@@ -3,6 +3,7 @@ rvm:
3
3
  - 1.8.7
4
4
  - 1.9.2
5
5
  - 1.9.3
6
+ - 2.0.0
6
7
  - jruby-18mode
7
8
  - jruby-19mode
8
9
  - rbx-18mode
data/README.md CHANGED
@@ -53,16 +53,15 @@ class User < ActiveRecord::Base
53
53
  {
54
54
  :host => "ftp1.example.com",
55
55
  :user => "foo",
56
- :password => "bar",
57
- :port => 21, # optional
56
+ :password => "bar"
58
57
  },
59
58
  # Add more servers if needed
60
59
  {
61
60
  :host => "ftp2.example.com",
62
61
  :user => "foo",
63
62
  :password => "bar",
64
- :port => 2121,
65
- :passive => true # false by default
63
+ :port => 2121, # optional, 21 by default
64
+ :passive => true # optional, false by default
66
65
  }
67
66
  ]
68
67
  end
@@ -23,7 +23,9 @@ module Paperclip
23
23
 
24
24
  def file_exists?(path)
25
25
  pathname = Pathname.new(path)
26
- connection.nlst(pathname.dirname.to_s).map { |f| File.basename f }.include?(pathname.basename.to_s)
26
+ connection.nlst(pathname.dirname.to_s).map{|f| File.basename f }.include?(pathname.basename.to_s)
27
+ rescue Net::FTPTempError
28
+ false
27
29
  end
28
30
 
29
31
  def get_file(remote_file_path, local_file_path)
@@ -8,17 +8,13 @@ module Paperclip
8
8
  module Storage
9
9
  module Ftp
10
10
  def exists?(style_name = default_style)
11
- if original_filename
12
- primary_ftp_server.file_exists?(path(style_name))
13
- else
14
- false
15
- end
11
+ original_filename && primary_ftp_server.file_exists?(path(style_name))
16
12
  end
17
13
 
18
14
  def to_file(style_name = default_style)
19
- if @queued_for_write[style_name]
20
- @queued_for_write[style_name].rewind
21
- @queued_for_write[style_name]
15
+ if file = @queued_for_write[style_name]
16
+ file.rewind
17
+ file
22
18
  else
23
19
  filename = path(style_name)
24
20
  extname = File.extname(filename)
@@ -30,7 +26,7 @@ module Paperclip
30
26
  end
31
27
  end
32
28
 
33
- def flush_writes #:nodoc:
29
+ def flush_writes
34
30
  @queued_for_write.each do |style_name, file|
35
31
  file.close
36
32
  ftp_servers.each do |server|
@@ -11,7 +11,7 @@ Gem::Specification.new do |gem|
11
11
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
12
12
  gem.name = "paperclip-storage-ftp"
13
13
  gem.require_paths = ["lib"]
14
- gem.version = "1.0.3"
14
+ gem.version = "1.0.4"
15
15
 
16
16
  gem.add_dependency("paperclip")
17
17
 
@@ -49,6 +49,11 @@ describe Paperclip::Storage::Ftp::Server do
49
49
  server.connection.should_receive(:nlst).with("/files/original").and_return([])
50
50
  server.file_exists?("/files/original/foo.jpg").should be_false
51
51
  end
52
+
53
+ it "returns false if the ftp server responds with a FTPTempError" do
54
+ server.connection.should_receive(:nlst).with("/files/original").and_raise(Net::FTPTempError)
55
+ server.file_exists?("/files/original/foo.jpg").should be_false
56
+ end
52
57
  end
53
58
 
54
59
  context "#get_file" do
metadata CHANGED
@@ -1,96 +1,96 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip-storage-ftp
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
5
4
  prerelease:
5
+ version: 1.0.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sebastian Röbke
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-10 00:00:00.000000000 Z
12
+ date: 2013-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: paperclip
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
18
  - - ! '>='
20
19
  - !ruby/object:Gem::Version
21
20
  version: '0'
21
+ none: false
22
22
  type: :runtime
23
- prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ! '>='
28
26
  - !ruby/object:Gem::Version
29
27
  version: '0'
28
+ none: false
29
+ prerelease: false
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rspec
32
32
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
33
  requirements:
35
34
  - - ! '>='
36
35
  - !ruby/object:Gem::Version
37
36
  version: '0'
37
+ none: false
38
38
  type: :development
39
- prerelease: false
40
39
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
40
  requirements:
43
41
  - - ! '>='
44
42
  - !ruby/object:Gem::Version
45
43
  version: '0'
44
+ none: false
45
+ prerelease: false
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: rake
48
48
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
49
  requirements:
51
50
  - - ! '>='
52
51
  - !ruby/object:Gem::Version
53
52
  version: '0'
53
+ none: false
54
54
  type: :development
55
- prerelease: false
56
55
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
56
  requirements:
59
57
  - - ! '>='
60
58
  - !ruby/object:Gem::Version
61
59
  version: '0'
60
+ none: false
61
+ prerelease: false
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: daemon_controller
64
64
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
65
  requirements:
67
66
  - - ! '>='
68
67
  - !ruby/object:Gem::Version
69
68
  version: 1.1.0
69
+ none: false
70
70
  type: :development
71
- prerelease: false
72
71
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
72
  requirements:
75
73
  - - ! '>='
76
74
  - !ruby/object:Gem::Version
77
75
  version: 1.1.0
76
+ none: false
77
+ prerelease: false
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: activerecord
80
80
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
81
  requirements:
83
82
  - - ! '>='
84
83
  - !ruby/object:Gem::Version
85
84
  version: '0'
85
+ none: false
86
86
  type: :development
87
- prerelease: false
88
87
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
88
  requirements:
91
89
  - - ! '>='
92
90
  - !ruby/object:Gem::Version
93
91
  version: '0'
92
+ none: false
93
+ prerelease: false
94
94
  description: Allow Paperclip attachments to be stored on FTP servers
95
95
  email:
96
96
  - sebastian.roebke@xing.com
@@ -153,23 +153,23 @@ rdoc_options: []
153
153
  require_paths:
154
154
  - lib
155
155
  required_ruby_version: !ruby/object:Gem::Requirement
156
- none: false
157
156
  requirements:
158
157
  - - ! '>='
159
158
  - !ruby/object:Gem::Version
160
- version: '0'
161
159
  segments:
162
160
  - 0
163
- hash: -1988300321926789163
164
- required_rubygems_version: !ruby/object:Gem::Requirement
161
+ hash: -3461514716041370557
162
+ version: '0'
165
163
  none: false
164
+ required_rubygems_version: !ruby/object:Gem::Requirement
166
165
  requirements:
167
166
  - - ! '>='
168
167
  - !ruby/object:Gem::Version
169
- version: '0'
170
168
  segments:
171
169
  - 0
172
- hash: -1988300321926789163
170
+ hash: -3461514716041370557
171
+ version: '0'
172
+ none: false
173
173
  requirements: []
174
174
  rubyforge_project:
175
175
  rubygems_version: 1.8.25