Class: Slideshow::Headers
- Inherits:
-
Object
- Object
- Slideshow::Headers
- Defined in:
- lib/slideshow/headers.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #code_engine ⇒ Object
- #code_txmt ⇒ Object
-
#get(key, default = nil) ⇒ Object
todo: rename get to fetch??.
- #get_boolean(key, default) ⇒ Object
- #gradient=(line) ⇒ Object
- #has_gradient? ⇒ Boolean
-
#initialize(config) ⇒ Headers
constructor
A new instance of Headers.
-
#put(key, value) ⇒ Object
todo: rename put to store like std hash method.
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_engine ⇒ Object
49 50 51 |
# File 'lib/slideshow/headers.rb', line 49 def code_engine get( 'code-engine' ) end |
#code_txmt ⇒ Object
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
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 |