Class: DBF::Column
- Inherits:
-
Object
- Object
- DBF::Column
- Defined in:
- lib/dbf/column.rb
Defined Under Namespace
Classes: LengthError, NameError
Constant Summary collapse
- TYPE_CAST_CLASS =
rubocop:disable Style/MutableConstant
{ N: ColumnType::Number, I: ColumnType::SignedLong, F: ColumnType::Float, Y: ColumnType::Currency, D: ColumnType::Date, T: ColumnType::DateTime, L: ColumnType::Boolean, M: ColumnType::Memo, B: ColumnType::Double, G: ColumnType::General, :+ => ColumnType::AutoIncrement }
Instance Attribute Summary collapse
-
#decimal ⇒ Object
readonly
Returns the value of attribute decimal.
-
#length ⇒ Object
readonly
Returns the value of attribute length.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
-
#decode(raw) {|raw| ... } ⇒ Object
Decodes a raw column value, handling memo, blank, and type cast cases.
- #encoding ⇒ Object
-
#initialize(table, name, type, length, decimal) ⇒ Column
constructor
Initialize a new DBF::Column.
-
#to_hash ⇒ Hash
Returns a Hash with :name, :type, :length, and :decimal keys.
- #type_cast(value) ⇒ Object
-
#underscored_name ⇒ String
Underscored name.
Constructor Details
#initialize(table, name, type, length, decimal) ⇒ Column
Initialize a new DBF::Column
38 39 40 41 42 43 44 45 46 47 |
# File 'lib/dbf/column.rb', line 38 def initialize(table, name, type, length, decimal) @table = table @name = clean(name) @type = type @length = length @decimal = decimal validate_length validate_name end |
Instance Attribute Details
#decimal ⇒ Object (readonly)
Returns the value of attribute decimal.
11 12 13 |
# File 'lib/dbf/column.rb', line 11 def decimal @decimal end |
#length ⇒ Object (readonly)
Returns the value of attribute length.
11 12 13 |
# File 'lib/dbf/column.rb', line 11 def length @length end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
11 12 13 |
# File 'lib/dbf/column.rb', line 11 def name @name end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
11 12 13 |
# File 'lib/dbf/column.rb', line 11 def type @type end |
Instance Method Details
#decode(raw) {|raw| ... } ⇒ Object
Decodes a raw column value, handling memo, blank, and type cast cases
61 62 63 |
# File 'lib/dbf/column.rb', line 61 def decode(raw, &memo_handler) type_cast_class.decode(raw, &memo_handler) end |
#encoding ⇒ Object
49 |
# File 'lib/dbf/column.rb', line 49 def encoding = @table.encoding |
#to_hash ⇒ Hash
Returns a Hash with :name, :type, :length, and :decimal keys
68 69 70 |
# File 'lib/dbf/column.rb', line 68 def to_hash {name:, type:, length:, decimal:} end |
#type_cast(value) ⇒ Object
52 53 54 |
# File 'lib/dbf/column.rb', line 52 def type_cast(value) type_cast_class.type_cast(value) end |
#underscored_name ⇒ String
Underscored name
This is the column name converted to underscore format. For example, MyColumn will be returned as my_column.
78 79 80 |
# File 'lib/dbf/column.rb', line 78 def underscored_name @underscored_name ||= name.gsub(/([a-z\d])([A-Z])/, '\1_\2').tr('-', '_').downcase end |