boxlet 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|