Class: DatabaseDocumenter::TableData
- Inherits:
-
Object
- Object
- DatabaseDocumenter::TableData
- Defined in:
- lib/database_documenter/table_data.rb
Instance Attribute Summary collapse
-
#database_comment_class ⇒ Object
Returns the value of attribute database_comment_class.
-
#tables_sql ⇒ Object
Returns the value of attribute tables_sql.
Instance Method Summary collapse
- #clean_html_column_data(column_data) ⇒ Object
- #get_column_data(klass, col, sample_record, column_comment) ⇒ Object
- #get_columns_data(klass) ⇒ Object
- #get_meta_data(klass) ⇒ Object
-
#initialize ⇒ TableData
constructor
A new instance of TableData.
- #load_tables_sql_data ⇒ Object
Constructor Details
#initialize ⇒ TableData
Returns a new instance of TableData.
6 7 8 9 |
# File 'lib/database_documenter/table_data.rb', line 6 def initialize self.database_comment_class = DatabaseDocumenter::DatabaseComment.get_comment_class load_tables_sql_data end |
Instance Attribute Details
#database_comment_class ⇒ Object
Returns the value of attribute database_comment_class.
4 5 6 |
# File 'lib/database_documenter/table_data.rb', line 4 def database_comment_class @database_comment_class end |
#tables_sql ⇒ Object
Returns the value of attribute tables_sql.
4 5 6 |
# File 'lib/database_documenter/table_data.rb', line 4 def tables_sql @tables_sql end |
Instance Method Details
#clean_html_column_data(column_data) ⇒ Object
68 69 70 |
# File 'lib/database_documenter/table_data.rb', line 68 def clean_html_column_data(column_data) column_data.is_a?(String) ? column_data.gsub(/(?:\n\r?|\r\n?)/, '<br>').strip : column_data end |
#get_column_data(klass, col, sample_record, column_comment) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/database_documenter/table_data.rb', line 38 def get_column_data(klass, col, sample_record, column_comment) column_data = { name: col.name } column_data[:description] = [] if column_comment.present? column_data[:description_generated] = false column_comment.split("<br/>").each do |s| column_data[:description] << s end else column_data[:description_generated] = true column_data[:description] << DatabaseDocumenter::ColumnDescription.generate(col.name, col.type, klass) end column_data[:type] = col.type hidden_values_columns = DatabaseDocumenter.configuration.hidden_values_columns column_data[:value] = if hidden_values_columns.include?(col.name) 'Data is hidden/removed' elsif sample_record.nil? '' elsif Rails.version.split(".")[0].to_i == 4 clean_html_column_data(sample_record[col.name]) else clean_html_column_data(sample_record.send("#{col.name}_before_type_cast")) end column_data end |
#get_columns_data(klass) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/database_documenter/table_data.rb', line 26 def get_columns_data(klass) sample_record = klass.first columns_comments = database_comment_class.read_columns_comment(klass.table_name) columns = [] klass.columns.each do |col| column_data = get_column_data(klass, col, sample_record, columns_comments[col.name]) columns << column_data end columns end |
#get_meta_data(klass) ⇒ Object
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/database_documenter/table_data.rb', line 15 def (klass) table_comment = database_comment_class.read_table_comment(klass.table_name) data = {} data[:name] = klass.table_name data[:description] = table_comment.presence || "A collection of data related to #{klass.table_name.titleize}" data[:primary_key] = klass.primary_key data[:sql_code] = tables_sql[klass.table_name] data end |
#load_tables_sql_data ⇒ Object
11 12 13 |
# File 'lib/database_documenter/table_data.rb', line 11 def load_tables_sql_data self.tables_sql = DatabaseDocumenter::TablesSql.generate end |