ftpmvc 0.3.1 → 0.4.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: 79a923c8d12fec0e8aee16d6bcf75d15969c12b8
4
- data.tar.gz: 1b2ab2266a73e6e1263b3e9f66456cc0d93393aa
3
+ metadata.gz: 2434536570e3300d6e307c591e223b856a958055
4
+ data.tar.gz: c4276813096a5a84479fcd73f0999d41bea5b670
5
5
  SHA512:
6
- metadata.gz: 723985bcf387095631590083826bdb3013ba5c77b0b59707adea0989e31144eb3c1c20704eed44a10526dde9ed82b32bc79935091391197278aa920aa5e869a7
7
- data.tar.gz: 6c159810a90943ea5417f1d53a0dc1ebab8557e1f0ea090535919f06c98ecf41757c2ab1bf6dc5c6d48c7c1d7cdc56429d22425ba8aefb68263d06bae7835299
6
+ metadata.gz: bb33c101552cb588f2737aa0bff98bbba406fdf535b57bfb5045ac066ead934c3e057c2a5ba81c1b5479217c8286013559b1a1b16b36bfb76462f86a5961483b
7
+ data.tar.gz: 3f728d964017765a085df53446276db3bb4becf9d48044c6de31cbeb83f33dd40a5cc4953358515f33045e54b6bf9e4a9fff0863254d953be17644e87e085338
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 "ftpd"
26
+ spec.add_dependency "investtools-ftpd"
27
27
  spec.add_dependency "activesupport"
28
28
  end
@@ -2,16 +2,12 @@ require 'active_support/concern'
2
2
  require 'csv'
3
3
 
4
4
  module FTPMVC
5
- module Formats
5
+ module Format
6
6
  module CSV
7
7
  extend ActiveSupport::Concern
8
- @@date_format = nil
9
8
 
10
- def header
11
- end
12
-
13
- def name
14
- "#{super}.csv"
9
+ def initialize(filename)
10
+ super "#{filename}.csv"
15
11
  end
16
12
 
17
13
  def data
@@ -20,6 +16,9 @@ module FTPMVC
20
16
 
21
17
  protected
22
18
 
19
+ def header
20
+ end
21
+
23
22
  def csv
24
23
  ::CSV.generate do |csv|
25
24
  csv << header if header.present?
@@ -1,31 +1,42 @@
1
+ require 'ftpmvc/logger'
2
+
1
3
  module FTPMVC
2
4
  module Ftpd
3
5
  class FileSystem
6
+
7
+ include Logger
8
+
4
9
  def initialize(application)
5
10
  @application = application
6
11
  end
7
12
 
8
13
  def dir(path)
14
+ logger.debug { "FTPMVC::Ftpd::FileSystem#dir(#{path})" }
9
15
  @application.index(path.gsub('/*', '')).map { |node| ::File.join(path, node.name) }
10
16
  end
11
17
 
12
18
  def directory?(path)
19
+ logger.debug { "FTPMVC::Ftpd::FileSystem#directory?(#{path})" }
13
20
  @application.directory?(path.gsub('/*', ''))
14
21
  end
15
22
 
16
23
  def read(path)
24
+ logger.debug { "FTPMVC::Ftpd::FileSystem#read(#{path})" }
17
25
  yield @application.get(path)
18
26
  end
19
27
 
20
28
  def accessible?(path)
29
+ logger.debug { "FTPMVC::Ftpd::FileSystem#accessible?(#{path})" }
21
30
  true
22
31
  end
23
32
 
24
33
  def exists?(path)
34
+ logger.debug { "FTPMVC::Ftpd::FileSystem#exists?(#{path})" }
25
35
  @application.exists?(path)
26
36
  end
27
37
 
28
38
  def file_info(path)
39
+ logger.debug { "FTPMVC::Ftpd::FileSystem#file_info(#{path})" }
29
40
  ::Ftpd::FileInfo.new(
30
41
  :ftype => directory?(path) ? 'directory' : 'file',
31
42
  :group => 'nogroup',
@@ -0,0 +1,35 @@
1
+ require 'active_support/concern'
2
+
3
+ module FTPMVC
4
+
5
+ def self.logger=(logger)
6
+ @logger = logger
7
+ end
8
+
9
+ def self.logger
10
+ @logger ||= create_logger
11
+ end
12
+
13
+ module Logger
14
+
15
+ extend ActiveSupport::Concern
16
+
17
+ def logger
18
+ FTPMVC.logger
19
+ end
20
+
21
+ module ClassMethods
22
+ def logger
23
+ FTPMVC.logger
24
+ end
25
+ end
26
+ end
27
+
28
+ protected
29
+
30
+ def self.create_logger
31
+ ::Logger.new(STDERR).tap do |logger|
32
+ logger.level = ::Logger::INFO
33
+ end
34
+ end
35
+ end
data/lib/ftpmvc/server.rb CHANGED
@@ -14,6 +14,10 @@ module FTPMVC
14
14
  driver = Ftpd::Driver.new(application)
15
15
  @server = ::Ftpd::FtpServer.new(driver)
16
16
  @server.interface, @server.port = @address, @port
17
+ @server.on_exception do |e|
18
+ puts e
19
+ puts e.backtrace
20
+ end
17
21
  @server.start
18
22
  @port = @server.bound_port
19
23
  self
@@ -22,10 +26,7 @@ module FTPMVC
22
26
  def start(application)
23
27
  start_in_new_thread(application)
24
28
  yield self if block_given?
25
- # Manter o instance_variable_get até o pull request #29 ser aprovado
26
- # o uma nova versão ficar disponível.
27
- @server.instance_variable_get(:@server_thread).join
28
- # @server.join
29
+ @server.join
29
30
  end
30
31
 
31
32
  def stop
@@ -18,12 +18,12 @@ module FTPMVC
18
18
  end
19
19
  end
20
20
 
21
- def get(ftp, path)
21
+ def get(ftp, path, encoding=nil)
22
22
  ''.tap do |response|
23
23
  ftp.retrbinary("RETR #{path}", 1024) do |block|
24
- response << block.force_encoding('UTF-8')
24
+ response << block
25
25
  end
26
- response
26
+ response.force_encoding(encoding) unless encoding.nil?
27
27
  end
28
28
  end
29
29
  end
@@ -1,3 +1,3 @@
1
1
  module FTPMVC
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
data/lib/ftpmvc.rb CHANGED
@@ -4,3 +4,4 @@ require 'ftpmvc/file'
4
4
  require 'ftpmvc/application'
5
5
  require 'ftpmvc/format'
6
6
  require 'ftpmvc/authenticator'
7
+ require 'ftpmvc/logger'
@@ -3,10 +3,10 @@ require './spec/spec_helper'
3
3
  require 'ftpmvc/format/csv'
4
4
  require 'ftpmvc/file'
5
5
 
6
- describe FTPMVC::Formats::CSV do
6
+ describe FTPMVC::Format::CSV do
7
7
  let(:csv_file_class) do
8
8
  Class.new(FTPMVC::File) do
9
- include FTPMVC::Formats::CSV
9
+ include FTPMVC::Format::CSV
10
10
  def rows
11
11
  [['a', 'b', 'c'], ['d', 'e', 'f']]
12
12
  end
@@ -38,7 +38,7 @@ describe FTPMVC::Formats::CSV do
38
38
  context 'when date_format is defined' do
39
39
  let(:csv_file_class) do
40
40
  Class.new(FTPMVC::File) do
41
- include FTPMVC::Formats::CSV
41
+ include FTPMVC::Format::CSV
42
42
  date_format '%m/%d/%y'
43
43
  def rows
44
44
  [[Date.parse('2011-01-01')]]
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.3.1
4
+ version: 0.4.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-06 00:00:00.000000000 Z
11
+ date: 2014-11-12 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: ftpd
84
+ name: investtools-ftpd
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
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
96
  version: '0'
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
@@ -142,6 +142,7 @@ files:
142
142
  - lib/ftpmvc/ftpd.rb
143
143
  - lib/ftpmvc/ftpd/driver.rb
144
144
  - lib/ftpmvc/ftpd/file_system.rb
145
+ - lib/ftpmvc/logger.rb
145
146
  - lib/ftpmvc/server.rb
146
147
  - lib/ftpmvc/test_helpers.rb
147
148
  - lib/ftpmvc/version.rb
@@ -164,12 +165,12 @@ require_paths:
164
165
  - lib
165
166
  required_ruby_version: !ruby/object:Gem::Requirement
166
167
  requirements:
167
- - - '>='
168
+ - - ">="
168
169
  - !ruby/object:Gem::Version
169
170
  version: '0'
170
171
  required_rubygems_version: !ruby/object:Gem::Requirement
171
172
  requirements:
172
- - - '>='
173
+ - - ">="
173
174
  - !ruby/object:Gem::Version
174
175
  version: '0'
175
176
  requirements: []
@@ -188,4 +189,3 @@ test_files:
188
189
  - spec/lib/ftpmvc/format/csv_spec.rb
189
190
  - spec/lib/ftpmvc/server_spec.rb
190
191
  - spec/spec_helper.rb
191
- has_rdoc: