dropsite 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/dropsite.gemspec +1 -1
- data/lib/dropsite/application.rb +9 -7
- data/lib/dropsite/globals.rb +49 -0
- data/lib/dropsite/render_helper.rb +2 -2
- data/lib/dropsite/site.rb +8 -2
- data/lib/dropsite.rb +4 -50
- metadata +4 -3
data/dropsite.gemspec
CHANGED
data/lib/dropsite/application.rb
CHANGED
@@ -7,7 +7,7 @@ module Dropsite
|
|
7
7
|
def run
|
8
8
|
handle_options
|
9
9
|
|
10
|
-
options.dropbox_home =
|
10
|
+
options.dropbox_home = dropbox_dir if not options.dropbox_home
|
11
11
|
|
12
12
|
if !options.dropbox_home || !File.exist?(options.dropbox_home)
|
13
13
|
$stderr.puts 'Dropbox home directory cannot be found or does not exist'
|
@@ -19,8 +19,10 @@ module Dropsite
|
|
19
19
|
create_config_dir
|
20
20
|
else
|
21
21
|
options.public_dir = File.join(options.dropbox_home, 'Public')
|
22
|
-
cf = ConfigFile.new
|
23
|
-
|
22
|
+
cf = ConfigFile.new
|
23
|
+
if cf.exist?
|
24
|
+
options.exclude = cf.exclude
|
25
|
+
end
|
24
26
|
site = Dropsite::Site.new(options)
|
25
27
|
site.process
|
26
28
|
end
|
@@ -31,12 +33,12 @@ module Dropsite
|
|
31
33
|
end
|
32
34
|
|
33
35
|
def create_config_dir
|
34
|
-
if
|
35
|
-
puts "Config directory already exists at: #{
|
36
|
+
if dropsite_config_dir
|
37
|
+
puts "Config directory already exists at: #{dropsite_config_dir}"
|
36
38
|
exit
|
37
39
|
end
|
38
40
|
|
39
|
-
config_dir = File.join(
|
41
|
+
config_dir = File.join(dropbox_dir, '.dropsite')
|
40
42
|
Dir.mkdir(config_dir)
|
41
43
|
File.open(File.join(config_dir, 'config.yml'), 'w') do |f|
|
42
44
|
# TODO: put the contents in there
|
@@ -76,7 +78,7 @@ module Dropsite
|
|
76
78
|
attr_reader :path, :exclude
|
77
79
|
|
78
80
|
def initialize(path=nil)
|
79
|
-
@path = path || File.join(
|
81
|
+
@path = path || dropsite_config_dir ? File.join(dropsite_config_dir, 'config.yml') : ''
|
80
82
|
end
|
81
83
|
|
82
84
|
def read
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Some utility methods to dump into Object
|
2
|
+
|
3
|
+
# Attempts to find the Dropbox directory (not the Public directory, the Dropbox base
|
4
|
+
# directory) on this box. Returns nil if an existing directory could not be found.
|
5
|
+
def dropbox_dir
|
6
|
+
return ENV['DROPBOX_HOME'] if ENV['DROPBOX_HOME']
|
7
|
+
|
8
|
+
path = case RUBY_PLATFORM
|
9
|
+
when /darwin/, /linux/, /freebsd/
|
10
|
+
File.join(home_dir, 'Dropbox')
|
11
|
+
when /win32/, /mingw/
|
12
|
+
File.join(home_dir, 'My Documents', 'My Dropbox')
|
13
|
+
end
|
14
|
+
|
15
|
+
File.exist?(path) ? path : nil
|
16
|
+
end
|
17
|
+
|
18
|
+
# Find the configuration directory for Dropsite. The folder .dropsite is
|
19
|
+
# looked for from most "local" to the Public folder outward. First in the
|
20
|
+
# Public folder, then the Dropsite directory itself (recommended place) and
|
21
|
+
# then the user's home directory.
|
22
|
+
def dropsite_config_dir
|
23
|
+
config_dir_name = '.dropsite'
|
24
|
+
[
|
25
|
+
File.join(dropbox_dir, 'Public', config_dir_name),
|
26
|
+
File.join(dropbox_dir, config_dir_name),
|
27
|
+
File.join(home_dir, config_dir_name)
|
28
|
+
].find {|dir| File.exist? dir}
|
29
|
+
end
|
30
|
+
|
31
|
+
# Platform-specific home directory
|
32
|
+
def home_dir
|
33
|
+
home = ENV['HOME']
|
34
|
+
home = ENV['USERPROFILE'] if not home
|
35
|
+
if !home && (ENV['HOMEDRIVE'] && ENV['HOMEPATH'])
|
36
|
+
home = File.join(ENV['HOMEDRIVE'], ENV['HOMEPATH'])
|
37
|
+
end
|
38
|
+
home = File.expand_path('~') if not home
|
39
|
+
home = 'C:/' if !home && RUBY_PLATFORM =~ /mswin|mingw/
|
40
|
+
home
|
41
|
+
end
|
42
|
+
|
43
|
+
# Convert a camel-cased string into a lowercase, underscore separated string
|
44
|
+
def underscorize(camel_cased_word)
|
45
|
+
camel_cased_word.to_s.gsub(/::/, '/').
|
46
|
+
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
47
|
+
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
48
|
+
tr("-", "_").downcase
|
49
|
+
end
|
@@ -110,11 +110,11 @@ module Dropsite
|
|
110
110
|
|
111
111
|
def plugin_assets_link_base
|
112
112
|
if root?
|
113
|
-
"dropsite/dropsite-assets/#{
|
113
|
+
"dropsite/dropsite-assets/#{underscorize(rendered_by)}/"
|
114
114
|
else
|
115
115
|
# Work our way BACK up the path - crazy, right? Gotta do it though.
|
116
116
|
dirs_up = path.split(File::SEPARATOR).size - 1
|
117
|
-
(['..'] * dirs_up).join('/') + "#{'/' if dirs_up > 0}dropsite-assets/#{
|
117
|
+
(['..'] * dirs_up).join('/') + "#{'/' if dirs_up > 0}dropsite-assets/#{underscorize(rendered_by)}/"
|
118
118
|
end
|
119
119
|
end
|
120
120
|
|
data/lib/dropsite/site.rb
CHANGED
@@ -10,7 +10,13 @@ module Dropsite
|
|
10
10
|
@public_dir = config
|
11
11
|
@exclude, @disabled_plugins = [], []
|
12
12
|
@quiet = false
|
13
|
-
|
13
|
+
elsif config.is_a? OpenStruct
|
14
|
+
@config = config.clone
|
15
|
+
@public_dir = config.public_dir
|
16
|
+
@exclude = config.exclude || []
|
17
|
+
@disabled_plugins = config.disabled_plugins || []
|
18
|
+
@quiet = config.quiet || false
|
19
|
+
elsif config.is_a? Hash
|
14
20
|
@config = config.clone
|
15
21
|
@public_dir = config[:public_dir]
|
16
22
|
@exclude = config[:exclude] || []
|
@@ -61,7 +67,7 @@ module Dropsite
|
|
61
67
|
Dir.mkdir(assets_dir)
|
62
68
|
DirRenderer.renderers.each do |r|
|
63
69
|
if File.exist? r.assets_dir
|
64
|
-
FileUtils.cp_r(r.assets_dir, File.join(assets_dir,
|
70
|
+
FileUtils.cp_r(r.assets_dir, File.join(assets_dir, underscorize(r.class.to_s)))
|
65
71
|
end
|
66
72
|
end
|
67
73
|
end
|
data/lib/dropsite.rb
CHANGED
@@ -1,55 +1,9 @@
|
|
1
1
|
module Dropsite
|
2
|
-
VERSION = '0.
|
3
|
-
|
4
|
-
# Attempts to find the Dropbox directory (not the Public directory, the Dropbox base
|
5
|
-
# directory) on this box. Returns nil if an existing directory could not be found.
|
6
|
-
def dropbox_dir
|
7
|
-
return ENV['DROPBOX_HOME'] if ENV['DROPBOX_HOME']
|
8
|
-
|
9
|
-
path = case RUBY_PLATFORM
|
10
|
-
when /darwin/, /linux/, /freebsd/
|
11
|
-
File.join(home_dir, 'Dropbox')
|
12
|
-
when /win32/, /mingw/
|
13
|
-
File.join(home_dir, 'My Documents', 'My Dropbox')
|
14
|
-
end
|
15
|
-
|
16
|
-
File.exist?(path) ? path : nil
|
17
|
-
end
|
18
|
-
|
19
|
-
# Find the configuration directory for Dropsite. The folder .dropsite is
|
20
|
-
# looked for from most "local" to the Public folder outward. First in the
|
21
|
-
# Public folder, then the Dropsite directory itself (recommended place) and
|
22
|
-
# then the user's home directory.
|
23
|
-
def dropsite_config_dir
|
24
|
-
config_dir_name = '.dropsite'
|
25
|
-
[
|
26
|
-
File.join(dropbox_dir, 'Public', config_dir_name),
|
27
|
-
File.join(dropbox_dir, config_dir_name),
|
28
|
-
File.join(home_dir, config_dir_name)
|
29
|
-
].find {|dir| File.exist? dir}
|
30
|
-
end
|
31
|
-
|
32
|
-
# Platform-specific home directory
|
33
|
-
def home_dir
|
34
|
-
home = ENV['HOME']
|
35
|
-
home = ENV['USERPROFILE'] if not home
|
36
|
-
if !home && (ENV['HOMEDRIVE'] && ENV['HOMEPATH'])
|
37
|
-
home = File.join(ENV['HOMEDRIVE'], ENV['HOMEPATH'])
|
38
|
-
end
|
39
|
-
home = File.expand_path('~') if not home
|
40
|
-
home = 'C:/' if !home && RUBY_PLATFORM =~ /mswin|mingw/
|
41
|
-
home
|
42
|
-
end
|
43
|
-
|
44
|
-
# Convert a camel-cased string into a lowercase, underscore separated string
|
45
|
-
def underscorize(camel_cased_word)
|
46
|
-
camel_cased_word.to_s.gsub(/::/, '/').
|
47
|
-
gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
|
48
|
-
gsub(/([a-z\d])([A-Z])/,'\1_\2').
|
49
|
-
tr("-", "_").downcase
|
50
|
-
end
|
2
|
+
VERSION = '0.3.1'
|
51
3
|
end
|
52
4
|
|
53
|
-
|
5
|
+
include Dropsite
|
6
|
+
|
7
|
+
%w[globals dir_renderer render_helper plugins site site_item site_dir site_file application].each do |lib|
|
54
8
|
require File.join('dropsite', lib)
|
55
9
|
end
|
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:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 1
|
10
|
+
version: 0.3.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Aaron Royer
|
@@ -31,6 +31,7 @@ files:
|
|
31
31
|
- bin/dropsite
|
32
32
|
- lib/dropsite/application.rb
|
33
33
|
- lib/dropsite/dir_renderer.rb
|
34
|
+
- lib/dropsite/globals.rb
|
34
35
|
- lib/dropsite/plugins/image_thumbnails/assets/css/image_thumbnails.css
|
35
36
|
- lib/dropsite/plugins/image_thumbnails/assets/css/reset.css
|
36
37
|
- lib/dropsite/plugins/image_thumbnails/assets/images/icons/directory-large.png
|