slideshow 1.2.0.beta3 → 1.2.0.beta4
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 +2 -1
- data/config/slideshow.yml +15 -15
- data/lib/slideshow.rb +2 -0
- data/lib/slideshow/cli/commands/fetch.rb +31 -9
- data/lib/slideshow/cli/commands/gen.rb +3 -2
- data/lib/slideshow/cli/commands/gen_templates.rb +2 -2
- data/lib/slideshow/cli/commands/list.rb +24 -4
- data/lib/slideshow/cli/commands/quick.rb +13 -38
- data/lib/slideshow/cli/opts.rb +1 -1
- data/lib/slideshow/manifest_helpers.rb +36 -3
- data/lib/slideshow/version.rb +1 -1
- metadata +26 -10
data/Rakefile
CHANGED
data/config/slideshow.yml
CHANGED
@@ -77,22 +77,22 @@ rest:
|
|
77
77
|
# shortcuts for fetching template packs
|
78
78
|
# map shortcut to URI
|
79
79
|
fetch:
|
80
|
-
s6syntax: https://github.com/geraldb/slideshow-s6-syntax-highlighter/
|
81
|
-
s6blank: https://github.com/geraldb/slideshow-s6-blank/
|
82
|
-
s5blank: https://github.com/geraldb/slideshow-s5-blank/
|
83
|
-
s5themes: https://github.com/geraldb/slideshow-s5-themes/
|
84
|
-
fullerscreen: https://github.com/geraldb/slideshow-fullerscreen/
|
85
|
-
slidy: https://github.com/geraldb/slideshow-slidy/
|
86
|
-
g5: https://github.com/geraldb/slideshow-google-html5-slides/
|
87
|
-
slippy: https://github.com/geraldb/slideshow-slippy/
|
88
|
-
csss: https://github.com/geraldb/slideshow-csss/
|
89
|
-
deck.js: https://github.com/geraldb/slideshow-deck.js/
|
90
|
-
impress.js: https://github.com/geraldb/slideshow-impress.js/
|
91
|
-
shower: https://github.com/geraldb/slideshow-shower/
|
80
|
+
s6syntax: https://raw.github.com/geraldb/slideshow-s6-syntax-highlighter/master/s6syntax.txt
|
81
|
+
s6blank: https://raw.github.com/geraldb/slideshow-s6-blank/master/s6blank.txt
|
82
|
+
s5blank: https://raw.github.com/geraldb/slideshow-s5-blank/master/s5blank.txt
|
83
|
+
s5themes: https://raw.github.com/geraldb/slideshow-s5-themes/master/s5themes.txt
|
84
|
+
fullerscreen: https://raw.github.com/geraldb/slideshow-fullerscreen/master/fullerscreen.txt
|
85
|
+
slidy: https://raw.github.com/geraldb/slideshow-slidy/master/slidy.txt
|
86
|
+
g5: https://raw.github.com/geraldb/slideshow-google-html5-slides/master/g5.txt
|
87
|
+
slippy: https://raw.github.com/geraldb/slideshow-slippy/master/slippy.txt
|
88
|
+
csss: https://raw.github.com/geraldb/slideshow-csss/master/csss.txt
|
89
|
+
deck.js: https://raw.github.com/geraldb/slideshow-deck.js/master/deck.js.txt
|
90
|
+
impress.js: https://raw.github.com/geraldb/slideshow-impress.js/master/impress.js.txt
|
91
|
+
shower: https://raw.github.com/geraldb/slideshow-shower/master/shower.txt
|
92
92
|
|
93
93
|
###########################
|
94
94
|
# shortcuts for quick starter templates
|
95
95
|
quick:
|
96
|
-
slidy: https://github.com/geraldb/slideshow-slidy/
|
97
|
-
deck.js: https://github.com/geraldb/slideshow-deck.js/
|
98
|
-
impress.js: https://github.com/geraldb/slideshow-impress.js/
|
96
|
+
slidy: https://raw.github.com/geraldb/slideshow-slidy/master/slidy.txt.quick
|
97
|
+
deck.js: https://raw.github.com/geraldb/slideshow-deck.js/master/deck.js.txt.quick
|
98
|
+
impress.js: https://raw.github.com/geraldb/slideshow-impress.js/master/impress.js.txt.quick
|
data/lib/slideshow.rb
CHANGED
@@ -28,6 +28,8 @@ class Fetch
|
|
28
28
|
return
|
29
29
|
end
|
30
30
|
puts " Mapping fetch shortcut '#{shortcut}' to: #{src}"
|
31
|
+
else
|
32
|
+
shortcut = nil
|
31
33
|
end
|
32
34
|
|
33
35
|
# src = 'http://github.com/geraldb/slideshow/raw/d98e5b02b87ee66485431b1bee8fb6378297bfe4/code/templates/fullerscreen.txt'
|
@@ -35,19 +37,39 @@ class Fetch
|
|
35
37
|
uri = URI.parse( src )
|
36
38
|
logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
|
37
39
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
logger.debug "pakpath
|
40
|
+
pakname = File.basename( uri.path ).downcase.gsub('.txt','')
|
41
|
+
pakpath = File.expand_path( "#{config.config_dir}/templates/#{pakname}" )
|
42
|
+
|
43
|
+
logger.debug "packname >#{pakname}<"
|
44
|
+
logger.debug "pakpath >#{pakpath}<"
|
45
|
+
|
46
|
+
Pakman::Fetcher.new( logger ).fetch_pak( src, pakpath )
|
47
|
+
|
48
|
+
###################################
|
49
|
+
## step 2) if shortcut exists (auto include quickstarter manifest w/ same name/key)
|
50
|
+
|
51
|
+
if shortcut.present?
|
52
|
+
|
53
|
+
src = config.map_quick_shortcut( shortcut )
|
54
|
+
return if src.nil? # no shortcut found; sorry; returning (nothing more to do)
|
55
|
+
|
56
|
+
puts " Mapping quick shortcut '#{shortcut}' to: #{src}"
|
43
57
|
|
44
|
-
|
45
|
-
|
58
|
+
uri = URI.parse( src )
|
59
|
+
logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
|
60
|
+
|
61
|
+
# downcase basename w/ extension (remove .txt)
|
62
|
+
pakname = File.basename( uri.path ).downcase.gsub('.txt','')
|
63
|
+
pakpath = File.expand_path( "#{config.config_dir}/templates/#{pakname}" )
|
64
|
+
|
65
|
+
logger.debug "pakname >#{pakname}<"
|
66
|
+
logger.debug "pakpath >#{pakpath}<"
|
46
67
|
|
47
|
-
|
68
|
+
Pakman::Fetcher.new( logger ).fetch_pak( src, pakpath )
|
69
|
+
end
|
70
|
+
|
48
71
|
end # method run
|
49
72
|
|
50
|
-
|
51
73
|
end # class Fetch
|
52
74
|
|
53
75
|
end # module Slideshow
|
@@ -159,8 +159,9 @@ class Gen
|
|
159
159
|
manifest_path_or_name = opts.manifest
|
160
160
|
|
161
161
|
# add .txt file extension if missing (for convenience)
|
162
|
-
manifest_path_or_name
|
163
|
-
|
162
|
+
if manifest_path_or_name.downcase.ends_with?( '.txt' ) == false
|
163
|
+
manifest_path_or_name << '.txt'
|
164
|
+
end
|
164
165
|
|
165
166
|
logger.debug "manifest=#{manifest_path_or_name}"
|
166
167
|
|
@@ -14,13 +14,13 @@ class GenTemplates
|
|
14
14
|
attr_reader :logger, :opts, :config
|
15
15
|
|
16
16
|
def run
|
17
|
-
manifest_name = opts.manifest
|
17
|
+
manifest_name = opts.manifest.gsub( '.txt', '' ) # remove (optional) .txt ending
|
18
18
|
logger.debug "manifest=#{manifest_name}"
|
19
19
|
|
20
20
|
manifests = installed_generator_manifests
|
21
21
|
|
22
22
|
# check for builtin generator manifests
|
23
|
-
matches = manifests.select { |m| m[0] == manifest_name+
|
23
|
+
matches = manifests.select { |m| m[0] == manifest_name+'.txt.gen' }
|
24
24
|
|
25
25
|
if matches.empty?
|
26
26
|
puts "*** error: unknown template manifest '#{manifest_name}'"
|
@@ -15,19 +15,39 @@ class List
|
|
15
15
|
attr_reader :logger, :opts, :config
|
16
16
|
|
17
17
|
def run
|
18
|
-
|
18
|
+
home = Env.home
|
19
|
+
## replace home w/ ~ (to make out more readable (shorter))
|
20
|
+
## e.g. use gsub( home, '~' )
|
19
21
|
|
22
|
+
puts ''
|
23
|
+
puts 'Installed quickstarter packs in search path'
|
24
|
+
|
25
|
+
installed_quick_manifest_patterns.each_with_index do |pattern,i|
|
26
|
+
puts " [#{i+1}] #{pattern.gsub(home,'~')}"
|
27
|
+
end
|
28
|
+
puts ' include:'
|
29
|
+
|
30
|
+
installed_quick_manifests.each do |manifest|
|
31
|
+
pakname = manifest[0].gsub('.txt','').gsub('.quick','')
|
32
|
+
manifestpath = manifest[1].gsub(home,'~')
|
33
|
+
puts "%16s (%s)" % [pakname,manifestpath]
|
34
|
+
end
|
35
|
+
|
36
|
+
|
20
37
|
puts ''
|
21
38
|
puts 'Installed template packs in search path'
|
22
39
|
|
23
40
|
installed_template_manifest_patterns.each_with_index do |pattern,i|
|
24
|
-
puts " [#{i+1}] #{pattern}"
|
41
|
+
puts " [#{i+1}] #{pattern.gsub(home,'~')}"
|
25
42
|
end
|
26
43
|
puts ' include:'
|
27
44
|
|
28
|
-
|
29
|
-
|
45
|
+
installed_template_manifests.each do |manifest|
|
46
|
+
pakname = manifest[0].gsub('.txt','')
|
47
|
+
manifestpath = manifest[1].gsub(home,'~')
|
48
|
+
puts "%16s (%s)" % [pakname,manifestpath]
|
30
49
|
end
|
50
|
+
|
31
51
|
end
|
32
52
|
|
33
53
|
end # class List
|
@@ -2,6 +2,8 @@ module Slideshow
|
|
2
2
|
|
3
3
|
class Quick
|
4
4
|
|
5
|
+
include ManifestHelper
|
6
|
+
|
5
7
|
### fix: remove opts, use config (wrapped!!)
|
6
8
|
|
7
9
|
def initialize( logger, opts, config )
|
@@ -13,20 +15,20 @@ class Quick
|
|
13
15
|
attr_reader :logger, :opts, :config
|
14
16
|
|
15
17
|
def run
|
16
|
-
manifest_name = opts.quick_manifest
|
18
|
+
manifest_name = opts.quick_manifest.gsub('.txt','').gsub('.quick','') # make sure we get name w/o .quick and .txt extension
|
17
19
|
|
18
20
|
### todo:fix: always download quickstart templates (except welcome?)
|
19
21
|
# how to make sure the won't go stale in the cache after the download?
|
20
22
|
|
21
23
|
manifests = installed_quick_manifests
|
22
|
-
matches = manifests.select { |m| m[0] == manifest_name+'.txt.quick' }
|
24
|
+
matches = manifests.select { |m| (m[0] == manifest_name+'.txt.quick') || (m[0] == manifest_name+'.quick.txt') }
|
23
25
|
|
24
26
|
if matches.empty?
|
25
|
-
fetch_pak( manifest_name )
|
27
|
+
fetch_pak( manifest_name )
|
26
28
|
|
27
29
|
# retry
|
28
30
|
manifests = installed_quick_manifests
|
29
|
-
matches = manifests.select { |m| m[0] == manifest_name+'.txt.quick' }
|
31
|
+
matches = manifests.select { |m| (m[0] == manifest_name+'.txt.quick') || (m[0] == manifest_name+'.quick.txt') }
|
30
32
|
if matches.empty?
|
31
33
|
puts "*** error: quickstart template #{manifest_name} not found"
|
32
34
|
exit 2
|
@@ -41,6 +43,8 @@ class Quick
|
|
41
43
|
Pakman::Copier.new( logger ).copy_pak( manifestsrc, pakpath )
|
42
44
|
end
|
43
45
|
|
46
|
+
## todo rename to fetch_quick_pak??
|
47
|
+
## share/use same code in fetch too??
|
44
48
|
|
45
49
|
def fetch_pak( shortcut )
|
46
50
|
|
@@ -59,43 +63,14 @@ class Quick
|
|
59
63
|
uri = URI.parse( src )
|
60
64
|
logger.debug "scheme: #{uri.scheme}, host: #{uri.host}, port: #{uri.port}, path: #{uri.path}"
|
61
65
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
## exclude directories in match
|
68
|
-
|
69
|
-
|
70
|
-
## remove (.txt) in basename
|
71
|
-
pakpath = File.expand_path( "#{config.config_dir}/quick/#{basename.gsub('.txt','')}.quick" )
|
72
|
-
logger.debug "pakpath: #{pakpath}"
|
73
|
-
|
66
|
+
pakname = File.basename( uri.path ).downcase.gsub('.txt','')
|
67
|
+
pakpath = File.expand_path( "#{config.config_dir}/templates/#{pakname}" )
|
68
|
+
|
69
|
+
logger.debug "pakname >#{pakname}<"
|
70
|
+
logger.debug "pakpath >#{pakpath}<"
|
74
71
|
|
75
72
|
Pakman::Fetcher.new( logger ).fetch_pak( src, pakpath )
|
76
73
|
end # method fetch_pak
|
77
74
|
|
78
|
-
private
|
79
|
-
|
80
|
-
|
81
|
-
def installed_quick_manifests
|
82
|
-
# 1) search config_dir/templates
|
83
|
-
# 2) search gem/templates
|
84
|
-
|
85
|
-
builtin_patterns = [
|
86
|
-
"#{Slideshow.root}/templates/*.txt.quick"
|
87
|
-
]
|
88
|
-
config_patterns = [
|
89
|
-
"#{config.config_dir}/quick/*.txt.quick",
|
90
|
-
"#{config.config_dir}/quick/*/*.txt.quick"
|
91
|
-
]
|
92
|
-
|
93
|
-
patterns = []
|
94
|
-
patterns += config_patterns
|
95
|
-
patterns += builtin_patterns
|
96
|
-
|
97
|
-
Pakman::Finder.new( logger ).find_manifests( patterns )
|
98
|
-
end
|
99
|
-
|
100
75
|
end # class GenTemplates
|
101
76
|
end # module Slideshow
|
data/lib/slideshow/cli/opts.rb
CHANGED
@@ -18,21 +18,54 @@ module ManifestHelper
|
|
18
18
|
]
|
19
19
|
current_patterns = [
|
20
20
|
"templates/*.txt",
|
21
|
-
"templates/*/*.txt"
|
21
|
+
"templates/*/*.txt" # todo: use all in one line? {*.txt,*/*.txt} does it work?
|
22
22
|
]
|
23
23
|
|
24
24
|
patterns = []
|
25
25
|
patterns += current_patterns unless Slideshow.root == File.expand_path( '.' ) # don't include working dir if we test code from repo (don't include slideshow/templates)
|
26
26
|
patterns += config_patterns
|
27
|
-
patterns += builtin_patterns
|
27
|
+
patterns += builtin_patterns
|
28
28
|
end
|
29
29
|
|
30
30
|
def installed_template_manifests
|
31
31
|
## note: code moved to its own gem, that is, pakman
|
32
32
|
## see https://github.com/geraldb/pakman
|
33
33
|
|
34
|
-
|
34
|
+
## exclude manifest.txt/i (avoid confusion w/ ruby gem manifest; not a specific name anyway)
|
35
|
+
## also exclude patterns for quickstarter templates
|
36
|
+
|
37
|
+
excludes = [
|
38
|
+
'manifest.txt',
|
39
|
+
'*/manifest.txt',
|
40
|
+
'*.{txt.quick,quick.txt}',
|
41
|
+
'*/*.{txt.quick,quick.txt}'
|
42
|
+
]
|
43
|
+
|
44
|
+
Pakman::Finder.new( logger ).find_manifests( installed_template_manifest_patterns, excludes )
|
35
45
|
end
|
46
|
+
|
47
|
+
|
48
|
+
def installed_quick_manifest_patterns
|
49
|
+
# 1) search config_dir/templates
|
50
|
+
# 2) search gem/templates
|
51
|
+
|
52
|
+
builtin_patterns = [
|
53
|
+
"#{Slideshow.root}/templates/*.{txt.quick,quick.txt}"
|
54
|
+
]
|
55
|
+
config_patterns = [
|
56
|
+
"#{config.config_dir}/templates/*.{txt.quick,quick.txt}",
|
57
|
+
"#{config.config_dir}/templates/*/*.{txt.quick,quick.txt}"
|
58
|
+
]
|
36
59
|
|
60
|
+
patterns = []
|
61
|
+
patterns += config_patterns
|
62
|
+
patterns += builtin_patterns
|
63
|
+
end
|
64
|
+
|
65
|
+
def installed_quick_manifests # quickstarter templates
|
66
|
+
Pakman::Finder.new( logger ).find_manifests( installed_quick_manifest_patterns )
|
67
|
+
end
|
68
|
+
|
69
|
+
|
37
70
|
end # module Manifest
|
38
71
|
end # module Slideshow
|
data/lib/slideshow/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slideshow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 811109185
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 1.2.0.
|
11
|
+
- 4
|
12
|
+
version: 1.2.0.beta4
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Gerald Bauer
|
@@ -91,18 +91,34 @@ dependencies:
|
|
91
91
|
requirements:
|
92
92
|
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
|
-
hash:
|
94
|
+
hash: 23
|
95
95
|
segments:
|
96
96
|
- 0
|
97
|
-
-
|
97
|
+
- 2
|
98
98
|
- 0
|
99
|
-
version: 0.
|
99
|
+
version: 0.2.0
|
100
100
|
type: :runtime
|
101
101
|
version_requirements: *id005
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
|
-
name:
|
103
|
+
name: activesupport
|
104
104
|
prerelease: false
|
105
105
|
requirement: &id006 !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
hash: 3
|
111
|
+
segments:
|
112
|
+
- 3
|
113
|
+
- 2
|
114
|
+
- 6
|
115
|
+
version: 3.2.6
|
116
|
+
type: :runtime
|
117
|
+
version_requirements: *id006
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
name: rdoc
|
120
|
+
prerelease: false
|
121
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
106
122
|
none: false
|
107
123
|
requirements:
|
108
124
|
- - ~>
|
@@ -113,11 +129,11 @@ dependencies:
|
|
113
129
|
- 10
|
114
130
|
version: "3.10"
|
115
131
|
type: :development
|
116
|
-
version_requirements: *
|
132
|
+
version_requirements: *id007
|
117
133
|
- !ruby/object:Gem::Dependency
|
118
134
|
name: hoe
|
119
135
|
prerelease: false
|
120
|
-
requirement: &
|
136
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
121
137
|
none: false
|
122
138
|
requirements:
|
123
139
|
- - ~>
|
@@ -128,7 +144,7 @@ dependencies:
|
|
128
144
|
- 0
|
129
145
|
version: "3.0"
|
130
146
|
type: :development
|
131
|
-
version_requirements: *
|
147
|
+
version_requirements: *id008
|
132
148
|
description: |-
|
133
149
|
The Slide Show (S9) Ruby gem lets you create slide shows and author slides in plain text
|
134
150
|
using a wiki-style markup language that's easy-to-write and easy-to-read.
|