Class: Daifuku::Column
- Inherits:
-
Object
- Object
- Daifuku::Column
- Defined in:
- lib/daifuku/models.rb
Instance Attribute Summary collapse
- #descriptions ⇒ String readonly
-
#name ⇒ Object
readonly
String.
-
#type ⇒ Object
readonly
Type.
Class Method Summary collapse
Instance Method Summary collapse
- #dump ⇒ Object
-
#initialize(name, type, descriptions, is_obsolete = false) ⇒ Column
constructor
A new instance of Column.
- #obsolete? ⇒ Boolean
- #strdef ⇒ Object
Constructor Details
#initialize(name, type, descriptions, is_obsolete = false) ⇒ Column
Returns a new instance of Column.
70 71 72 73 74 75 |
# File 'lib/daifuku/models.rb', line 70 def initialize(name, type, descriptions, is_obsolete = false) @name = name @type = type @descriptions = descriptions @is_obsolete = is_obsolete end |
Instance Attribute Details
#descriptions ⇒ String (readonly)
64 65 66 |
# File 'lib/daifuku/models.rb', line 64 def descriptions @descriptions end |
#name ⇒ Object (readonly)
Returns String.
60 61 62 |
# File 'lib/daifuku/models.rb', line 60 def name @name end |
#type ⇒ Object (readonly)
Returns Type.
62 63 64 |
# File 'lib/daifuku/models.rb', line 62 def type @type end |
Class Method Details
.parse(descriptor, descriptions) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/daifuku/models.rb', line 77 def self.parse(descriptor, descriptions) # column_name: !bigint # column_name: !bigint? # column_name: !string 256 # column_name: !string? 256 # column_name: CustomType # [obsolete] column_type: !bigint if descriptor =~ /(\[obsolete\])?\s*(\w+):\s*(!?\w+\??(?:\s(\d+))?)/ obsolete = $1 != nil name = $2 type = Type.parse($3) Column.new(name, type, descriptions, obsolete) else raise "Could not parse column '#{descriptor}'" end end |
Instance Method Details
#dump ⇒ Object
104 105 106 |
# File 'lib/daifuku/models.rb', line 104 def dump {'name' => name, 'type' => type.dump, 'descriptions' => descriptions} end |
#obsolete? ⇒ Boolean
66 67 68 |
# File 'lib/daifuku/models.rb', line 66 def obsolete? @is_obsolete end |
#strdef ⇒ Object
94 95 96 97 98 99 100 101 102 |
# File 'lib/daifuku/models.rb', line 94 def strdef if type.name == 'string' && type.str_length "#{name}: !#{type.name} #{type.str_length}" elsif !type.custom? "#{name}: !#{type.name}" else "#{name}: #{type.name}" end end |