Class: Spanner::Translator::Rules::Translation::TimeColumnsToTime

Inherits:
BaseRule
  • Object
show all
Defined in:
lib/spanner/translator/rules/translation/time_columns_to_time.rb

Overview

convert t.datetime and t.timestamp to t.time, keeping null option if given

Constant Summary

Constants inherited from BaseRule

BaseRule::RAILS_COLUMN_TYPES

Instance Attribute Summary

Attributes inherited from BaseRule

#translation_options

Instance Method Summary collapse

Methods inherited from BaseRule

#any_index?, #capture_column_nullity, #capture_primary_key_argument, #capture_table_name, #conditionally_propagate_argument, #create_range, #initialize, #unless_seen

Constructor Details

This class inherits a constructor from Spanner::Translator::Rules::BaseRule

Instance Method Details

#on_send(node) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/spanner/translator/rules/translation/time_columns_to_time.rb', line 9

def on_send(node)
  return unless node.t_datetime? || node.t_timestamp?

  new_arguments = [node.arguments[0].source]
  conditionally_propagate_argument new_arguments, node, "null"
  conditionally_propagate_argument new_arguments, node, "default"

  @rewriter.replace(node.loc.expression, "t.time #{new_arguments.join(", ")} # generated")
end