class MySQLExpectations::KeyField
An index field has a field name, length, and order (aka order)
Constants
- ORDER_ASC
- ORDER_DESC
- VALID_ORDERINGS
Attributes
length[R]
name[R]
order[R]
Public Class Methods
new(name, order = nil, length = nil)
click to toggle source
# File lib/mysql_expectations/key_field.rb, line 16 def initialize(name, order = nil, length = nil) @name = name @order = validate_order(order) @length = validate_length(length) end
Public Instance Methods
==(other)
click to toggle source
# File lib/mysql_expectations/key_field.rb, line 22 def ==(other) other.name == @name && other.length == @length && other.order == @order end
to_s()
click to toggle source
# File lib/mysql_expectations/key_field.rb, line 26 def to_s "{ '#{name}', #{order_to_s}, #{length_to_s} }" end
Private Instance Methods
length_to_s()
click to toggle source
# File lib/mysql_expectations/key_field.rb, line 38 def length_to_s length.to_s unless length.nil? 'nil' end
order_to_s()
click to toggle source
# File lib/mysql_expectations/key_field.rb, line 32 def order_to_s return 'ASC' if order == ORDER_ASC return 'DESC' if order == ORDER_DESC 'nil' end
validate_length(length)
click to toggle source
# File lib/mysql_expectations/key_field.rb, line 43 def validate_length(length) return nil if length.nil? begin length = Integer(length) rescue ArgumentError raise ArgumentError, 'length must be an integer or convertable to an integer' end length end
validate_order(order)
click to toggle source
# File lib/mysql_expectations/key_field.rb, line 53 def validate_order(order) return nil if order.nil? return order if VALID_ORDERINGS.include? order fail ArgumentError, 'Order must be either KeyField::ORDER_ASC or KeyField::ORDER_DESC' end