gallerize-cli 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/{css → assets/css}/blank.gif +0 -0
- data/{css → assets/css}/fancybox_loading.gif +0 -0
- data/{css → assets/css}/fancybox_loading@2x.gif +0 -0
- data/{css → assets/css}/fancybox_overlay.png +0 -0
- data/{css → assets/css}/fancybox_sprite.png +0 -0
- data/{css → assets/css}/fancybox_sprite@2x.png +0 -0
- data/{css → assets/css}/jquery.fancybox.css +0 -0
- data/{css → assets/css}/styles.css +0 -0
- data/{js → assets/js}/imagesloaded.js +0 -0
- data/{js → assets/js}/jquery-1.10.1.min.js +0 -0
- data/{js → assets/js}/jquery.fancybox.js +0 -0
- data/{js → assets/js}/jquery.masonry.js +0 -0
- data/bin/gallerize +5 -1
- data/lib/gallerize/output_dir.rb +44 -0
- data/lib/gallerize/source_dir.rb +17 -0
- data/lib/gallerize.rb +18 -135
- data/templates/layout.html.erb +61 -0
- metadata +17 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e1ee1d0eda7806f452b027a8c96e4a1c6e85572
|
4
|
+
data.tar.gz: 3375075451bcf27df22dc5ab0fe88f01e82a8e56
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7782b81aabc2d716baa258a2c0726798cffca3ca1d07502ee6554da43e329c7061de63ec41a405efba5929cb8f8d96a108825a46ab6751291faf9c4c8c6eef8a
|
7
|
+
data.tar.gz: 74f6c2d79f571219728a868936697a7a37bc3332342d8ce136e69936a842f4b66b4a83d315a211311a6a0fabd08480b3587a805ae1cef11ced2a7bf918b10a90
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
data/bin/gallerize
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
class Gallerize
|
2
|
+
class OutputDir
|
3
|
+
|
4
|
+
attr_accessor :root
|
5
|
+
|
6
|
+
def initialize(path)
|
7
|
+
self.root = path
|
8
|
+
end
|
9
|
+
|
10
|
+
def root=(value)
|
11
|
+
@root = File.join( File.expand_path('.'), (value || 'gallerize') )
|
12
|
+
end
|
13
|
+
|
14
|
+
def relative_root
|
15
|
+
@relative_root ||= root.gsub(File.expand_path('.').to_s + "/", './')
|
16
|
+
end
|
17
|
+
|
18
|
+
def html_file(name)
|
19
|
+
name = name.to_s
|
20
|
+
name = "#{name}.html" unless name =~ /\.html/
|
21
|
+
File.join(root, name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def images
|
25
|
+
File.join( root, 'images' )
|
26
|
+
end
|
27
|
+
|
28
|
+
def html_files
|
29
|
+
File.join( root, '*.html')
|
30
|
+
end
|
31
|
+
|
32
|
+
def copy_from_gem_source(*folders)
|
33
|
+
folders.each do |folder|
|
34
|
+
outdir = File.join( root, folder )
|
35
|
+
unless Dir.exists?(outdir)
|
36
|
+
puts "copy ./#{folder} #{outdir}"
|
37
|
+
FileUtils.mkdir_p( File.expand_path(File.join(outdir, '..')) )
|
38
|
+
FileUtils.cp_r( File.join( ROOT, folder ), outdir )
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
end
|
data/lib/gallerize.rb
CHANGED
@@ -6,6 +6,10 @@ require 'mini_magick'
|
|
6
6
|
require 'pry'
|
7
7
|
require 'fileutils'
|
8
8
|
require 'exifr'
|
9
|
+
require 'erb'
|
10
|
+
|
11
|
+
require 'gallerize/output_dir'
|
12
|
+
require 'gallerize/source_dir'
|
9
13
|
|
10
14
|
ROOT = File.expand_path( File.join(__FILE__, '../../') )
|
11
15
|
|
@@ -13,7 +17,7 @@ class Gallerize
|
|
13
17
|
|
14
18
|
attr_accessor :image_paths
|
15
19
|
|
16
|
-
VERSION='0.2.
|
20
|
+
VERSION='0.2.1'
|
17
21
|
|
18
22
|
def self.generate
|
19
23
|
new.perform
|
@@ -42,7 +46,7 @@ class Gallerize
|
|
42
46
|
# ensure output/images directory
|
43
47
|
FileUtils.mkdir( output_dir.images ) unless File.exists?( output_dir.images )
|
44
48
|
# copy css and js from gem to output
|
45
|
-
output_dir.copy_from_gem_source( 'css', 'js' )
|
49
|
+
output_dir.copy_from_gem_source( 'assets/css', 'assets/js' )
|
46
50
|
end
|
47
51
|
|
48
52
|
def generate_images
|
@@ -66,17 +70,12 @@ class Gallerize
|
|
66
70
|
some_images ||= []
|
67
71
|
navigation = (images.count / per_page.to_f).ceil.times.collect{|r| %Q{<a class="#{'active' if r == ticker}" href="images-#{r}.html">#{r}</a>} }.join("\n")
|
68
72
|
navigation = (images.count > some_images.count) ? %Q{<div class="navigation">#{navigation}</div>} : ""
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
#{some_images.join("\n")}
|
74
|
-
</div>
|
75
|
-
#{navigation}
|
76
|
-
#{footer}
|
77
|
-
}
|
73
|
+
|
74
|
+
template = ERB.new(File.read(File.join(ROOT, 'templates/layout.html.erb')))
|
75
|
+
html = template.result(binding)
|
76
|
+
|
78
77
|
name ||= output_dir.html_file("images-#{ticker}")
|
79
|
-
puts "generate #{name}"
|
78
|
+
puts "generate #{name.gsub(output_dir.root, output_dir.relative_root)}"
|
80
79
|
File.write(name, html)
|
81
80
|
end
|
82
81
|
|
@@ -117,77 +116,10 @@ class Gallerize
|
|
117
116
|
}
|
118
117
|
end
|
119
118
|
|
120
|
-
def body
|
121
|
-
%Q{
|
122
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
123
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
124
|
-
<head>
|
125
|
-
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
|
126
|
-
<meta name="robots" content="noindex">
|
127
|
-
<meta name="googlebot" content="noindex">
|
128
|
-
|
129
|
-
<script type="text/javascript" src="js/jquery-1.10.1.min.js"></script>
|
130
|
-
<script type="text/javascript" src="js/jquery.fancybox.js"></script>
|
131
|
-
<script type="text/javascript" src="js/imagesloaded.js"></script>
|
132
|
-
<script type="text/javascript" src="js/jquery.masonry.js"></script>
|
133
|
-
|
134
|
-
<link rel="stylesheet" type="text/css" href="css/styles.css" media="screen" />
|
135
|
-
<link rel="stylesheet" type="text/css" href="css/jquery.fancybox.css" media="screen" />
|
136
|
-
<meta name="viewport" content="width=device-width, user-scalable=no">
|
137
|
-
|
138
|
-
<script type="text/javascript">
|
139
|
-
$(document).ready(function(){
|
140
|
-
$('#images-container').imagesLoaded( function() {
|
141
|
-
$('.images').show();
|
142
|
-
|
143
|
-
var container = document.querySelector('#images-container');
|
144
|
-
var msnry = new Masonry( container, {
|
145
|
-
|
146
|
-
itemSelector: '.image'
|
147
|
-
});
|
148
|
-
|
149
|
-
$('.fancybox').fancybox();
|
150
|
-
});
|
151
|
-
});
|
152
|
-
</script>
|
153
|
-
|
154
|
-
#{tracking_js}
|
155
|
-
|
156
|
-
<title>#{title}</title>
|
157
|
-
<link rel="stylesheet" href="css/styles.css" />
|
158
|
-
</head>
|
159
|
-
<body>
|
160
|
-
<h1 class="page-title">#{title}</h1>
|
161
|
-
}
|
162
|
-
end
|
163
|
-
|
164
|
-
def footer
|
165
|
-
%Q{
|
166
|
-
</body>
|
167
|
-
</html>
|
168
|
-
}
|
169
|
-
end
|
170
|
-
|
171
119
|
def per_page
|
172
120
|
config.per_page
|
173
121
|
end
|
174
122
|
|
175
|
-
def tracking_js
|
176
|
-
return if config.tracking.blank?
|
177
|
-
%Q{
|
178
|
-
<script>
|
179
|
-
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
180
|
-
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
181
|
-
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
182
|
-
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
183
|
-
|
184
|
-
ga('create', '#{config.tracking}', 'auto');
|
185
|
-
ga('send', 'pageview');
|
186
|
-
|
187
|
-
</script>
|
188
|
-
}
|
189
|
-
end
|
190
|
-
|
191
123
|
def generate_fullsize(source_path)
|
192
124
|
image = extract_image_extension(source_path)
|
193
125
|
output_path = File.join(output_dir.images, "#{image[:basename]}.#{image[:extension]}")
|
@@ -230,7 +162,7 @@ class Gallerize
|
|
230
162
|
end
|
231
163
|
|
232
164
|
def title
|
233
|
-
File.basename(File.expand_path('.')).titleize
|
165
|
+
config.to_h.has_key?(:title) ? config.title : File.basename(File.expand_path('.')).titleize
|
234
166
|
end
|
235
167
|
|
236
168
|
def output_dir
|
@@ -249,67 +181,18 @@ class Gallerize
|
|
249
181
|
global_config = File.join(ROOT,'config/global.yml')
|
250
182
|
FileUtils.cp( "#{global_config}.example", global_config ) unless File.exists?( global_config )
|
251
183
|
# load global_config and merge with source config
|
252
|
-
|
184
|
+
result = YAML.load(File.read(global_config)).merge(config)
|
185
|
+
result['to_h'] = result
|
186
|
+
# write to source_dir if not exists
|
187
|
+
File.write(source_dir.config, YAML.dump(result)) unless source_dir.config?
|
188
|
+
# onwards
|
189
|
+
OpenStruct.new(result)
|
253
190
|
end
|
254
191
|
|
255
192
|
def source_dir
|
256
193
|
@source_dir ||= SourceDir.new
|
257
194
|
end
|
258
195
|
|
259
|
-
class SourceDir
|
260
|
-
|
261
|
-
def config?
|
262
|
-
File.exists?(config)
|
263
|
-
end
|
264
|
-
|
265
|
-
def config
|
266
|
-
File.join( root, '.gallerize')
|
267
|
-
end
|
268
|
-
|
269
|
-
def root
|
270
|
-
@root ||= File.expand_path('.')
|
271
|
-
end
|
272
|
-
|
273
|
-
end
|
274
|
-
|
275
|
-
class OutputDir
|
276
|
-
|
277
|
-
attr_accessor :root
|
278
|
-
|
279
|
-
def initialize(path)
|
280
|
-
self.root = path
|
281
|
-
end
|
282
|
-
|
283
|
-
def root=(value)
|
284
|
-
@root = File.join( File.expand_path('.'), (value || 'gallerize') )
|
285
|
-
end
|
286
|
-
|
287
|
-
def html_file(name)
|
288
|
-
name = name.to_s
|
289
|
-
name = "#{name}.html" unless name =~ /\.html/
|
290
|
-
File.join(root, name)
|
291
|
-
end
|
292
|
-
|
293
|
-
def images
|
294
|
-
File.join( root, 'images' )
|
295
|
-
end
|
296
|
-
|
297
|
-
def html_files
|
298
|
-
File.join( root, '*.html')
|
299
|
-
end
|
300
|
-
|
301
|
-
def copy_from_gem_source(*folders)
|
302
|
-
folders.each do |folder|
|
303
|
-
outdir = File.join( root, folder )
|
304
|
-
puts "copy ./#{folder} #{outdir}"
|
305
|
-
FileUtils.rm_rf( outdir )
|
306
|
-
FileUtils.cp_r( File.join( ROOT, folder ), outdir )
|
307
|
-
end
|
308
|
-
end
|
309
|
-
|
310
|
-
|
311
|
-
end
|
312
|
-
|
313
196
|
end
|
314
197
|
|
315
198
|
Gallerize.generate
|
@@ -0,0 +1,61 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
|
5
|
+
<meta name="robots" content="noindex">
|
6
|
+
<meta name="googlebot" content="noindex">
|
7
|
+
|
8
|
+
<script type="text/javascript" src="assets/js/jquery-1.10.1.min.js"></script>
|
9
|
+
<script type="text/javascript" src="assets/js/jquery.fancybox.js"></script>
|
10
|
+
<script type="text/javascript" src="assets/js/imagesloaded.js"></script>
|
11
|
+
<script type="text/javascript" src="assets/js/jquery.masonry.js"></script>
|
12
|
+
|
13
|
+
<link rel="stylesheet" type="text/css" href="assets/css/styles.css" media="screen" />
|
14
|
+
<link rel="stylesheet" type="text/css" href="assets/css/jquery.fancybox.css" media="screen" />
|
15
|
+
<meta name="viewport" content="width=device-width, user-scalable=no">
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
$(document).ready(function(){
|
19
|
+
$('#images-container').imagesLoaded( function() {
|
20
|
+
$('.images').show();
|
21
|
+
|
22
|
+
var container = document.querySelector('#images-container');
|
23
|
+
var msnry = new Masonry( container, {
|
24
|
+
|
25
|
+
itemSelector: '.image'
|
26
|
+
});
|
27
|
+
|
28
|
+
$('.fancybox').fancybox();
|
29
|
+
});
|
30
|
+
});
|
31
|
+
</script>
|
32
|
+
|
33
|
+
<% if config.tracking.present? %>
|
34
|
+
<script>
|
35
|
+
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
36
|
+
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
37
|
+
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
38
|
+
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
39
|
+
|
40
|
+
ga('create', '<%= config.tracking %>', 'auto');
|
41
|
+
ga('send', 'pageview');
|
42
|
+
|
43
|
+
</script>
|
44
|
+
<% end %>
|
45
|
+
|
46
|
+
<title><%= title %></title>
|
47
|
+
<link rel="stylesheet" href="css/styles.css" />
|
48
|
+
</head>
|
49
|
+
<body>
|
50
|
+
<% if title.present? %>
|
51
|
+
<h1 class="page-title"><%= title %></h1>
|
52
|
+
<% end %>
|
53
|
+
|
54
|
+
<%= navigation %>
|
55
|
+
<div id="images-container" class="images">
|
56
|
+
<%= some_images.join("\n") %>
|
57
|
+
</div>
|
58
|
+
<%= navigation %>
|
59
|
+
|
60
|
+
</body>
|
61
|
+
</html>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gallerize-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blake Hilscher
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mini_magick
|
@@ -92,22 +92,25 @@ files:
|
|
92
92
|
- Gemfile
|
93
93
|
- Gemfile.lock
|
94
94
|
- README.md
|
95
|
+
- assets/css/blank.gif
|
96
|
+
- assets/css/fancybox_loading.gif
|
97
|
+
- assets/css/fancybox_loading@2x.gif
|
98
|
+
- assets/css/fancybox_overlay.png
|
99
|
+
- assets/css/fancybox_sprite.png
|
100
|
+
- assets/css/fancybox_sprite@2x.png
|
101
|
+
- assets/css/jquery.fancybox.css
|
102
|
+
- assets/css/styles.css
|
103
|
+
- assets/js/imagesloaded.js
|
104
|
+
- assets/js/jquery-1.10.1.min.js
|
105
|
+
- assets/js/jquery.fancybox.js
|
106
|
+
- assets/js/jquery.masonry.js
|
95
107
|
- bin/gallerize
|
96
108
|
- config/global.yml.example
|
97
|
-
- css/blank.gif
|
98
|
-
- css/fancybox_loading.gif
|
99
|
-
- css/fancybox_loading@2x.gif
|
100
|
-
- css/fancybox_overlay.png
|
101
|
-
- css/fancybox_sprite.png
|
102
|
-
- css/fancybox_sprite@2x.png
|
103
|
-
- css/jquery.fancybox.css
|
104
|
-
- css/styles.css
|
105
109
|
- gallerize-cli.gemspec
|
106
|
-
- js/imagesloaded.js
|
107
|
-
- js/jquery-1.10.1.min.js
|
108
|
-
- js/jquery.fancybox.js
|
109
|
-
- js/jquery.masonry.js
|
110
110
|
- lib/gallerize.rb
|
111
|
+
- lib/gallerize/output_dir.rb
|
112
|
+
- lib/gallerize/source_dir.rb
|
113
|
+
- templates/layout.html.erb
|
111
114
|
homepage: http://blake.hilscher.ca/
|
112
115
|
licenses:
|
113
116
|
- MIT
|