Class: Slideshow::Headers

Inherits:
Object
  • Object
show all
Defined in:
lib/slideshow/headers.rb

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Headers

Returns a new instance of Headers.



7
8
9
10
# File 'lib/slideshow/headers.rb', line 7

def initialize( config )
  @hash   = {}
  @config = config
end

Instance Method Details

#[](key) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'lib/slideshow/headers.rb', line 41

def []( key )
  value = get( key )
   
  if value.nil?
    puts "** Warning: header '#{key}' undefined"
    value = "- #{key} not found -"
  end
  value
end

#code_engineObject



51
52
53
# File 'lib/slideshow/headers.rb', line 51

def code_engine
  get( 'code-engine' )
end

#code_txmtObject



55
56
57
# File 'lib/slideshow/headers.rb', line 55

def code_txmt
  get( 'code-txmt' )
end

#get(key, default = nil) ⇒ Object

todo: rename get to fetch??



61
62
63
64
65
66
67
68
69
70
# File 'lib/slideshow/headers.rb', line 61

def get( key, default=nil )
  key = normalize_key(key)
  value = @hash.fetch( key, nil )
  value = @config.header( key ) if value.nil?   # try lookup in config properties next
  if value.nil?
    default
  else
    value
  end
end

#get_boolean(key, default) ⇒ Object



72
73
74
75
76
77
78
79
# File 'lib/slideshow/headers.rb', line 72

def get_boolean( key, default )
  value = get( key, default )
  if value.nil?
    default
  else
    (value == true || value =~ /t|true|yes|on/i) ? true : false
  end
end

#gradient=(line) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/slideshow/headers.rb', line 24

def gradient=( line )
  # split into theme (first value) and colors (everything else)
  #  e.g.  diagonal red black
  
  # todo/check: translate value w/ v.tr( '-', '_' ) ??
  
  values = line.split( ' ' )
    
  put( 'gradient-theme', values.first )                 if values.size > 0
  put( 'gradient-colors', values[ 1..-1].join( ' ' ) )  if values.size > 1
end

#has_gradient?Boolean

Returns:

  • (Boolean)


36
37
38
39
# File 'lib/slideshow/headers.rb', line 36

def has_gradient?
  # has user defined gradient (using headers)?  (default values do NOT count)
  @hash.has_key?( :gradient_theme ) || @hash.has_key?( :gradient_colors )
end

#put(key, value) ⇒ Object

todo: rename put to store like std hash method



13
14
15
16
17
18
19
20
21
22
# File 'lib/slideshow/headers.rb', line 13

def put( key, value )
  key = normalize_key( key )
  setter = "#{key}=".to_sym

  if respond_to?( setter )
    send( setter, value )
  else
    @hash[ key ] = value
  end
end