ftpmvc 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2434536570e3300d6e307c591e223b856a958055
4
- data.tar.gz: c4276813096a5a84479fcd73f0999d41bea5b670
3
+ metadata.gz: 1d700986fcf31bb2aa4321ab798886546bd8d018
4
+ data.tar.gz: 1fa9c85f95fb7d60956c0a68f2a4d3177d7469f1
5
5
  SHA512:
6
- metadata.gz: bb33c101552cb588f2737aa0bff98bbba406fdf535b57bfb5045ac066ead934c3e057c2a5ba81c1b5479217c8286013559b1a1b16b36bfb76462f86a5961483b
7
- data.tar.gz: 3f728d964017765a085df53446276db3bb4becf9d48044c6de31cbeb83f33dd40a5cc4953358515f33045e54b6bf9e4a9fff0863254d953be17644e87e085338
6
+ metadata.gz: 4408ed3ff3689c6ade5af7946a9825fe20227684a3564ec910e156c0ec5b70c31f21afa9b46a8a534537a13ac3ba131a0d623a6a4a34904846fe4767fc39560c
7
+ data.tar.gz: bda295c20d059283c9c448059be5fd07e9f27873bd85c97b5525d5f1d8e888374f8d1a6aab6786d84936adc93d1a52f58708674895222ab3f752ae044d2d64b8
data/ftpmvc.gemspec CHANGED
@@ -23,6 +23,6 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "guard-rspec"
24
24
  spec.add_development_dependency "terminal-notifier-guard"
25
25
  spec.add_development_dependency "codeclimate-test-reporter"
26
- spec.add_dependency "investtools-ftpd"
26
+ spec.add_dependency "ftpd", '>= 1.1.1'
27
27
  spec.add_dependency "activesupport"
28
28
  end
@@ -19,5 +19,9 @@ module FTPMVC
19
19
  def exists?(path)
20
20
  not @fs.resolve(path).nil?
21
21
  end
22
+
23
+ def put(path, stream)
24
+ @fs.resolve(::File.dirname(path)).put(::File.basename(path), stream)
25
+ end
22
26
  end
23
27
  end
@@ -8,7 +8,7 @@ module FTPMVC
8
8
  class Application
9
9
  extend Forwardable
10
10
 
11
- def_delegators :@filter_chain, :index, :get, :directory?, :exists?
11
+ def_delegators :@filter_chain, :index, :get, :directory?, :exists?, :put
12
12
  def_delegators :auth, :authenticate
13
13
 
14
14
  def initialize(&block)
@@ -16,6 +16,10 @@ module FTPMVC
16
16
  file ? file.data : nil
17
17
  end
18
18
 
19
+ def put(path, stream)
20
+ puts 'foooi!!!'
21
+ end
22
+
19
23
  def resolve(path)
20
24
  path = path.gsub(%r{^/}, '')
21
25
  return self if path.empty?
data/lib/ftpmvc/filter.rb CHANGED
@@ -4,7 +4,7 @@ module FTPMVC
4
4
  class Filter
5
5
  extend Forwardable
6
6
 
7
- def_delegators :@chain, :index, :get, :directory?, :exists?
7
+ def_delegators :@chain, :index, :get, :directory?, :exists?, :put
8
8
 
9
9
  def initialize(fs, chain, options={})
10
10
  @fs, @chain, @options = fs, chain, options
@@ -25,6 +25,11 @@ module FTPMVC
25
25
  yield @application.get(path)
26
26
  end
27
27
 
28
+ def write(path, stream)
29
+ logger.debug { "FTPMVC::Ftpd::FileSystem#write(#{path}, ...)" }
30
+ @application.put(path, stream)
31
+ end
32
+
28
33
  def accessible?(path)
29
34
  logger.debug { "FTPMVC::Ftpd::FileSystem#accessible?(#{path})" }
30
35
  true
@@ -26,5 +26,9 @@ module FTPMVC
26
26
  response.force_encoding(encoding) unless encoding.nil?
27
27
  end
28
28
  end
29
+
30
+ def put(ftp, path, content)
31
+ ftp.storlines("STOR #{path}", StringIO.new(content))
32
+ end
29
33
  end
30
34
  end
@@ -1,3 +1,3 @@
1
1
  module FTPMVC
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -55,19 +55,21 @@ describe 'Operation' do
55
55
  end
56
56
  end
57
57
  end
58
- describe 'GET' do
59
- it 'is the file content' do
58
+ describe 'MDTM' do
59
+ it 'is the modification time of a file' do
60
60
  with_application(app) do |ftp|
61
61
  ftp.login
62
- expect(get(ftp, '/music/pink_floyd.mp3')).to eq 'content'
62
+ expect(ftp.mdtm('/music/pink_floyd.mp3')).to be_a_kind_of String
63
63
  end
64
64
  end
65
65
  end
66
- describe 'MDTM' do
67
- it 'is the modification time of a file' do
66
+ describe 'PUT' do
67
+ it 'is processed by the directory' do
68
+ expect_any_instance_of(MusicDirectory)
69
+ .to receive(:put)
68
70
  with_application(app) do |ftp|
69
71
  ftp.login
70
- expect(ftp.mdtm('/music/pink_floyd.mp3')).to be_a_kind_of String
72
+ put(ftp, '/music/the_doors.mp3', 'light my fire')
71
73
  end
72
74
  end
73
75
  end
@@ -57,4 +57,14 @@ describe FTPMVC::AccessFilesystemFilter do
57
57
  .to eq 'Pink Floyd'
58
58
  end
59
59
  end
60
+
61
+ describe '#put' do
62
+ let(:stream) { double('stream') }
63
+ it 'forwards to directory' do
64
+ expect_any_instance_of(MusicDirectory)
65
+ .to receive(:put)
66
+ .with 'songs.txt', stream
67
+ filter.put('/music/songs.txt', stream)
68
+ end
69
+ end
60
70
  end
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ftpmvc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - André Aizim Kelmanson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-12 00:00:00.000000000 Z
11
+ date: 2015-01-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: guard-rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: terminal-notifier-guard
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: codeclimate-test-reporter
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: investtools-ftpd
84
+ name: ftpd
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: 1.1.1
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: 1.1.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: activesupport
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: FTP MVC framework
@@ -115,9 +115,9 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ".gitignore"
119
- - ".rspec"
120
- - ".travis.yml"
118
+ - .gitignore
119
+ - .rspec
120
+ - .travis.yml
121
121
  - Gemfile
122
122
  - Guardfile
123
123
  - LICENSE.txt
@@ -165,12 +165,12 @@ require_paths:
165
165
  - lib
166
166
  required_ruby_version: !ruby/object:Gem::Requirement
167
167
  requirements:
168
- - - ">="
168
+ - - '>='
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - ">="
173
+ - - '>='
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  requirements: []