Module: Spreadsheeting
- Defined in:
- lib/webget_ruby_spreadsheeting.rb
Instance Method Summary collapse
-
#export_date(date) ⇒ String
Convert a date to a string format "YYYY/MM/DD".
-
#export_date_or_note(date, note = nil) ⇒ String
Corresponds to import_date_or_note.
-
#export_flag(flag) ⇒ String
Convert true/false to "+"/"-".
-
#export_flag_or_note(flag, note = nil) ⇒ String
Corresponds to import_flag_or_note.
-
#import_date(input) ⇒ Date
Parse a string to a date, with some cleanup.
-
#import_date_or_note(input) ⇒ Array<Date, String>
Parse an imput that may be a date (e.g. "2007/12/31") or a note (e.g. freeform text) into an array.
-
#import_flag(input) ⇒ Boolean
Parse various input words (e.g. "Yes", "No", "On", "Off") to true or false.
-
#import_flag_or_note(input) ⇒ Array<Boolean, String>
Parse an imput that may be a flag (e.g. true/false) or a note (e.g. freeform text) into an array.
Instance Method Details
#export_date(date) ⇒ String
Convert a date to a string format "YYYY/MM/DD"
52 53 54 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 52 def export_date(date) date.strftime("%Y/%m/%d") end |
#export_date_or_note(date, note = nil) ⇒ String
Corresponds to import_date_or_note
- date is non-null => "2007/12/31"
- date is null => note
71 72 73 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 71 def export_date_or_note(date,note=nil) return date==nil ? note : export_date(date) end |
#export_flag(flag) ⇒ String
Convert true/false to "+"/"-"
21 22 23 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 21 def export_flag(flag) flag ? '+' : '-' end |
#export_flag_or_note(flag, note = nil) ⇒ String
Corresponds to import_flag_or_note
- flag==true => "+"
- flag==false => "-"
- flag==nil => note
42 43 44 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 42 def export_flag_or_note(flag,note=nil) return flag==nil ? note : export_flag(flag) end |
#import_date(input) ⇒ Date
Parse a string to a date, with some cleanup.
83 84 85 86 87 88 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 83 def import_date(input) return nil if input==nil input_s = input.to_s.strip return nil if input=='' return Date.parse(input_s) end |
#import_date_or_note(input) ⇒ Array<Date, String>
Parse an imput that may be a date (e.g. "2007/12/31") or a note (e.g. freeform text) into an array.
There's a common import use case where a column can be of two types:
- a date, in a variety of format like "Jan 1, 2008", "1/1/2008", etc.
- a note, in plain text
107 108 109 110 111 112 113 114 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 107 def import_date_or_note(input) begin d=import_date(input) rescue d=nil end return d ? [d,''] : [nil,input] end |
#import_flag(input) ⇒ Boolean
Parse various input words (e.g. "Yes", "No", "On", "Off") to true or false.
There's a typical import use case where a column is a boolean, in a variety of formats like "X" for on, "Y" for yes, "T" for true, etc.
We use these rules:
- x y yes t true on + => true
- blank n no f false off - => false
- anything else => nil
143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 143 def import_flag(input) return input if (input==true or input==false or input==nil) case input.to_s.strip.downcase when 'x','y','yes','t','true','on','+' return true when '','n','no','f','false','off','-' return false else return nil end end |
#import_flag_or_note(input) ⇒ Array<Boolean, String>
Parse an imput that may be a flag (e.g. true/false) or a note (e.g. freeform text) into an array.
There's a typical import use case where a column can contain two different data types:
- a boolean, in a variety of formats (see import_flag)
- a note, in plain text
We need to separate these two.
We use these rules:
- x y yes t true on + => [true, '']
- blank n no f false off - => [false, '']
- any other string => [nil, note]
- nil => [nil, nil]
187 188 189 190 191 |
# File 'lib/webget_ruby_spreadsheeting.rb', line 187 def import_flag_or_note(input) return [nil, nil] if (input==nil) flag = import_flag(input) return [flag, flag==nil ? input : ''] end |