ftpmvc 0.3.1 → 0.4.0

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