slideshow 1.1.0.beta5 → 1.1.0.beta6
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/Manifest.txt +2 -0
- data/Rakefile +2 -1
- data/config/slideshow.yml +4 -5
- data/lib/slideshow.rb +2 -2
- data/lib/slideshow/config.rb +1 -2
- data/lib/slideshow/filters/headers_filter.rb +7 -6
- data/lib/slideshow/gen.rb +4 -1
- data/lib/slideshow/headers.rb +87 -0
- data/lib/slideshow/opts.rb +1 -100
- data/lib/slideshow/version.rb +3 -0
- metadata +5 -3
data/Manifest.txt
CHANGED
@@ -13,6 +13,7 @@ lib/slideshow/filters/headers_filter.rb
|
|
13
13
|
lib/slideshow/filters/slide_filter.rb
|
14
14
|
lib/slideshow/filters/text_filter.rb
|
15
15
|
lib/slideshow/gen.rb
|
16
|
+
lib/slideshow/headers.rb
|
16
17
|
lib/slideshow/helpers/analytics_helper.rb
|
17
18
|
lib/slideshow/helpers/background_helper.rb
|
18
19
|
lib/slideshow/helpers/capture_helper.rb
|
@@ -31,6 +32,7 @@ lib/slideshow/markup/rest.rb
|
|
31
32
|
lib/slideshow/markup/textile.rb
|
32
33
|
lib/slideshow/opts.rb
|
33
34
|
lib/slideshow/slide.rb
|
35
|
+
lib/slideshow/version.rb
|
34
36
|
templates/s6.txt
|
35
37
|
templates/s6.txt.gen
|
36
38
|
templates/s6/jquery.js
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'hoe'
|
2
|
-
require './lib/slideshow.rb'
|
2
|
+
require './lib/slideshow/version.rb'
|
3
3
|
|
4
4
|
Hoe.spec 'slideshow' do
|
5
5
|
|
@@ -8,6 +8,7 @@ Hoe.spec 'slideshow' do
|
|
8
8
|
self.summary = 'Slide Show (S9) - A Free Web Alternative to PowerPoint and KeyNote in Ruby'
|
9
9
|
self.urls = ['http://slideshow.rubyforge.org']
|
10
10
|
|
11
|
+
|
11
12
|
self.author = 'Gerald Bauer'
|
12
13
|
self.email = 'webslideshow@googlegroups.com'
|
13
14
|
|
data/config/slideshow.yml
CHANGED
@@ -25,14 +25,13 @@ headers:
|
|
25
25
|
# gradient:
|
26
26
|
# theme: dark
|
27
27
|
# color1:
|
28
|
-
gradient-theme:
|
29
|
-
gradient-
|
30
|
-
gradient-color2: black
|
28
|
+
gradient-theme: diagonal
|
29
|
+
gradient-colors: red orange
|
31
30
|
|
32
31
|
# todo: use nested config??
|
33
32
|
#
|
34
|
-
# ultraviolet (uv) | coderay (cr)
|
35
|
-
code-engine:
|
33
|
+
# SyntaxHighligher (sh) | ultraviolet (uv) | coderay (cr)
|
34
|
+
code-engine: sh
|
36
35
|
# Text Mate Hyperlink for Source?
|
37
36
|
code-txmt: false
|
38
37
|
# todo: add code-linenumbers??
|
data/lib/slideshow.rb
CHANGED
@@ -38,7 +38,9 @@ require 'textutils' # text filters and helpers
|
|
38
38
|
|
39
39
|
|
40
40
|
# our own code
|
41
|
+
require 'slideshow/version'
|
41
42
|
require 'slideshow/opts'
|
43
|
+
require 'slideshow/headers'
|
42
44
|
require 'slideshow/config'
|
43
45
|
require 'slideshow/gen'
|
44
46
|
require 'slideshow/manifest'
|
@@ -70,8 +72,6 @@ require 'slideshow/filters/slide_filter'
|
|
70
72
|
|
71
73
|
module Slideshow
|
72
74
|
|
73
|
-
VERSION = '1.1.0.beta5'
|
74
|
-
|
75
75
|
def self.root
|
76
76
|
"#{File.expand_path( File.dirname(File.dirname(__FILE__)) )}"
|
77
77
|
end
|
data/lib/slideshow/config.rb
CHANGED
@@ -4,7 +4,8 @@ module Slideshow
|
|
4
4
|
|
5
5
|
def leading_headers( content_with_headers )
|
6
6
|
|
7
|
-
# todo:
|
7
|
+
# todo: lets user override headers with command line options
|
8
|
+
# that is, lets you override options using commandline switch
|
8
9
|
|
9
10
|
# read source document; split off optional header from source
|
10
11
|
# strip leading optional headers (key/value pairs) including optional empty lines
|
@@ -12,17 +13,17 @@ def leading_headers( content_with_headers )
|
|
12
13
|
read_headers = true
|
13
14
|
content = ""
|
14
15
|
|
15
|
-
|
16
|
+
keys = [] # track header keys for stats
|
16
17
|
|
17
18
|
content_with_headers.each_line do |line|
|
18
19
|
if read_headers && line =~ /^\s*(\w[\w-]*)[ \t]*:[ \t]*(.*)/
|
19
20
|
key = $1.downcase
|
20
21
|
value = $2.strip
|
21
22
|
|
22
|
-
|
23
|
+
keys << key
|
23
24
|
|
24
|
-
logger.debug " adding
|
25
|
-
|
25
|
+
logger.debug " adding header: key=>#{key}< value=>#{value}<"
|
26
|
+
headers.put( key, value )
|
26
27
|
elsif line =~ /^\s*$/
|
27
28
|
content << line unless read_headers
|
28
29
|
else
|
@@ -31,7 +32,7 @@ def leading_headers( content_with_headers )
|
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
34
|
-
puts " Reading #{
|
35
|
+
puts " Reading #{keys.length} headers: #{keys.join(', ')}..."
|
35
36
|
|
36
37
|
content
|
37
38
|
end
|
data/lib/slideshow/gen.rb
CHANGED
@@ -63,17 +63,20 @@ class Gen
|
|
63
63
|
end
|
64
64
|
|
65
65
|
# todo/fix: move to Config class
|
66
|
+
# - used in syntax/uv_helper (use config.cache_dir to access?)
|
67
|
+
|
66
68
|
def cache_dir
|
67
69
|
File.join( Env.home, '.slideshow' )
|
68
70
|
end
|
69
71
|
|
72
|
+
|
70
73
|
def config_dir
|
71
74
|
unless @config_dir # first time? calculate config_dir value to "cache"
|
72
75
|
|
73
76
|
if opts.config_path
|
74
77
|
@config_dir = opts.config_path
|
75
78
|
else
|
76
|
-
@config_dir = cache_dir
|
79
|
+
@config_dir = config.cache_dir
|
77
80
|
end
|
78
81
|
|
79
82
|
# make sure path exists
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module Slideshow
|
2
|
+
|
3
|
+
class Headers
|
4
|
+
|
5
|
+
def initialize( config )
|
6
|
+
@hash = {}
|
7
|
+
@config = config
|
8
|
+
end
|
9
|
+
|
10
|
+
## todo: rename put to store like std hash method
|
11
|
+
def put( key, value )
|
12
|
+
key = normalize_key( key )
|
13
|
+
setter = "#{key}=".to_sym
|
14
|
+
|
15
|
+
if respond_to?( setter )
|
16
|
+
send( setter, value )
|
17
|
+
else
|
18
|
+
@hash[ key ] = value
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def gradient=( line )
|
23
|
+
# split into theme (first value) and colors (everything else)
|
24
|
+
# e.g. diagonal red black
|
25
|
+
|
26
|
+
# todo/check: translate value w/ v.tr( '-', '_' ) ??
|
27
|
+
|
28
|
+
values = line.split( ' ' )
|
29
|
+
|
30
|
+
put( 'gradient-theme', values.first ) if values.size > 0
|
31
|
+
put( 'gradient-colors', values[ 1..-1].join( ' ' ) ) if values.size > 1
|
32
|
+
end
|
33
|
+
|
34
|
+
def has_gradient?
|
35
|
+
# has user defined gradient (using headers)? (default values do NOT count)
|
36
|
+
@hash.has_key?( :gradient_theme ) || @hash.has_key?( :gradient_colors )
|
37
|
+
end
|
38
|
+
|
39
|
+
def []( key )
|
40
|
+
value = get( key )
|
41
|
+
|
42
|
+
if value.nil?
|
43
|
+
puts "** Warning: header '#{key}' undefined"
|
44
|
+
value = "- #{key} not found -"
|
45
|
+
end
|
46
|
+
value
|
47
|
+
end
|
48
|
+
|
49
|
+
def code_engine
|
50
|
+
get( 'code-engine' )
|
51
|
+
end
|
52
|
+
|
53
|
+
def code_txmt
|
54
|
+
get( 'code-txmt' )
|
55
|
+
end
|
56
|
+
|
57
|
+
|
58
|
+
## todo: rename get to fetch??
|
59
|
+
def get( key, default=nil )
|
60
|
+
key = normalize_key(key)
|
61
|
+
value = @hash.fetch( key, nil )
|
62
|
+
value = @config.header( key ) if value.nil? # try lookup in config properties next
|
63
|
+
if value.nil?
|
64
|
+
default
|
65
|
+
else
|
66
|
+
value
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def get_boolean( key, default )
|
71
|
+
value = get( key, default )
|
72
|
+
if value.nil?
|
73
|
+
default
|
74
|
+
else
|
75
|
+
(value == true || value =~ /t|true|yes|on/i) ? true : false
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
def normalize_key( key )
|
82
|
+
key.to_s.downcase.tr('-', '_').to_sym
|
83
|
+
end
|
84
|
+
|
85
|
+
end # class Headers
|
86
|
+
|
87
|
+
end # module Slideshow
|
data/lib/slideshow/opts.rb
CHANGED
@@ -1,107 +1,8 @@
|
|
1
1
|
module Slideshow
|
2
2
|
|
3
|
-
# todo: split (command line) options and headers?
|
4
|
-
# e.g. share (command line) options between slide shows (but not headers?)
|
5
|
-
|
6
|
-
class Headers
|
7
|
-
|
8
|
-
def initialize( config )
|
9
|
-
@hash = {}
|
10
|
-
@config = config
|
11
|
-
end
|
12
|
-
|
13
|
-
def put( key, value )
|
14
|
-
key = normalize_key( key )
|
15
|
-
setter = "#{key}=".to_sym
|
16
|
-
|
17
|
-
if respond_to? setter
|
18
|
-
send setter, value
|
19
|
-
else
|
20
|
-
@hash[ key ] = value
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def gradient=( line )
|
25
|
-
# split into theme (first value) and colors (everything else)
|
26
|
-
# e.g. diagonal red black
|
27
|
-
|
28
|
-
# todo/check: translate value w/ v.tr( '-', '_' ) ??
|
29
|
-
|
30
|
-
values = line.split( ' ' )
|
31
|
-
|
32
|
-
put( 'gradient-theme', values.first ) if values.size > 0
|
33
|
-
put( 'gradient-colors', values[ 1..-1].join( ' ' ) ) if values.size > 1
|
34
|
-
end
|
35
|
-
|
36
|
-
def has_gradient?
|
37
|
-
# has user defined gradient (using headers)? (default values do NOT count)
|
38
|
-
@hash.has_key?( :gradient_theme ) || @hash.has_key?( :gradient_colors )
|
39
|
-
end
|
40
|
-
|
41
|
-
def []( key )
|
42
|
-
value = get( key )
|
43
|
-
value = @config.header( key ) if value.nil? # try lookup in config properties next
|
44
|
-
|
45
|
-
if value.nil?
|
46
|
-
puts "** Warning: header '#{key}' undefined"
|
47
|
-
value = "- #{key} not found -"
|
48
|
-
end
|
49
|
-
value
|
50
|
-
end
|
51
|
-
|
52
|
-
def code_engine
|
53
|
-
get( 'code-engine' )
|
54
|
-
end
|
55
|
-
|
56
|
-
def code_txmt
|
57
|
-
get( 'code-txmt' )
|
58
|
-
end
|
59
|
-
|
60
|
-
|
61
|
-
DEFAULTS =
|
62
|
-
{
|
63
|
-
:title => 'Untitled Slide Show',
|
64
|
-
:footer => '',
|
65
|
-
:subfooter => '',
|
66
|
-
:gradient_theme => 'diagonal',
|
67
|
-
:gradient_colors => 'red orange',
|
68
|
-
|
69
|
-
:code_engine => 'sh', # SyntaxHighligher (sh) | ultraviolet (uv) | coderay (cr)
|
70
|
-
:code_txmt => 'false', # Text Mate Hyperlink for Source?
|
71
|
-
}
|
72
|
-
|
73
|
-
## todo: rename get to fetch??
|
74
|
-
def get( key, default=nil )
|
75
|
-
key = normalize_key(key)
|
76
|
-
value = @hash.fetch( key, DEFAULTS[ key ] )
|
77
|
-
if value.nil?
|
78
|
-
default
|
79
|
-
else
|
80
|
-
value
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
private
|
85
|
-
|
86
|
-
def normalize_key( key )
|
87
|
-
key.to_s.downcase.tr('-', '_').to_sym
|
88
|
-
end
|
89
|
-
|
90
|
-
def get_boolean( key, default )
|
91
|
-
key = normalize_key( key )
|
92
|
-
value = @hash.fetch( key, DEFAULTS[ key ] )
|
93
|
-
if value.nil?
|
94
|
-
default
|
95
|
-
else
|
96
|
-
(value == true || value =~ /true|yes|on/i) ? true : false
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
end # class Headers
|
101
|
-
|
102
3
|
|
103
4
|
class Opts
|
104
|
-
|
5
|
+
|
105
6
|
def generate=(value)
|
106
7
|
@generate = value
|
107
8
|
end
|
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: 570047004
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 1.1.0.
|
11
|
+
- 6
|
12
|
+
version: 1.1.0.beta6
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Gerald Bauer
|
@@ -160,6 +160,7 @@ files:
|
|
160
160
|
- lib/slideshow/filters/slide_filter.rb
|
161
161
|
- lib/slideshow/filters/text_filter.rb
|
162
162
|
- lib/slideshow/gen.rb
|
163
|
+
- lib/slideshow/headers.rb
|
163
164
|
- lib/slideshow/helpers/analytics_helper.rb
|
164
165
|
- lib/slideshow/helpers/background_helper.rb
|
165
166
|
- lib/slideshow/helpers/capture_helper.rb
|
@@ -178,6 +179,7 @@ files:
|
|
178
179
|
- lib/slideshow/markup/textile.rb
|
179
180
|
- lib/slideshow/opts.rb
|
180
181
|
- lib/slideshow/slide.rb
|
182
|
+
- lib/slideshow/version.rb
|
181
183
|
- templates/s6.txt
|
182
184
|
- templates/s6.txt.gen
|
183
185
|
- templates/s6/jquery.js
|