Class: Embulk::Input::GoogleSpreadsheets::CustomColumns

Inherits:
Object
  • Object
show all
Defined in:
lib/embulk/input/google_spreadsheets.rb

Class Method Summary collapse

Class Method Details

.complete_default(columns) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
# File 'lib/embulk/input/google_spreadsheets.rb', line 38

def self.complete_default(columns)
  columns.map do |c|
    c = c.dup
    if c['type'] == 'timestamp'
      c['format'] = c['format'] || default_format
      c['timezone'] = c['timezone'] || default_timezone
    end
    c['typecast']  = c['typecast'] || default_typecast
    c
  end
end

.default_formatObject



50
51
52
53
54
# File 'lib/embulk/input/google_spreadsheets.rb', line 50

def self.default_format
  # ref. https://github.com/embulk/embulk/blob/936c5d5a20af3086f7d1e5779a89035105bb975b/embulk-core/src/main/java/org/embulk/spi/type/TimestampType.java#L10
  # `Time.strptime` does not support `%6N`, so use `%N` instead.
  @default_format ||= '%Y-%m-%d %H:%M:%S.%N %z'
end

.default_format=(format) ⇒ Object



56
57
58
# File 'lib/embulk/input/google_spreadsheets.rb', line 56

def self.default_format=(format)
  @default_format = format
end

.default_timezoneObject



60
61
62
# File 'lib/embulk/input/google_spreadsheets.rb', line 60

def self.default_timezone
  @default_timezone ||= 'UTC'
end

.default_timezone=(timezone) ⇒ Object



64
65
66
# File 'lib/embulk/input/google_spreadsheets.rb', line 64

def self.default_timezone=(timezone)
  @default_timezone = timezone
end

.default_typecastObject



68
69
70
# File 'lib/embulk/input/google_spreadsheets.rb', line 68

def self.default_typecast
  @default_typecast ||= 'strict'
end

.default_typecast=(typecast) ⇒ Object



72
73
74
# File 'lib/embulk/input/google_spreadsheets.rb', line 72

def self.default_typecast=(typecast)
  @default_typecast = typecast
end

.load(v) ⇒ Object

NOTE: if raised, rescue and re-raise as Embulk::ConfigError



29
30
31
32
33
34
35
36
# File 'lib/embulk/input/google_spreadsheets.rb', line 29

def self.load(v)
  raise "`embulk-input-google_spreadsheets`: Invalid value '#{v}' for :array_of_hash" unless v.is_a?(Array)
  v.each do |c|
    raise "`embulk-input-google_spreadsheets`: Invalid value '#{v}' for :array_of_hash" unless c.is_a?(Hash)
  end

  complete_default(v.dup)
end