sinatra-s3 0.98 → 0.99
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 +36 -18
- data/bin/sinatra-s3 +47 -15
- data/examples/wiki.rb +13 -13
- data/lib/sinatra-s3/admin.rb +1 -1
- data/lib/sinatra-s3/base.rb +1 -5
- data/lib/sinatra-s3/models/bit.rb +2 -2
- data/lib/sinatra-s3/s3.rb +11 -4
- data/public/js/wiki.js +35 -0
- data/s3.yml.example +6 -3
- metadata +63 -67
- data/examples/README +0 -9
- data/examples/wikicloth/MIT-LICENSE +0 -20
- data/examples/wikicloth/README +0 -81
- data/examples/wikicloth/Rakefile +0 -23
- data/examples/wikicloth/init.rb +0 -1
- data/examples/wikicloth/install.rb +0 -0
- data/examples/wikicloth/lib/core_ext.rb +0 -43
- data/examples/wikicloth/lib/wiki_buffer.rb +0 -279
- data/examples/wikicloth/lib/wiki_buffer/html_element.rb +0 -237
- data/examples/wikicloth/lib/wiki_buffer/link.rb +0 -70
- data/examples/wikicloth/lib/wiki_buffer/table.rb +0 -159
- data/examples/wikicloth/lib/wiki_buffer/var.rb +0 -77
- data/examples/wikicloth/lib/wiki_cloth.rb +0 -61
- data/examples/wikicloth/lib/wiki_link_handler.rb +0 -138
- data/examples/wikicloth/lib/wikicloth.rb +0 -5
- data/examples/wikicloth/run_tests.rb +0 -48
- data/examples/wikicloth/sample_documents/air_force_one.wiki +0 -170
- data/examples/wikicloth/sample_documents/cheatsheet.wiki +0 -205
- data/examples/wikicloth/sample_documents/default.css +0 -34
- data/examples/wikicloth/sample_documents/elements.wiki +0 -7
- data/examples/wikicloth/sample_documents/george_washington.wiki +0 -526
- data/examples/wikicloth/sample_documents/images.wiki +0 -15
- data/examples/wikicloth/sample_documents/lists.wiki +0 -421
- data/examples/wikicloth/sample_documents/pipe_trick.wiki +0 -68
- data/examples/wikicloth/sample_documents/random.wiki +0 -55
- data/examples/wikicloth/sample_documents/tv.wiki +0 -312
- data/examples/wikicloth/sample_documents/wiki.png +0 -0
- data/examples/wikicloth/sample_documents/wiki_tables.wiki +0 -410
- data/examples/wikicloth/tasks/wikicloth_tasks.rake +0 -0
- data/examples/wikicloth/test/test_helper.rb +0 -3
- data/examples/wikicloth/test/wiki_cloth_test.rb +0 -8
- data/examples/wikicloth/uninstall.rb +0 -0
- data/examples/wikicloth/wikicloth-0.1.3.gem +0 -0
- data/examples/wikicloth/wikicloth.gemspec +0 -69
- data/public/test.html +0 -8
data/README
CHANGED
@@ -1,23 +1,41 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
Sinatra-S3 is an implementation of the Amazon S3 API. Based on the
|
2
|
+
Parkplace, written by _why, Sinatra-S3 has been extended to provide
|
3
|
+
additional support for ACLs, versioning and a bittorrent tracker.
|
3
4
|
|
4
|
-
|
5
|
-
|
5
|
+
Install
|
6
|
+
------------------------------------------------------------------
|
6
7
|
|
7
|
-
|
8
|
+
To install or upgrade Sinatra-S3
|
8
9
|
|
9
|
-
|
10
|
-
|
10
|
+
sudo gem install sinatra-s3
|
11
|
+
sinatra-s3 directory
|
12
|
+
cd directory
|
13
|
+
rake db:migrate
|
11
14
|
|
12
|
-
|
13
|
-
version of RubyTorrent found at http://github.com/nricciar/rubytorrent.
|
15
|
+
Or we could install from github (bleeding edge, may not work)
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
17
|
+
sudo gem install sinatra builder aws-s3
|
18
|
+
git clone git://github.com/nricciar/sinatra-s3.git
|
19
|
+
cd sinatra-s3/
|
20
|
+
cp s3.yml.example s3.yml
|
21
|
+
rake db:migrate
|
22
|
+
|
23
|
+
Optional Gems
|
24
|
+
|
25
|
+
ruby-git - Enable S3 versioning support.
|
26
|
+
rubytorrent* - Enable S3 torrent support.
|
27
|
+
|
28
|
+
* A custom version of rubytorrent is required to enable bittorrent
|
29
|
+
support. see http://github.com/nricciar/rubytorrent.
|
30
|
+
|
31
|
+
Setup
|
32
|
+
------------------------------------------------------------------
|
33
|
+
|
34
|
+
Once Sinatra-S3 has been installed we can start our server and log in
|
35
|
+
with the default username admin and password pass@word1.
|
36
|
+
|
37
|
+
rackup config.ru -p 6060
|
38
|
+
|
39
|
+
Once running log in with the username admin and password pass@word1
|
40
|
+
via the control center at http://127.0.0.1:6060/control/. Make sure
|
41
|
+
to change your password!
|
data/bin/sinatra-s3
CHANGED
@@ -7,24 +7,56 @@ if ARGV.any? { |arg| %w(--version -v).any? { |flag| arg == flag } }
|
|
7
7
|
exit 0
|
8
8
|
end
|
9
9
|
|
10
|
-
|
11
|
-
|
10
|
+
if ARGV.any? { |arg| %w(--help -h).any? { |flag| arg == flag } }
|
11
|
+
puts "sinatra-s3 [options] install_dir\n\n"
|
12
|
+
puts " --version -v Get version string"
|
13
|
+
puts " --help -h this"
|
14
|
+
puts " --include-wiki installs sinatra-s3 with wiki support"
|
15
|
+
exit 0
|
16
|
+
end
|
12
17
|
|
13
|
-
|
14
|
-
FileUtils.mkdir_p(app_path)
|
18
|
+
$APP_PATH = ARGV.last
|
15
19
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
+
def check_install(file,data)
|
21
|
+
file_path = File.join($APP_PATH, file)
|
22
|
+
if File.exists?(file_path)
|
23
|
+
if Digest::MD5.hexdigest(data) == Digest::MD5.hexdigest(File.read(file_path))
|
24
|
+
install_msg("identical",file)
|
25
|
+
else
|
26
|
+
if ['y','a',''].include?(verify_overwrite(file).downcase)
|
27
|
+
File.open(file_path,"w") { |f| f.write(data) }
|
28
|
+
install_msg("force",file)
|
29
|
+
else
|
30
|
+
install_msg("skip",file)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
else
|
34
|
+
install_msg("create", file)
|
35
|
+
File.open(file_path,"w") { |f| f.write(data) }
|
20
36
|
end
|
21
|
-
|
22
|
-
|
37
|
+
end
|
38
|
+
def install_msg(status, msg)
|
39
|
+
print status.rjust(10) + " #{msg}\n"
|
40
|
+
end
|
41
|
+
def verify_overwrite(file)
|
42
|
+
return 'a' if $SKIP_INSTALL_VERIFY
|
43
|
+
|
44
|
+
print "overwrite #{file} [Yna] "
|
45
|
+
resp = STDIN.gets.chomp
|
46
|
+
$SKIP_INSTALL_VERIFY = true if resp.downcase == "a"
|
23
47
|
|
24
|
-
|
25
|
-
|
48
|
+
resp = verify_overwrite(file) unless ['y','n','a',''].include?(resp.downcase)
|
49
|
+
resp
|
50
|
+
end
|
26
51
|
|
27
|
-
|
28
|
-
|
29
|
-
|
52
|
+
FileUtils.mkdir_p($APP_PATH)
|
53
|
+
FileUtils.mkdir_p(File.join($APP_PATH, "public"))
|
54
|
+
config_ru = "require 'rubygems'\nrequire 'sinatra-s3'"
|
55
|
+
if ARGV.any? { |arg| %w(--include-wiki --wiki).any? { |flag| arg == flag } }
|
56
|
+
check_install("wiki.rb", File.read(File.join(S3::ROOT_DIR,"examples","wiki.rb")))
|
57
|
+
config_ru += "\nrequire 'wiki'"
|
30
58
|
end
|
59
|
+
config_ru += "\n\nuse S3::Tracker if defined?(RubyTorrent)\nuse S3::Admin\nrun S3::Application"
|
60
|
+
check_install("config.ru", config_ru)
|
61
|
+
check_install("Rakefile", "require 'sinatra-s3/tasks'")
|
62
|
+
check_install("s3.yml", File.read(File.join(S3::ROOT_DIR,"s3.yml.example")))
|
data/examples/wiki.rb
CHANGED
@@ -6,9 +6,7 @@ S3::Application.callback :mime_type => 'text/wiki' do
|
|
6
6
|
if params.has_key?('edit')
|
7
7
|
r :edit, "Editing #{@slot.name.gsub(/_/,' ')}"
|
8
8
|
elsif params.has_key?('diff')
|
9
|
-
@
|
10
|
-
@to = Bit.find_by_version(params[:to])
|
11
|
-
@diff = @from.diff(@to)
|
9
|
+
@diff = Bit.diff(params[:diff],params[:to])
|
12
10
|
r :diff, "Changes to #{@slot.name.gsub(/_/,' ')}"
|
13
11
|
elsif params.has_key?('history')
|
14
12
|
@history = Slot.find(:all, :conditions => [ 'name = ? AND parent_id = ?', @slot.name, @slot.parent_id ], :order => "id DESC", :limit => 20)
|
@@ -116,10 +114,10 @@ __END__
|
|
116
114
|
%html
|
117
115
|
%head
|
118
116
|
%title #{@title}
|
119
|
-
%style{:type => "text/css"}
|
120
|
-
|
121
|
-
%
|
122
|
-
|
117
|
+
%style{:type => "text/css"} @import '/control/s/css/control.css';
|
118
|
+
%style{:type => "text/css"} @import '/control/s/css/wiki.css';
|
119
|
+
%script{ :type => "text/javascript", :language => "JavaScript", :src => "/control/s/js/prototype.js" }
|
120
|
+
%script{ :type => "text/javascript", :language => "JavaScript", :src => "/control/s/js/wiki.js" }
|
123
121
|
%body
|
124
122
|
%div#header
|
125
123
|
%h1
|
@@ -167,7 +165,7 @@ __END__
|
|
167
165
|
|
168
166
|
@@ edit
|
169
167
|
%h2 #{@slot.nil? ? "Edit Page" : "Editing #{@slot.name.gsub(/_/,' ')}"}
|
170
|
-
%form.create{ :method => "POST", :action => env['PATH_INFO'] }
|
168
|
+
%form#edit_page_form.create{ :method => "POST", :action => env['PATH_INFO'] }
|
171
169
|
%input{ :type => "hidden", :name => "redirect", :value => env['PATH_INFO'] }
|
172
170
|
%input{ :type => "hidden", :name => "Content-Type", :value => "text/wiki" }
|
173
171
|
%div.required
|
@@ -185,14 +183,16 @@ __END__
|
|
185
183
|
%table#revision_history
|
186
184
|
- @history.each_with_index do |rev, count|
|
187
185
|
%tr
|
188
|
-
|
189
|
-
%
|
190
|
-
|
191
|
-
%
|
186
|
+
- if @history.length > 1
|
187
|
+
%td.check
|
188
|
+
%input.from{ :type => "radio", :name => "diff", :value => rev.version, :checked => (count == 1 ? true : false), :style => (count > 0 ? nil : "display:none") }
|
189
|
+
%td.check
|
190
|
+
%input.to{ :type => "radio", :name => "to", :value => rev.version, :checked => (count == 0 ? true : false) }
|
192
191
|
%td
|
193
192
|
%a{ :href => "#{env['PATH_INFO']}?version-id=#{rev.version}" } #{rev.meta['comment']}
|
194
193
|
on #{rev.updated_at}
|
195
|
-
|
194
|
+
- if @history.length > 1
|
195
|
+
%input{ :type => "submit", :value => "Compare Revisions" }
|
196
196
|
|
197
197
|
@@ wiki
|
198
198
|
%div#wiki_page
|
data/lib/sinatra-s3/admin.rb
CHANGED
data/lib/sinatra-s3/base.rb
CHANGED
@@ -1,14 +1,10 @@
|
|
1
1
|
module S3
|
2
2
|
|
3
|
-
def self.config
|
4
|
-
@config ||= YAML.load_file("s3.yml")[S3::Application.environment] rescue { :db => { :adapter => 'sqlite3', :database => "db/s3.db" } }
|
5
|
-
end
|
6
|
-
|
7
3
|
class Application < Sinatra::Base
|
8
4
|
|
9
5
|
enable :static
|
10
6
|
disable :raise_errors, :show_exceptions
|
11
|
-
set :environment,
|
7
|
+
set :environment, S3_ENV
|
12
8
|
set :public, PUBLIC_PATH
|
13
9
|
|
14
10
|
helpers do
|
@@ -42,8 +42,8 @@ class Bit < ActiveRecord::Base
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def self.diff(from,to)
|
45
|
-
from = Bit.find_by_version(from)
|
46
|
-
to = Bit.find_by_version(to)
|
45
|
+
from = Bit.find_by_version(from) if from.instance_of?(String)
|
46
|
+
to = Bit.find_by_version(to) if to.instance_of?(String)
|
47
47
|
from.git_repository.diff(from.objectish, to.objectish)
|
48
48
|
end
|
49
49
|
|
data/lib/sinatra-s3/s3.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require '
|
2
|
+
require 'active_record'
|
3
3
|
|
4
|
+
require 'fileutils'
|
4
5
|
require 'sinatra/base'
|
5
6
|
require 'openssl'
|
6
7
|
require 'digest/sha1'
|
@@ -29,13 +30,19 @@ rescue LoadError
|
|
29
30
|
end
|
30
31
|
|
31
32
|
module S3
|
32
|
-
|
33
|
+
S3_ENV = :production
|
34
|
+
|
35
|
+
def self.config
|
36
|
+
@config ||= YAML.load_file("s3.yml")[S3_ENV] rescue { :db => { :adapter => 'sqlite3', :database => "db/s3.db" } }
|
37
|
+
end
|
38
|
+
|
39
|
+
VERSION = "0.99"
|
33
40
|
DEFAULT_PASSWORD = 'pass@word1'
|
34
41
|
|
35
42
|
BUFSIZE = (4 * 1024)
|
36
43
|
ROOT_DIR = File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
37
|
-
PUBLIC_PATH = File.join(ROOT_DIR, 'public')
|
38
|
-
STORAGE_PATH = File.expand_path('storage') unless defined?(STORAGE_PATH)
|
44
|
+
PUBLIC_PATH = File.expand_path(S3.config[:public_path] || File.join(ROOT_DIR, 'public'))
|
45
|
+
STORAGE_PATH = File.expand_path(S3.config[:storage_path] || 'storage') unless defined?(STORAGE_PATH)
|
39
46
|
RESOURCE_TYPES = %w[acl versioning torrent]
|
40
47
|
CANNED_ACLS = {
|
41
48
|
'private' => 0600,
|
data/public/js/wiki.js
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
window.onload = function ()
|
2
|
+
{
|
3
|
+
if ($('revision_history') != null) {
|
4
|
+
update_rev_checkboxes();
|
5
|
+
$$('input.from').each(function (e) {
|
6
|
+
e.onchange = update_rev_checkboxes;
|
7
|
+
})
|
8
|
+
}
|
9
|
+
if ($('edit_page_form') != null) {
|
10
|
+
$('edit_page_form').onsubmit = submit_edit_page;
|
11
|
+
}
|
12
|
+
}
|
13
|
+
function submit_edit_page()
|
14
|
+
{
|
15
|
+
if ($('page_comment').value == '') {
|
16
|
+
alert('Please provide a comment describing the changes you made to the page.');
|
17
|
+
return false;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
function update_rev_checkboxes()
|
21
|
+
{
|
22
|
+
hide_to = false;
|
23
|
+
rows = $$('#revision_history tr');
|
24
|
+
rows.each(function (e) {
|
25
|
+
f = e.getElementsBySelector('.from')[0]
|
26
|
+
t = e.getElementsBySelector('.to')[0]
|
27
|
+
if (f.checked == true)
|
28
|
+
hide_to = true;
|
29
|
+
|
30
|
+
if (hide_to == true)
|
31
|
+
t.style.display = 'none';
|
32
|
+
else
|
33
|
+
t.style.display = 'inline';
|
34
|
+
})
|
35
|
+
}
|
data/s3.yml.example
CHANGED
@@ -1,17 +1,20 @@
|
|
1
1
|
:development:
|
2
|
-
:
|
2
|
+
:public_path: public
|
3
|
+
:storage_path: storage
|
3
4
|
:db:
|
4
5
|
:database: db/development.db
|
5
6
|
:adapter: sqlite3
|
6
7
|
|
7
8
|
:test:
|
8
|
-
:
|
9
|
+
:public_path: public
|
10
|
+
:storage_path: test/storage
|
9
11
|
:db:
|
10
12
|
:database: db/test.db
|
11
13
|
:adapter: sqlite3
|
12
14
|
|
13
15
|
:production:
|
14
|
-
:
|
16
|
+
:public_path: public
|
17
|
+
:storage_path: storage
|
15
18
|
:db:
|
16
19
|
:database: db/production.db
|
17
20
|
:adapter: sqlite3
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 205
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 99
|
9
|
+
version: "0.99"
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- David Ricciardi
|
@@ -9,39 +14,56 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-07-
|
17
|
+
date: 2010-07-30 00:00:00 -04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: sinatra
|
17
|
-
|
18
|
-
|
19
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
20
25
|
requirements:
|
21
26
|
- - ">="
|
22
27
|
- !ruby/object:Gem::Version
|
28
|
+
hash: 15
|
29
|
+
segments:
|
30
|
+
- 1
|
31
|
+
- 0
|
23
32
|
version: "1.0"
|
24
|
-
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: aws-s3
|
27
|
-
|
28
|
-
|
29
|
-
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
30
40
|
requirements:
|
31
41
|
- - ">="
|
32
42
|
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
- 6
|
47
|
+
- 2
|
33
48
|
version: 0.6.2
|
34
|
-
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
35
51
|
- !ruby/object:Gem::Dependency
|
36
52
|
name: haml
|
37
|
-
|
38
|
-
|
39
|
-
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
40
56
|
requirements:
|
41
57
|
- - ">="
|
42
58
|
- !ruby/object:Gem::Version
|
59
|
+
hash: 25
|
60
|
+
segments:
|
61
|
+
- 2
|
62
|
+
- 2
|
63
|
+
- 15
|
43
64
|
version: 2.2.15
|
44
|
-
|
65
|
+
type: :runtime
|
66
|
+
version_requirements: *id003
|
45
67
|
description:
|
46
68
|
email: nricciar@gmail.com
|
47
69
|
executables:
|
@@ -52,76 +74,44 @@ extra_rdoc_files:
|
|
52
74
|
- README
|
53
75
|
files:
|
54
76
|
- bin/sinatra-s3
|
77
|
+
- lib/sinatra-s3/admin.rb
|
55
78
|
- lib/sinatra-s3/base.rb
|
56
79
|
- lib/sinatra-s3/errors.rb
|
80
|
+
- lib/sinatra-s3/ext.rb
|
81
|
+
- lib/sinatra-s3/helpers/acp.rb
|
82
|
+
- lib/sinatra-s3/helpers/admin.rb
|
83
|
+
- lib/sinatra-s3/helpers/tracker.rb
|
84
|
+
- lib/sinatra-s3/helpers/versioning.rb
|
85
|
+
- lib/sinatra-s3/helpers.rb
|
57
86
|
- lib/sinatra-s3/models/bit.rb
|
87
|
+
- lib/sinatra-s3/models/bucket.rb
|
88
|
+
- lib/sinatra-s3/models/file_info.rb
|
58
89
|
- lib/sinatra-s3/models/git_bucket.rb
|
59
90
|
- lib/sinatra-s3/models/slot.rb
|
91
|
+
- lib/sinatra-s3/models/torrent.rb
|
60
92
|
- lib/sinatra-s3/models/torrent_peer.rb
|
61
|
-
- lib/sinatra-s3/models/file_info.rb
|
62
93
|
- lib/sinatra-s3/models/user.rb
|
63
|
-
- lib/sinatra-s3/
|
64
|
-
- lib/sinatra-s3/models/torrent.rb
|
65
|
-
- lib/sinatra-s3/helpers.rb
|
94
|
+
- lib/sinatra-s3/s3.rb
|
66
95
|
- lib/sinatra-s3/tasks.rb
|
67
|
-
- lib/sinatra-s3/admin.rb
|
68
|
-
- lib/sinatra-s3/ext.rb
|
69
96
|
- lib/sinatra-s3/tracker.rb
|
70
|
-
- lib/sinatra-s3/helpers/acp.rb
|
71
|
-
- lib/sinatra-s3/helpers/admin.rb
|
72
|
-
- lib/sinatra-s3/helpers/tracker.rb
|
73
|
-
- lib/sinatra-s3/helpers/versioning.rb
|
74
|
-
- lib/sinatra-s3/s3.rb
|
75
97
|
- lib/sinatra-s3.rb
|
76
|
-
- public/test.html
|
77
|
-
- public/images/external-link.gif
|
78
|
-
- public/css/wiki.css
|
79
98
|
- public/css/control.css
|
99
|
+
- public/css/wiki.css
|
100
|
+
- public/images/external-link.gif
|
80
101
|
- public/js/prototype.js
|
81
102
|
- public/js/upload_status.js
|
82
|
-
-
|
103
|
+
- public/js/wiki.js
|
83
104
|
- examples/wiki.rb
|
84
|
-
- examples/
|
85
|
-
- examples/wikicloth/wikicloth-0.1.3.gem
|
86
|
-
- examples/wikicloth/install.rb
|
87
|
-
- examples/wikicloth/wikicloth.gemspec
|
88
|
-
- examples/wikicloth/run_tests.rb
|
89
|
-
- examples/wikicloth/README
|
90
|
-
- examples/wikicloth/MIT-LICENSE
|
91
|
-
- examples/wikicloth/sample_documents/george_washington.wiki
|
92
|
-
- examples/wikicloth/sample_documents/pipe_trick.wiki
|
93
|
-
- examples/wikicloth/sample_documents/default.css
|
94
|
-
- examples/wikicloth/sample_documents/random.wiki
|
95
|
-
- examples/wikicloth/sample_documents/tv.wiki
|
96
|
-
- examples/wikicloth/sample_documents/air_force_one.wiki
|
97
|
-
- examples/wikicloth/sample_documents/lists.wiki
|
98
|
-
- examples/wikicloth/sample_documents/images.wiki
|
99
|
-
- examples/wikicloth/sample_documents/elements.wiki
|
100
|
-
- examples/wikicloth/sample_documents/wiki_tables.wiki
|
101
|
-
- examples/wikicloth/sample_documents/wiki.png
|
102
|
-
- examples/wikicloth/sample_documents/cheatsheet.wiki
|
103
|
-
- examples/wikicloth/init.rb
|
104
|
-
- examples/wikicloth/lib/wiki_buffer.rb
|
105
|
-
- examples/wikicloth/lib/wikicloth.rb
|
106
|
-
- examples/wikicloth/lib/wiki_cloth.rb
|
107
|
-
- examples/wikicloth/lib/core_ext.rb
|
108
|
-
- examples/wikicloth/lib/wiki_buffer/table.rb
|
109
|
-
- examples/wikicloth/lib/wiki_buffer/html_element.rb
|
110
|
-
- examples/wikicloth/lib/wiki_buffer/var.rb
|
111
|
-
- examples/wikicloth/lib/wiki_buffer/link.rb
|
112
|
-
- examples/wikicloth/lib/wiki_link_handler.rb
|
113
|
-
- examples/wikicloth/tasks/wikicloth_tasks.rake
|
114
|
-
- examples/wikicloth/uninstall.rb
|
115
|
-
- examples/wikicloth/Rakefile
|
116
|
-
- examples/wikicloth/test/wiki_cloth_test.rb
|
117
|
-
- examples/wikicloth/test/test_helper.rb
|
105
|
+
- examples/wiki.ru
|
118
106
|
- db/migrate/001_create_bits.rb
|
107
|
+
- db/migrate/002_create_users.rb
|
119
108
|
- db/migrate/003_create_bits_users.rb
|
120
109
|
- db/migrate/004_create_torrents.rb
|
121
|
-
- db/migrate/002_create_users.rb
|
122
110
|
- db/migrate/005_create_torrent_peers.rb
|
123
111
|
- Rakefile
|
124
112
|
- s3.yml.example
|
113
|
+
- test/s3api_test.rb
|
114
|
+
- test/test_helper.rb
|
125
115
|
- README
|
126
116
|
has_rdoc: true
|
127
117
|
homepage: http://github.com/nricciar/sinatra-s3
|
@@ -133,21 +123,27 @@ rdoc_options: []
|
|
133
123
|
require_paths:
|
134
124
|
- lib
|
135
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
136
127
|
requirements:
|
137
128
|
- - ">="
|
138
129
|
- !ruby/object:Gem::Version
|
130
|
+
hash: 3
|
131
|
+
segments:
|
132
|
+
- 0
|
139
133
|
version: "0"
|
140
|
-
version:
|
141
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
|
+
none: false
|
142
136
|
requirements:
|
143
137
|
- - ">="
|
144
138
|
- !ruby/object:Gem::Version
|
139
|
+
hash: 3
|
140
|
+
segments:
|
141
|
+
- 0
|
145
142
|
version: "0"
|
146
|
-
version:
|
147
143
|
requirements: []
|
148
144
|
|
149
145
|
rubyforge_project:
|
150
|
-
rubygems_version: 1.3.
|
146
|
+
rubygems_version: 1.3.7
|
151
147
|
signing_key:
|
152
148
|
specification_version: 3
|
153
149
|
summary: An implementation of the Amazon S3 API in Ruby
|