boxlet 0.1.3 → 0.2.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 +4 -4
- data/LICENSE.txt +0 -0
- data/README.md +8 -1
- data/Rakefile +0 -0
- data/boxlet.gemspec +4 -3
- data/config.yml +7 -0
- data/lib/boxlet.rb +0 -0
- data/lib/boxlet/app.rb +0 -0
- data/lib/boxlet/app/controller.rb +64 -41
- data/lib/boxlet/app/router.rb +0 -0
- data/lib/boxlet/config.rb +0 -0
- data/lib/boxlet/db.rb +0 -0
- data/lib/boxlet/log.rb +0 -0
- data/lib/boxlet/runner.rb +0 -0
- data/lib/boxlet/version.rb +1 -1
- data/lib/handlers/thin.rb +0 -1
- data/lib/rack/boxlet_url_builder.rb +0 -0
- data/lib/rack/boxlet_url_map.rb +6 -6
- data/lib/rack/file_upload.rb +0 -0
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cad509b0ace0721f642bdbfa0a3642762eed408
|
4
|
+
data.tar.gz: 0f698f040646e23326774e6b71346b336a4d8232
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9efe8a0f63c60c1c8b82d06784225b5be520d18832aced1060397673adeae075c3a9377ba66408ce1a0b1105c4c656a3d8530424b41f3a67e4e80be84b97e7f0
|
7
|
+
data.tar.gz: 1b9c03604c0e9fd6b98ae4b70818a804f4c80a55b158d54f41d18ce299a6ccec30c81693caaab91cdca778a70b38776e2eb0252154e9f1504fdef7015da6b27e
|
data/LICENSE.txt
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -51,6 +51,13 @@ host: localhost
|
|
51
51
|
server_type: thin
|
52
52
|
daemonize: false
|
53
53
|
|
54
|
+
#use s3
|
55
|
+
s3:
|
56
|
+
enabled: false
|
57
|
+
access_key_id:
|
58
|
+
secret_access_key:
|
59
|
+
bucket: boxlet
|
60
|
+
|
54
61
|
# Database config
|
55
62
|
db:
|
56
63
|
development:
|
@@ -65,7 +72,7 @@ db:
|
|
65
72
|
|
66
73
|
```
|
67
74
|
|
68
|
-
|
75
|
+
Many config options are available as command-line parameters
|
69
76
|
|
70
77
|
- Path: `-f` or `--path`
|
71
78
|
- Default: `./`
|
data/Rakefile
CHANGED
File without changes
|
data/boxlet.gemspec
CHANGED
@@ -21,10 +21,11 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_dependency "rack", "~> 1.5"
|
25
|
-
spec.add_dependency "rack-contrib", "~> 1.1"
|
24
|
+
spec.add_dependency "rack", "~> 1.5.2"
|
25
|
+
spec.add_dependency "rack-contrib", "~> 1.1.0"
|
26
26
|
spec.add_dependency "thin", "~> 1.6"
|
27
27
|
spec.add_dependency "ImageResize", "~> 0.0.5"
|
28
|
+
spec.add_dependency "aws-sdk", "~> 1.58.0"
|
28
29
|
|
29
30
|
spec.add_runtime_dependency 'multi_json', '~> 1.10', '>= 1.10.1'
|
30
31
|
spec.add_runtime_dependency 'mongo', '~> 1.10', '>= 1.10.2'
|
@@ -33,4 +34,4 @@ Gem::Specification.new do |spec|
|
|
33
34
|
|
34
35
|
spec.add_development_dependency "bundler", "~> 1.3"
|
35
36
|
spec.add_development_dependency "rake", "~> 10.3"
|
36
|
-
end
|
37
|
+
end
|
data/config.yml
CHANGED
data/lib/boxlet.rb
CHANGED
File without changes
|
data/lib/boxlet/app.rb
CHANGED
File without changes
|
@@ -2,6 +2,7 @@ require 'date'
|
|
2
2
|
require 'digest'
|
3
3
|
require 'thread'
|
4
4
|
require 'ImageResize'
|
5
|
+
require 'aws-sdk'
|
5
6
|
|
6
7
|
# routes = {
|
7
8
|
# ["/", :get] => :index,
|
@@ -111,6 +112,28 @@ module Boxlet
|
|
111
112
|
|
112
113
|
t = Thread.new do
|
113
114
|
Image.resize(new_path, new_thumb_path, 150, 150)
|
115
|
+
|
116
|
+
if Boxlet.config[:s3][:enabled]
|
117
|
+
pp 'Uploading to S3...' if Boxlet.config[:debug]
|
118
|
+
|
119
|
+
s3 = AWS::S3.new(
|
120
|
+
:access_key_id => Boxlet.config[:s3][:access_key_id],
|
121
|
+
:secret_access_key => Boxlet.config[:s3][:secret_access_key]
|
122
|
+
)
|
123
|
+
if s3.buckets[Boxlet.config[:s3][:bucket]]
|
124
|
+
.objects["#{@params[:uuid]}/#{new_filename}"]
|
125
|
+
.write(:file => new_path) &&
|
126
|
+
s3.buckets[Boxlet.config[:s3][:bucket]]
|
127
|
+
.objects["#{@params[:uuid]}/#{new_thumb_filename}"]
|
128
|
+
.write(:file => new_thumb_path)
|
129
|
+
|
130
|
+
FileUtils.rm(new_path)
|
131
|
+
FileUtils.rm(new_thumb_path)
|
132
|
+
pp 'Uploading to S3... Done!' if Boxlet.config[:debug]
|
133
|
+
else
|
134
|
+
pp 'Uploading to S3... Error!!' if Boxlet.config[:debug]
|
135
|
+
end
|
136
|
+
end
|
114
137
|
end
|
115
138
|
|
116
139
|
{response: true}
|
@@ -147,61 +170,61 @@ module Boxlet
|
|
147
170
|
|
148
171
|
private
|
149
172
|
|
150
|
-
|
151
|
-
|
152
|
-
|
173
|
+
def db
|
174
|
+
Boxlet::Db.connection
|
175
|
+
end
|
153
176
|
|
154
|
-
|
155
|
-
|
156
|
-
|
177
|
+
def set_user
|
178
|
+
user_model.merge db.collection('users').find({uuid: @params[:uuid]}).to_a.first || {}
|
179
|
+
end
|
157
180
|
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
181
|
+
def user_upload_dir
|
182
|
+
dir_name = @params[:uuid] || ''
|
183
|
+
user_upload_dir_name = Boxlet.config[:upload_dir] + "/" + dir_name
|
184
|
+
Dir.mkdir(user_upload_dir_name) unless File.exists?(user_upload_dir_name)
|
162
185
|
|
163
|
-
|
164
|
-
|
165
|
-
|
186
|
+
if @params[:uuid]
|
187
|
+
dir_shortname = Digest::MD5.hexdigest(dir_name)
|
188
|
+
user_upload_dir_shortname = Boxlet.config[:upload_dir] + "/" + dir_shortname
|
166
189
|
|
167
|
-
|
190
|
+
File.symlink(dir_name, user_upload_dir_shortname) if !File.symlink? user_upload_dir_shortname
|
168
191
|
|
169
|
-
|
170
|
-
|
192
|
+
if File.symlink? user_upload_dir_shortname
|
193
|
+
user_upload_dir_shortname
|
194
|
+
else
|
195
|
+
user_upload_dir_name
|
196
|
+
end
|
171
197
|
else
|
172
198
|
user_upload_dir_name
|
173
199
|
end
|
174
|
-
else
|
175
|
-
user_upload_dir_name
|
176
200
|
end
|
177
|
-
end
|
178
201
|
|
179
|
-
|
180
|
-
|
181
|
-
|
202
|
+
def free_space?
|
203
|
+
Boxlet::App.free_space > 50
|
204
|
+
end
|
182
205
|
|
183
206
|
|
184
|
-
|
207
|
+
# Models
|
185
208
|
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
209
|
+
def file_model
|
210
|
+
{
|
211
|
+
filename: '',
|
212
|
+
size: 0,
|
213
|
+
local_date: 0,
|
214
|
+
thumbnail: '',
|
215
|
+
asset_path: '',
|
216
|
+
asset_date: '',
|
217
|
+
uuid: []
|
218
|
+
}
|
219
|
+
end
|
197
220
|
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
221
|
+
def user_model
|
222
|
+
{
|
223
|
+
uuid: '',
|
224
|
+
notifications: 1,
|
225
|
+
last_activity: Time.now
|
226
|
+
}
|
227
|
+
end
|
205
228
|
|
206
229
|
end
|
207
230
|
end
|
data/lib/boxlet/app/router.rb
CHANGED
File without changes
|
data/lib/boxlet/config.rb
CHANGED
File without changes
|
data/lib/boxlet/db.rb
CHANGED
File without changes
|
data/lib/boxlet/log.rb
CHANGED
File without changes
|
data/lib/boxlet/runner.rb
CHANGED
File without changes
|
data/lib/boxlet/version.rb
CHANGED
data/lib/handlers/thin.rb
CHANGED
@@ -20,7 +20,6 @@ module Boxlet
|
|
20
20
|
# default_host = environment == 'development' ? : '0.0.0.0'
|
21
21
|
host = @params.delete(:Host) || 'localhost'
|
22
22
|
port = @params.delete(:Port) || 8077
|
23
|
-
# pp @params
|
24
23
|
args = [host, port, @app, @params]
|
25
24
|
|
26
25
|
# Thin versions below 0.8.0 do not support additional options
|
File without changes
|
data/lib/rack/boxlet_url_map.rb
CHANGED
@@ -36,14 +36,14 @@ module Rack
|
|
36
36
|
def call(env)
|
37
37
|
path = env["PATH_INFO"]
|
38
38
|
script_name = env['SCRIPT_NAME']
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
http_host = env['HTTP_HOST']
|
40
|
+
server_name = env['SERVER_NAME']
|
41
|
+
server_port = env['SERVER_PORT']
|
42
42
|
|
43
43
|
@mapping.each do |host, location, match, app|
|
44
|
-
unless
|
45
|
-
||
|
46
|
-
|| (!host && (
|
44
|
+
unless http_host == host \
|
45
|
+
|| server_name == host \
|
46
|
+
|| (!host && (http_host == server_name || http_host == server_name + ':' + server_port))
|
47
47
|
next
|
48
48
|
end
|
49
49
|
|
data/lib/rack/file_upload.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boxlet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- arktisklada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.5.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.5.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack-contrib
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.1.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: thin
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 0.0.5
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: aws-sdk
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.58.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.58.0
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: multi_json
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|