desviar 0.0.9 → 0.0.10
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 +16 -4
- data/config.ru +3 -6
- data/desviar.gemspec +14 -1
- data/desviar.rb +14 -9
- data/lib/version.rb +3 -3
- metadata +150 -13
- data/Gemfile +0 -10
data/README.md
CHANGED
@@ -19,16 +19,27 @@ troubleshooting, you can store content in a file.
|
|
19
19
|
|
20
20
|
#### Installation ####
|
21
21
|
|
22
|
-
|
22
|
+
##### From github #####
|
23
|
+
Clone this repo, copy _config/config.rb.example_ to config/config.rb, and
|
23
24
|
perform the following:
|
24
25
|
|
25
|
-
sudo apt-get install rack libsqlite3-dev
|
26
|
+
sudo apt-get install rack make libsqlite3-dev
|
26
27
|
# package names above may differ if not using Ubuntu
|
27
28
|
sudo gem install bundler
|
28
29
|
sudo bundle install
|
29
30
|
rackup -p 4567
|
30
31
|
|
31
|
-
Default credential of [app](http://localhost:4567) is user _desviar_, pw _password_.
|
32
|
+
Default credential of [app](http://localhost:4567) is user _desviar_, pw _password_. Consider moving the default database location from /dev/shm/desviar, and set its permissions to 0600.
|
33
|
+
|
34
|
+
##### From rubygems.org #####
|
35
|
+
Invoke the following:
|
36
|
+
|
37
|
+
sudo apt-get install make libsqlite3-dev
|
38
|
+
gem install desviar
|
39
|
+
wget https://raw.github.com/instantlinux/desviar/master/config.ru
|
40
|
+
rackup -p 4567
|
41
|
+
|
42
|
+
You can modify config.ru to direct log output to a different file.
|
32
43
|
|
33
44
|
#### Usage ####
|
34
45
|
|
@@ -37,6 +48,7 @@ Commands:
|
|
37
48
|
* /desviar/xxx - retrieve pre-authenticated content (if a URISUFFIX was specified, it must be appended to xxx)
|
38
49
|
* /list - display a table of most-recently uploaded URIs
|
39
50
|
* /link/nnn - retrieve details
|
51
|
+
* /config - set runtime configuration
|
40
52
|
|
41
53
|
Here's an example of creating a new link via _curl_:
|
42
54
|
|
@@ -56,7 +68,7 @@ Here's an example of creating a new link via _curl_:
|
|
56
68
|
- [x] Encrypted database
|
57
69
|
- [ ] Memcached storage (for performance at scale)
|
58
70
|
- [x] Pre-shared/concealed URI suffix
|
59
|
-
- [
|
71
|
+
- [x] Activity log output (syslog)
|
60
72
|
- [x] Database cleanup tool
|
61
73
|
- [x] Tested under Ruby 1.9.3
|
62
74
|
|
data/config.ru
CHANGED
@@ -1,13 +1,10 @@
|
|
1
|
-
require
|
2
|
-
|
1
|
+
require 'desviar'
|
2
|
+
|
3
|
+
log = File.new("/tmp/desviar.log", "a+", 0600)
|
3
4
|
$stdout.reopen(log)
|
4
5
|
$stderr.reopen(log)
|
5
6
|
|
6
7
|
run Rack::URLMap.new({
|
7
8
|
"/" => Desviar::Authorized,
|
8
|
-
"/0/config" => Desviar::Authorized,
|
9
|
-
"/0/create" => Desviar::Authorized,
|
10
|
-
"/0/link" => Desviar::Authorized,
|
11
|
-
"/0/list" => Desviar::Authorized,
|
12
9
|
"/desviar" => Desviar::Public
|
13
10
|
})
|
data/desviar.gemspec
CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
13
13
|
# spec.test_files = spec.files.select{ |path| path =~ /^test\/.*/ }
|
14
14
|
spec.require_paths = ["config", "lib", "public", "views"]
|
15
15
|
spec.files = %x[git ls-files].split.reject do |out|
|
16
|
-
out =~ %r{^\.} || out =~ %r{/^doc/api/}
|
16
|
+
out =~ %r{^\.} || out =~ %r{/^doc/api/} || out =~ %r{^Gemfile}
|
17
17
|
end
|
18
18
|
spec.description = <<-end.gsub /^ /,''
|
19
19
|
Desviar provides URL redirection; some possible applications include:
|
@@ -25,8 +25,21 @@ Gem::Specification.new do |spec|
|
|
25
25
|
#{'-'*78}
|
26
26
|
Desviar v#{spec.version}
|
27
27
|
|
28
|
+
To configure, download from:
|
29
|
+
https://raw.github.com/instantlinux/desviar/master/config/config.rb.example
|
30
|
+
into a new file config.rb and export DESVIAR_CONFIG=<path>/config.rb.
|
31
|
+
|
28
32
|
Thanks for using Desviar.
|
29
33
|
#{'-'*78}
|
30
34
|
end
|
35
|
+
spec.add_dependency "dm-core", ">= 1.2"
|
36
|
+
spec.add_dependency "dm-migrations", ">= 1.2"
|
37
|
+
spec.add_dependency "dm-sqlite-adapter", ">= 1.2"
|
38
|
+
spec.add_dependency "dm-timestamps", ">= 1.2"
|
39
|
+
spec.add_dependency "dm-validations", ">= 1.2"
|
40
|
+
spec.add_dependency "rack-recaptcha", ">= 0.6"
|
41
|
+
spec.add_dependency "rack-test", ">= 0.6"
|
31
42
|
spec.add_dependency "sinatra", ">= 1.4"
|
43
|
+
spec.add_dependency "syntaxi", ">= 0.5"
|
44
|
+
spec.add_dependency "yajl-ruby", ">= 1.1"
|
32
45
|
end
|
data/desviar.rb
CHANGED
@@ -23,12 +23,16 @@ require 'net/http'
|
|
23
23
|
require 'rack/test'
|
24
24
|
require 'rack/recaptcha'
|
25
25
|
|
26
|
-
|
27
|
-
require '
|
28
|
-
|
29
|
-
require '
|
26
|
+
if ENV['DESVIAR_CONFIG']
|
27
|
+
require ENV['DESVIAR_CONFIG']
|
28
|
+
else
|
29
|
+
require File.expand_path '../config/config', __FILE__
|
30
|
+
end
|
31
|
+
require File.expand_path '../lib/version', __FILE__
|
32
|
+
require File.expand_path '../lib/encrypt', __FILE__
|
33
|
+
require File.expand_path '../lib/model', __FILE__
|
30
34
|
# Auth parsing is work-in-progress
|
31
|
-
# require '
|
35
|
+
# require File.expand_path '../lib/auth.rb'', __FILE__
|
32
36
|
|
33
37
|
module Desviar
|
34
38
|
class Authorized < Sinatra::Base
|
@@ -104,11 +108,12 @@ module Desviar
|
|
104
108
|
# TODO: figure out the clean "native" way of DataMapper::Collection.destroy
|
105
109
|
# - but this works fine for small databases
|
106
110
|
@desviar = DataMapper.repository(:default).adapter
|
107
|
-
@records = Desviar::Model::Main.all(:expires_at.lt => DateTime.now
|
108
|
-
|
111
|
+
@records = Desviar::Model::Main.all(:expires_at.lt => DateTime.now,
|
112
|
+
:fields => [ :id ])
|
113
|
+
Desviar::Public::log "debug cleanup found #{@records.length}"
|
114
|
+
count = @records.length
|
109
115
|
@records.each do |item|
|
110
|
-
@desviar.execute("DELETE FROM
|
111
|
-
count += 1
|
116
|
+
@desviar.execute("DELETE FROM desviar_model_mains WHERE id=#{item.id};")
|
112
117
|
end
|
113
118
|
Desviar::Public::log "Cleaned #{count} records" if count != 0
|
114
119
|
redirect "/list"
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: desviar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,120 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
12
|
+
date: 2013-07-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: dm-core
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.2'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.2'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: dm-migrations
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.2'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.2'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: dm-sqlite-adapter
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.2'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.2'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: dm-timestamps
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.2'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.2'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: dm-validations
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '1.2'
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.2'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rack-recaptcha
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0.6'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0.6'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: rack-test
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.6'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0.6'
|
14
126
|
- !ruby/object:Gem::Dependency
|
15
127
|
name: sinatra
|
16
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -27,6 +139,38 @@ dependencies:
|
|
27
139
|
- - ! '>='
|
28
140
|
- !ruby/object:Gem::Version
|
29
141
|
version: '1.4'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: syntaxi
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ! '>='
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '0.5'
|
150
|
+
type: :runtime
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ! '>='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0.5'
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: yajl-ruby
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ! '>='
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: '1.1'
|
166
|
+
type: :runtime
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ! '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.1'
|
30
174
|
description: ! 'Desviar provides URL redirection; some possible applications include:
|
31
175
|
|
32
176
|
- Web signup process
|
@@ -42,7 +186,6 @@ extensions: []
|
|
42
186
|
extra_rdoc_files: []
|
43
187
|
files:
|
44
188
|
- Apache-License.txt
|
45
|
-
- Gemfile
|
46
189
|
- README.md
|
47
190
|
- config.ru
|
48
191
|
- config/config.rb.example
|
@@ -63,16 +206,10 @@ files:
|
|
63
206
|
- views/show.erb
|
64
207
|
homepage: http://github.com/instantlinux/desviar
|
65
208
|
licenses: []
|
66
|
-
post_install_message: !
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
Thanks for using Desviar.
|
72
|
-
|
73
|
-
------------------------------------------------------------------------------
|
74
|
-
|
75
|
-
'
|
209
|
+
post_install_message: ! "------------------------------------------------------------------------------\nDesviar
|
210
|
+
v0.0.10\n\nTo configure, download from:\n https://raw.github.com/instantlinux/desviar/master/config/config.rb.example\ninto
|
211
|
+
a new file config.rb and export DESVIAR_CONFIG=<path>/config.rb.\n\nThanks for using
|
212
|
+
Desviar.\n------------------------------------------------------------------------------\n"
|
76
213
|
rdoc_options: []
|
77
214
|
require_paths:
|
78
215
|
- config
|