class TableStructure::Schema::Definition::Columns::Attributes
Constants
- DEFAULT_SIZE
Public Class Methods
new( name: nil, key: nil, value: nil, size: nil, omitted: false, validator: )
click to toggle source
# File lib/table_structure/schema/definition/columns/attributes.rb, line 10 def initialize( name: nil, key: nil, value: nil, size: nil, omitted: false, validator: ) @name = name @key = key @value = value @size = size @omitted = omitted @validator = validator end
Public Instance Methods
compile(context:)
click to toggle source
# File lib/table_structure/schema/definition/columns/attributes.rb, line 30 def compile(context:) size = Utils.evaluate_callable(@size, context) @validator.validate(name: @name, key: @key, size: size) size ||= [calculate_size(@name), calculate_size(@key)].max ::TableStructure::Schema::Columns::Attributes.new( name: @name, key: @key, value: @value, size: size ) end
omitted?(context:)
click to toggle source
# File lib/table_structure/schema/definition/columns/attributes.rb, line 26 def omitted?(context:) Utils.evaluate_callable(@omitted, context) end
Private Instance Methods
calculate_size(val)
click to toggle source
# File lib/table_structure/schema/definition/columns/attributes.rb, line 44 def calculate_size(val) if val.is_a?(Array) return val.empty? ? DEFAULT_SIZE : val.size end DEFAULT_SIZE end