dropsite 0.2.1 → 0.3.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/Rakefile +12 -3
- data/bin/dropsite +1 -34
- data/dropsite.gemspec +1 -1
- data/lib/dropsite/application.rb +93 -0
- data/lib/dropsite/dir_renderer.rb +23 -25
- data/lib/dropsite/plugins/image_thumbnails/assets/css/image_thumbnails.css +87 -0
- data/lib/dropsite/plugins/image_thumbnails/assets/css/reset.css +30 -0
- data/lib/dropsite/plugins/image_thumbnails/assets/images/icons/directory-large.png +0 -0
- data/lib/dropsite/plugins/image_thumbnails/assets/images/icons/directory.png +0 -0
- data/lib/dropsite/plugins/image_thumbnails/assets/images/row-bg.png +0 -0
- data/lib/dropsite/plugins/image_thumbnails/image_thumbnails.erb +49 -0
- data/lib/dropsite/plugins/image_thumbnails/image_thumbnails.rb +65 -0
- data/lib/dropsite/plugins/simple_index/simple_index.erb +1 -1
- data/lib/dropsite/plugins/simple_index/simple_index.rb +1 -1
- data/lib/dropsite/render_helper.rb +60 -22
- data/lib/dropsite/site.rb +30 -28
- data/lib/dropsite/site_dir.rb +84 -32
- data/lib/dropsite/site_file.rb +12 -11
- data/lib/dropsite.rb +34 -9
- data/test/fixtures/many_folders_public/one/two/three/four/five/six/seven/eight/file.txt +1 -0
- data/test/helper.rb +17 -4
- data/test/{test_write_site.rb → integration/test_process_site.rb} +31 -44
- data/test/integration/test_process_site_many_folders.rb +18 -0
- data/test/integration/test_process_site_with_thumbnails.rb +40 -0
- data/test/unit/test_application.rb +19 -0
- data/test/unit/test_config_file.rb +34 -0
- data/test/{test_render_helper.rb → unit/test_render_helper.rb} +13 -13
- data/test/{test_site.rb → unit/test_site.rb} +19 -3
- data/test/unit/test_site_dir.rb +31 -0
- data/test/{test_site_file.rb → unit/test_site_file.rb} +9 -9
- metadata +27 -19
- data/lib/dropsite/plugins/simple_index/assets/simple_index.js +0 -3
- data/test/test_site_dir.rb +0 -20
@@ -1,4 +1,4 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'helper')
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'helper')
|
2
2
|
require 'nokogiri'
|
3
3
|
|
4
4
|
# Tests for RenderHelper mixin using SiteItem, which mixes it in
|
@@ -11,7 +11,7 @@ class TestRenderHelper < Test::Unit::TestCase
|
|
11
11
|
assert_equal '../people.html', SiteDir.new('pics/people/friends', [], '/tmp').back_link(1)
|
12
12
|
assert_equal '../../pics.html', SiteDir.new('pics/people/friends', [], '/tmp').back_link(2)
|
13
13
|
assert_equal '../../../index.html', SiteDir.new('pics/people/friends', [], '/tmp').back_link(3)
|
14
|
-
|
14
|
+
|
15
15
|
# Test too many levels up and non-Integer arg
|
16
16
|
assert_equal '../index.html', SiteDir.new('pics', [], '/tmp').back_link(2)
|
17
17
|
assert_equal '../index.html', SiteDir.new('pics', [], '/tmp').back_link(3)
|
@@ -19,34 +19,34 @@ class TestRenderHelper < Test::Unit::TestCase
|
|
19
19
|
assert_equal '', SiteDir.new('', [], '/tmp').back_link(1)
|
20
20
|
assert_equal '', SiteDir.new('', [], '/tmp').back_link(nil)
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
def test_parent_directory_link_tag
|
24
24
|
sd = SiteDir.new('pics/people/friends', [], '/tmp')
|
25
|
-
|
25
|
+
|
26
26
|
basic_link_doc = Nokogiri::HTML(sd.parent_directory_link_tag(1))
|
27
27
|
links = basic_link_doc.css('a')
|
28
28
|
assert_equal 1, links.size
|
29
29
|
assert_equal '../people.html', links[0].attribute('href').value
|
30
30
|
assert_equal 'people', links[0].content
|
31
|
-
|
31
|
+
|
32
32
|
basic_link_doc = Nokogiri::HTML(sd.parent_directory_link_tag(2))
|
33
33
|
links = basic_link_doc.css('a')
|
34
34
|
assert_equal 1, links.size
|
35
35
|
assert_equal '../../pics.html', links[0].attribute('href').value
|
36
36
|
assert_equal 'pics', links[0].content
|
37
|
-
|
37
|
+
|
38
38
|
basic_link_doc = Nokogiri::HTML(sd.parent_directory_link_tag(3))
|
39
39
|
links = basic_link_doc.css('a')
|
40
40
|
assert_equal 1, links.size
|
41
41
|
assert_equal '../../../index.html', links[0].attribute('href').value
|
42
42
|
assert_equal 'my files', links[0].content
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
45
|
def test_parent_directory_link_tag_with_additional_attributes
|
46
46
|
sd = SiteDir.new('pics/people/friends', [], '/tmp')
|
47
47
|
id = 'the-id'
|
48
48
|
css_class = 'the-css-class'
|
49
|
-
|
49
|
+
|
50
50
|
link_doc = Nokogiri::HTML(sd.parent_directory_link_tag(1, :class => css_class))
|
51
51
|
links = link_doc.css('a')
|
52
52
|
assert_equal 1, links.size
|
@@ -54,7 +54,7 @@ class TestRenderHelper < Test::Unit::TestCase
|
|
54
54
|
assert_equal '../people.html', link.attribute('href').value
|
55
55
|
assert_equal 'people', link.content
|
56
56
|
assert_equal css_class, link.attribute('class').value
|
57
|
-
|
57
|
+
|
58
58
|
link_doc = Nokogiri::HTML(sd.parent_directory_link_tag(1, :id => id, :class => css_class))
|
59
59
|
links = link_doc.css('a')
|
60
60
|
assert_equal 1, links.size
|
@@ -64,7 +64,7 @@ class TestRenderHelper < Test::Unit::TestCase
|
|
64
64
|
assert_equal id, link.attribute('id').value
|
65
65
|
assert_equal css_class, link.attribute('class').value
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
def test_each_parent_directory_link_tag_with_root
|
69
69
|
links = ''
|
70
70
|
sd = SiteDir.new('pics/people/friends', [], '/tmp')
|
@@ -72,7 +72,7 @@ class TestRenderHelper < Test::Unit::TestCase
|
|
72
72
|
links_doc = Nokogiri::HTML(links)
|
73
73
|
links = links_doc.css('a')
|
74
74
|
assert_equal 3, links.size
|
75
|
-
|
75
|
+
|
76
76
|
root_link = links_doc.css('a').find {|a| a.content == 'my files'}
|
77
77
|
assert_equal '../../../index.html', root_link.attribute('href').value
|
78
78
|
pics_link = links_doc.css('a').find {|a| a.content == 'pics'}
|
@@ -80,7 +80,7 @@ class TestRenderHelper < Test::Unit::TestCase
|
|
80
80
|
people_link = links_doc.css('a').find {|a| a.content == 'people'}
|
81
81
|
assert_equal '../people.html', people_link.attribute('href').value
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
def test_each_parent_directory_link_tag_without_root
|
85
85
|
links = ''
|
86
86
|
sd = SiteDir.new('pics/people/friends', [], '/tmp')
|
@@ -88,7 +88,7 @@ class TestRenderHelper < Test::Unit::TestCase
|
|
88
88
|
links_doc = Nokogiri::HTML(links)
|
89
89
|
links = links_doc.css('a')
|
90
90
|
assert_equal 2, links.size
|
91
|
-
|
91
|
+
|
92
92
|
pics_link = links_doc.css('a').find {|a| a.content == 'pics'}
|
93
93
|
assert_equal '../../pics.html', pics_link.attribute('href').value
|
94
94
|
people_link = links_doc.css('a').find {|a| a.content == 'people'}
|
@@ -1,6 +1,8 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'helper')
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'helper')
|
2
2
|
|
3
3
|
class TestSite < Test::Unit::TestCase
|
4
|
+
include Fixtures
|
5
|
+
|
4
6
|
def test_create_site_tree_from_simple_public_dir
|
5
7
|
site = Site.new(File.join(FIXTURES_DIR, 'simple_public'))
|
6
8
|
root = site.read
|
@@ -30,7 +32,7 @@ class TestSite < Test::Unit::TestCase
|
|
30
32
|
def test_create_site_tree_from_simple_public_dir_with_exclusions
|
31
33
|
site = Site.new(
|
32
34
|
:public_dir => File.join(FIXTURES_DIR, 'simple_public'),
|
33
|
-
:
|
35
|
+
:exclude => ['pics', 'file1.txt']
|
34
36
|
)
|
35
37
|
root = site.read
|
36
38
|
|
@@ -38,4 +40,18 @@ class TestSite < Test::Unit::TestCase
|
|
38
40
|
assert root.files.find {|f| f.name == 'file2.txt'}
|
39
41
|
assert root.dirs.empty?
|
40
42
|
end
|
41
|
-
|
43
|
+
|
44
|
+
def test_find_correct_plugin
|
45
|
+
# TODO: implement
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_disable_plugins
|
49
|
+
site = Site.new(
|
50
|
+
:public_dir => File.join(FIXTURES_DIR, 'simple_public'),
|
51
|
+
:disabled_plugins => ['image_thumbnails']
|
52
|
+
)
|
53
|
+
|
54
|
+
assert_equal 1, site.disabled_plugins.size
|
55
|
+
assert site.disabled_plugins.include?('image_thumbnails')
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'helper')
|
2
|
+
|
3
|
+
class TestSiteDir < Test::Unit::TestCase
|
4
|
+
def test_name
|
5
|
+
assert_equal 'pic1.jpg', SiteDir.new('pic1.jpg', [], Site.new('/tmp')).name
|
6
|
+
assert_equal 'pic1.jpg', SiteDir.new('/pics/pic1.jpg', [], Site.new('/tmp')).name
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_root_name
|
10
|
+
assert_equal '', SiteDir.new('/', [], Site.new('/tmp')).name
|
11
|
+
assert_equal '', SiteDir.new('', [], Site.new('/tmp')).name
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_root
|
15
|
+
assert SiteDir.new('', [], Site.new('/tmp')).root?
|
16
|
+
assert !SiteDir.new('/file.txt', [], Site.new('/tmp')).root?
|
17
|
+
assert !SiteDir.new('/dir', [], Site.new('/tmp')).root?
|
18
|
+
assert !SiteDir.new('/dir/file.txt', [], Site.new('/tmp')).root?
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_page_assets_dir
|
22
|
+
sd = SiteDir.new('', [], Site.new('/tmp'))
|
23
|
+
assert_equal '/tmp/dropsite/dropsite-root-index-directory-assets', sd.page_assets_dir
|
24
|
+
|
25
|
+
sd = SiteDir.new('/thisisadir', [], Site.new('/tmp'))
|
26
|
+
assert_equal '/tmp/dropsite/dropsite-thisisadir-assets', sd.page_assets_dir
|
27
|
+
|
28
|
+
sd = SiteDir.new('/two/dirs-up', [], Site.new('/tmp'))
|
29
|
+
assert_equal '/tmp/dropsite/two/dropsite-dirs-up-assets', sd.page_assets_dir
|
30
|
+
end
|
31
|
+
end
|
@@ -1,24 +1,24 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'helper')
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'helper')
|
2
2
|
|
3
3
|
class TestSiteFile < Test::Unit::TestCase
|
4
4
|
def test_name
|
5
5
|
assert_equal 'pic1.jpg', SiteFile.new('pic1.jpg').name
|
6
6
|
assert_equal 'pic1.jpg', SiteFile.new('/pics/pic1.jpg').name
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
def test_type
|
10
|
-
assert_equal
|
11
|
-
assert_equal
|
12
|
-
assert_equal
|
13
|
-
assert_equal
|
14
|
-
assert_equal
|
10
|
+
assert_equal :image, SiteFile.new('/pics/pic1.jpg').file_type
|
11
|
+
assert_equal :image, SiteFile.new('/pics/pic1.gif').file_type
|
12
|
+
assert_equal :text, SiteFile.new('/pics/pic1.txt').file_type
|
13
|
+
assert_equal :unknown, SiteFile.new('/pics/plainoldfile').file_type
|
14
|
+
assert_equal :unknown, SiteFile.new('/pics/file.asdf').file_type
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
def test_top_level
|
18
18
|
assert SiteFile.new('/pic1.jpg').top_level?
|
19
19
|
assert !SiteFile.new('/pics/pic1.jpg').top_level?
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
def test_size
|
23
23
|
sf = SiteFile.new('/pic1.jpg')
|
24
24
|
sf.size_in_bytes = 100
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dropsite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 19
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 0.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Aaron Royer
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-02-26 00:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies: []
|
21
21
|
|
@@ -29,7 +29,15 @@ extra_rdoc_files: []
|
|
29
29
|
|
30
30
|
files:
|
31
31
|
- bin/dropsite
|
32
|
+
- lib/dropsite/application.rb
|
32
33
|
- lib/dropsite/dir_renderer.rb
|
34
|
+
- lib/dropsite/plugins/image_thumbnails/assets/css/image_thumbnails.css
|
35
|
+
- lib/dropsite/plugins/image_thumbnails/assets/css/reset.css
|
36
|
+
- lib/dropsite/plugins/image_thumbnails/assets/images/icons/directory-large.png
|
37
|
+
- lib/dropsite/plugins/image_thumbnails/assets/images/icons/directory.png
|
38
|
+
- lib/dropsite/plugins/image_thumbnails/assets/images/row-bg.png
|
39
|
+
- lib/dropsite/plugins/image_thumbnails/image_thumbnails.erb
|
40
|
+
- lib/dropsite/plugins/image_thumbnails/image_thumbnails.rb
|
33
41
|
- lib/dropsite/plugins/simple_index/assets/css/reset.css
|
34
42
|
- lib/dropsite/plugins/simple_index/assets/css/simple_index.css
|
35
43
|
- lib/dropsite/plugins/simple_index/assets/images/icons/directory.png
|
@@ -39,7 +47,6 @@ files:
|
|
39
47
|
- lib/dropsite/plugins/simple_index/assets/images/icons/text.png
|
40
48
|
- lib/dropsite/plugins/simple_index/assets/images/icons/unknown.png
|
41
49
|
- lib/dropsite/plugins/simple_index/assets/images/row-bg.png
|
42
|
-
- lib/dropsite/plugins/simple_index/assets/simple_index.js
|
43
50
|
- lib/dropsite/plugins/simple_index/simple_index.erb
|
44
51
|
- lib/dropsite/plugins/simple_index/simple_index.rb
|
45
52
|
- lib/dropsite/plugins.rb
|
@@ -49,6 +56,7 @@ files:
|
|
49
56
|
- lib/dropsite/site_file.rb
|
50
57
|
- lib/dropsite/site_item.rb
|
51
58
|
- lib/dropsite.rb
|
59
|
+
- test/fixtures/many_folders_public/one/two/three/four/five/six/seven/eight/file.txt
|
52
60
|
- test/fixtures/simple_public/file1.txt
|
53
61
|
- test/fixtures/simple_public/file2.txt
|
54
62
|
- test/fixtures/simple_public/pics/leaves.jpg
|
@@ -56,11 +64,15 @@ files:
|
|
56
64
|
- test/fixtures/simple_public/pics/people/concert.jpg
|
57
65
|
- test/fixtures/simple_public/pics/sculpture.jpg
|
58
66
|
- test/helper.rb
|
59
|
-
- test/
|
60
|
-
- test/
|
61
|
-
- test/
|
62
|
-
- test/
|
63
|
-
- test/
|
67
|
+
- test/integration/test_process_site.rb
|
68
|
+
- test/integration/test_process_site_many_folders.rb
|
69
|
+
- test/integration/test_process_site_with_thumbnails.rb
|
70
|
+
- test/unit/test_application.rb
|
71
|
+
- test/unit/test_config_file.rb
|
72
|
+
- test/unit/test_render_helper.rb
|
73
|
+
- test/unit/test_site.rb
|
74
|
+
- test/unit/test_site_dir.rb
|
75
|
+
- test/unit/test_site_file.rb
|
64
76
|
- README
|
65
77
|
- LICENSE
|
66
78
|
- dropsite.gemspec
|
@@ -96,13 +108,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
96
108
|
requirements: []
|
97
109
|
|
98
110
|
rubyforge_project:
|
99
|
-
rubygems_version: 1.
|
111
|
+
rubygems_version: 1.5.2
|
100
112
|
signing_key:
|
101
113
|
specification_version: 3
|
102
114
|
summary: "Dropsite creates a site of interlinked file index pages in the Public directory of your Dropbox. The site created is minimally invasive to your Public directory by only creating one top-level HTML page and one folder, leaving your directories unjunked. BE WARNED: while I _think_ this probably works fine, it is presently considered experimental."
|
103
|
-
test_files:
|
104
|
-
|
105
|
-
- test/test_site.rb
|
106
|
-
- test/test_site_dir.rb
|
107
|
-
- test/test_site_file.rb
|
108
|
-
- test/test_write_site.rb
|
115
|
+
test_files: []
|
116
|
+
|
data/test/test_site_dir.rb
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
require File.join(File.dirname(__FILE__), 'helper')
|
2
|
-
|
3
|
-
class TestSiteDir < Test::Unit::TestCase
|
4
|
-
def test_name
|
5
|
-
assert_equal 'pic1.jpg', SiteDir.new('pic1.jpg', [], '/tmp').name
|
6
|
-
assert_equal 'pic1.jpg', SiteDir.new('/pics/pic1.jpg', [], '/tmp').name
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_root_name
|
10
|
-
assert_equal '', SiteDir.new('/', [], '/tmp').name
|
11
|
-
assert_equal '', SiteDir.new('', [], '/tmp').name
|
12
|
-
end
|
13
|
-
|
14
|
-
def test_is_root
|
15
|
-
assert SiteDir.new('', [], '/tmp').root?
|
16
|
-
assert !SiteDir.new('/file.txt', [], '/tmp').root?
|
17
|
-
assert !SiteDir.new('/dir', [], '/tmp').root?
|
18
|
-
assert !SiteDir.new('/dir/file.txt', [], '/tmp').root?
|
19
|
-
end
|
20
|
-
end
|