paperclip-storage-ftp 1.0.3 → 1.0.4

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