Class: MysqlDumpToJson::MySQL::Table

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql_dump_to_json/mysql/table.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, fields, keys) ⇒ Table

Returns a new instance of Table.



9
10
11
12
13
14
# File 'lib/mysql_dump_to_json/mysql/table.rb', line 9

def initialize(name, fields, keys)
  @name = name
  @fields = fields
  @keys = keys
  @rows = []
end

Instance Attribute Details

#fieldsObject (readonly)

Returns the value of attribute fields.



7
8
9
# File 'lib/mysql_dump_to_json/mysql/table.rb', line 7

def fields
  @fields
end

#keysObject (readonly)

Returns the value of attribute keys.



7
8
9
# File 'lib/mysql_dump_to_json/mysql/table.rb', line 7

def keys
  @keys
end

#nameObject (readonly)

Returns the value of attribute name.



7
8
9
# File 'lib/mysql_dump_to_json/mysql/table.rb', line 7

def name
  @name
end

#rowsObject (readonly)

Returns the value of attribute rows.



7
8
9
# File 'lib/mysql_dump_to_json/mysql/table.rb', line 7

def rows
  @rows
end

Instance Method Details

#add_row(fields, values, prevent_duplicates = false) ⇒ Object



16
17
18
19
20
21
# File 'lib/mysql_dump_to_json/mysql/table.rb', line 16

def add_row(fields, values, prevent_duplicates = false)
  row = fields.zip(values).to_h
  return if prevent_duplicates && @rows.include?(row)

  @rows << row
end

#descriptionObject



23
24
25
26
27
28
29
# File 'lib/mysql_dump_to_json/mysql/table.rb', line 23

def description
  {
    name: name,
    num_rows: rows.length,
    first_row: rows.first
  }
end