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.



5
6
7
8
# File 'lib/slideshow/headers.rb', line 5

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

Instance Method Details

#[](key) ⇒ Object



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

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

#code_engineObject



49
50
51
# File 'lib/slideshow/headers.rb', line 49

def code_engine
  get( 'code-engine' )
end

#code_txmtObject



53
54
55
# File 'lib/slideshow/headers.rb', line 53

def code_txmt
  get( 'code-txmt' )
end

#get(key, default = nil) ⇒ Object

todo: rename get to fetch??



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

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



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

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



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

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)


34
35
36
37
# File 'lib/slideshow/headers.rb', line 34

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



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

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