slideshow 1.1.0.beta5 → 1.1.0.beta6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|