Class: Aspera::Cli::ExtendedValue
- Inherits:
-
Object
- Object
- Aspera::Cli::ExtendedValue
- Includes:
- Singleton
- Defined in:
- lib/aspera/cli/extended_value.rb
Overview
command line extended values
Class Method Summary collapse
-
.decode_csvt(value) ⇒ Object
decode comma separated table text.
Instance Method Summary collapse
-
#evaluate(value) ⇒ Object
parse an option value if it is a String using supported extended value modifiers other value types are returned as is.
- #modifiers ⇒ Object
-
#set_handler(name, method) ⇒ Object
add a new handler.
Class Method Details
.decode_csvt(value) ⇒ Object
decode comma separated table text
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/aspera/cli/extended_value.rb', line 19 def decode_csvt(value) col_titles = nil hash_array = [] CSV.parse(value).each do |values| next if values.empty? if col_titles.nil? col_titles = values else entry = {} col_titles.each{|title|entry[title] = values.shift} hash_array.push(entry) end end Log.log.warn('Titled CSV file without any line') if hash_array.empty? return hash_array end |
Instance Method Details
#evaluate(value) ⇒ Object
parse an option value if it is a String using supported extended value modifiers other value types are returned as is
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/aspera/cli/extended_value.rb', line 72 def evaluate(value) return value if !value.is_a?(String) # first determine decoders, in reversed order handlers_reversed = [] while (m = value.match(/^@([^:]+):(.*)/)) && @handlers.include?(m[1].to_sym) handlers_reversed.unshift(m[1].to_sym) value = m[2] end handlers_reversed.each do |handler| value = @handlers[handler].call(value) end return value end |
#modifiers ⇒ Object
61 |
# File 'lib/aspera/cli/extended_value.rb', line 61 def modifiers; @handlers.keys; end |
#set_handler(name, method) ⇒ Object
add a new handler
64 65 66 67 68 |
# File 'lib/aspera/cli/extended_value.rb', line 64 def set_handler(name, method) Log.log.debug{"setting handler for #{name}"} raise 'name must be Symbol' unless name.is_a?(Symbol) @handlers[name] = method end |