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
         |