pasu 0.0.3 → 0.1.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.
data/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Pasu is a simple HTTP Server for serving (and uploading) Files.
6
6
 
7
7
  ## Requirements
8
- - Ruby ~> 2.0
8
+ - Ruby >= 1.9.3
9
9
 
10
10
  ## Installation
11
11
 
@@ -26,6 +26,7 @@ $ pasu
26
26
  | -v, --version | Print version. | |
27
27
  | -d, --directory DIRECTORY | Set the base directory for listing files. | pwd |
28
28
  | --no-recursion | Don't recursively list directories. | false |
29
+ | --no-dotfiles | Don't list dotfiles. | false |
29
30
  | -u, --upload | Allow uploading of files. | false |
30
31
  | --basic-auth USER:PW | Only allowing requests with valid user/pw combination provided. | None |
31
32
  | -b, --bind HOST | Bind the server to the given host. | 0.0.0.0 |
@@ -4,7 +4,8 @@ module Pasu
4
4
  plugin Cuba::Render
5
5
 
6
6
  settings[:render][:template_engine] = 'slim'
7
- settings[:render][:views] = File.join(__dir__, '..', '..', 'views')
7
+ dir = File.expand_path(File.dirname(__FILE__))
8
+ settings[:render][:views] = File.join(dir, '..', '..', 'views')
8
9
 
9
10
  class << self
10
11
  def setup(options = {})
@@ -17,6 +18,7 @@ module Pasu
17
18
  {
18
19
  directory: Pathname.pwd,
19
20
  recursive: true,
21
+ dotfiles: true,
20
22
  upload: false,
21
23
  basic_auth: {},
22
24
  host: '0.0.0.0',
@@ -116,6 +118,7 @@ module Pasu
116
118
  path.children.tap do |files|
117
119
  files.select! { |file| (file.directory? || file.file?) && file.readable? }
118
120
  files.sort_by! { |file| [file.ftype, file.basename] }
121
+ files.reject! { |file| unallowed_dotfile?(file) }
119
122
 
120
123
  if settings[:recursive]
121
124
  if path != settings[:directory]
@@ -132,17 +135,22 @@ module Pasu
132
135
  end
133
136
 
134
137
  def file
135
- @path.file? && @path.readable? && allowed_directory?(@path.parent)
138
+ @path.file? && @path.readable? && allowed_directory?(@path.parent) && !unallowed_dotfile?(@path)
136
139
  end
137
140
 
138
141
  def allowed_directory?(directory)
139
142
  is_descendant = directory.ascend do |ascendant|
143
+ return false if unallowed_dotfile?(ascendant)
140
144
  break(true) if ascendant == settings[:directory]
141
145
  end
142
146
 
143
147
  (settings[:recursive] || directory == settings[:directory]) && is_descendant
144
148
  end
145
149
 
150
+ def unallowed_dotfile?(path)
151
+ !settings[:dotfiles] && File.basename(path).start_with?('.')
152
+ end
153
+
146
154
  # TODO: wb correct?
147
155
  def save_file(directory, file)
148
156
  path = directory.join(file[:filename])
@@ -27,6 +27,10 @@ module Pasu
27
27
  options[:recursive] = false
28
28
  end
29
29
 
30
+ p.on('--no-dotfiles', "Don't list dotfiles. (Default: false)") do
31
+ options[:dotfiles] = false
32
+ end
33
+
30
34
  p.on('-u', '--upload', 'Allow uploading of files. (Default: false)') do
31
35
  options[:upload] = true
32
36
  end
@@ -1,3 +1,3 @@
1
1
  module Pasu
2
- VERSION = Gem::Version.new('0.0.3')
2
+ VERSION = Gem::Version.new('0.1.0')
3
3
  end
@@ -19,15 +19,15 @@ Gem::Specification.new do |spec|
19
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
20
  spec.require_paths = ['lib']
21
21
 
22
- spec.required_ruby_version = '~> 2.0'
22
+ spec.required_ruby_version = '>= 1.9.3'
23
23
 
24
24
  spec.add_runtime_dependency 'cuba', '~> 3.1'
25
25
  spec.add_runtime_dependency 'cuba-sendfile', '0.0.2'
26
26
  spec.add_runtime_dependency 'slim', '~> 2.0'
27
27
  spec.add_runtime_dependency 'tilt', '~> 2.0'
28
- spec.add_runtime_dependency 'puma', '~> 2.8'
28
+ spec.add_runtime_dependency 'puma', '~> 2.7'
29
29
 
30
- spec.add_development_dependency 'bundler', '~> 1.6'
31
- spec.add_development_dependency 'rake', '~> 10.2'
30
+ spec.add_development_dependency 'bundler', '~> 1.5'
31
+ spec.add_development_dependency 'rake', '~> 10.1'
32
32
  spec.add_development_dependency 'pry', '0.9.12.6'
33
33
  end
metadata CHANGED
@@ -1,32 +1,36 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pasu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Tobias Bühlmann
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-04-06 00:00:00.000000000 Z
12
+ date: 2014-09-16 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: cuba
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - "~>"
19
+ - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: '3.1'
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - "~>"
27
+ - - ~>
25
28
  - !ruby/object:Gem::Version
26
29
  version: '3.1'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: cuba-sendfile
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - '='
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - '='
39
44
  - !ruby/object:Gem::Version
@@ -41,76 +46,87 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: slim
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - "~>"
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
53
  version: '2.0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - "~>"
59
+ - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '2.0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: tilt
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - "~>"
67
+ - - ~>
60
68
  - !ruby/object:Gem::Version
61
69
  version: '2.0'
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - "~>"
75
+ - - ~>
67
76
  - !ruby/object:Gem::Version
68
77
  version: '2.0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: puma
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - "~>"
83
+ - - ~>
74
84
  - !ruby/object:Gem::Version
75
- version: '2.8'
85
+ version: '2.7'
76
86
  type: :runtime
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - "~>"
91
+ - - ~>
81
92
  - !ruby/object:Gem::Version
82
- version: '2.8'
93
+ version: '2.7'
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: bundler
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - "~>"
99
+ - - ~>
88
100
  - !ruby/object:Gem::Version
89
- version: '1.6'
101
+ version: '1.5'
90
102
  type: :development
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - "~>"
107
+ - - ~>
95
108
  - !ruby/object:Gem::Version
96
- version: '1.6'
109
+ version: '1.5'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: rake
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
- - - "~>"
115
+ - - ~>
102
116
  - !ruby/object:Gem::Version
103
- version: '10.2'
117
+ version: '10.1'
104
118
  type: :development
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
- - - "~>"
123
+ - - ~>
109
124
  - !ruby/object:Gem::Version
110
- version: '10.2'
125
+ version: '10.1'
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: pry
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
131
  - - '='
116
132
  - !ruby/object:Gem::Version
@@ -118,6 +134,7 @@ dependencies:
118
134
  type: :development
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
139
  - - '='
123
140
  - !ruby/object:Gem::Version
@@ -130,7 +147,7 @@ executables:
130
147
  extensions: []
131
148
  extra_rdoc_files: []
132
149
  files:
133
- - ".gitignore"
150
+ - .gitignore
134
151
  - Gemfile
135
152
  - LICENSE
136
153
  - README.md
@@ -150,25 +167,26 @@ files:
150
167
  homepage: https://github.com/tbuehlmann/pasu
151
168
  licenses:
152
169
  - MIT
153
- metadata: {}
154
170
  post_install_message:
155
171
  rdoc_options: []
156
172
  require_paths:
157
173
  - lib
158
174
  required_ruby_version: !ruby/object:Gem::Requirement
175
+ none: false
159
176
  requirements:
160
- - - "~>"
177
+ - - ! '>='
161
178
  - !ruby/object:Gem::Version
162
- version: '2.0'
179
+ version: 1.9.3
163
180
  required_rubygems_version: !ruby/object:Gem::Requirement
181
+ none: false
164
182
  requirements:
165
- - - ">="
183
+ - - ! '>='
166
184
  - !ruby/object:Gem::Version
167
185
  version: '0'
168
186
  requirements: []
169
187
  rubyforge_project:
170
- rubygems_version: 2.2.2
188
+ rubygems_version: 1.8.29
171
189
  signing_key:
172
- specification_version: 4
190
+ specification_version: 3
173
191
  summary: Simple File Serving HTTP Server
174
192
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 112b521d011f9cea2c3cab632bc0fd8c421fcb92
4
- data.tar.gz: af9d1fa92717476777e3f601b689a87989264a2b
5
- SHA512:
6
- metadata.gz: d71284ce3d1745d4d2093b7152a56feb5a2decaa02bbb6dab29e5019b1c4b6cbe02e2cfb263193a4f23d4b51bac1709d455ca0ca45f863739531ed4721e7e11f
7
- data.tar.gz: f6d13802da6b30c7fecd3d15e741571b4b0147cdf9d93fe5995d879279c632bf3b856d9f383d6d42ebda29590c037677128df4f0362f71e3992bf7ccb8f4cac8