Class: Dbsketch::Rendering::Meta::DatabaseRenderer
- Inherits:
-
Object
- Object
- Dbsketch::Rendering::Meta::DatabaseRenderer
- Defined in:
- lib/dbsketch/rendering/meta/database_renderer.rb
Instance Method Summary collapse
- #alter(database_diff) ⇒ Object
- #create(database) ⇒ Object
-
#initialize(index_renderer: nil, operation_renderer: nil, table_renderer: nil, trigger_renderer: nil, view_renderer: nil, options: {}, keywords: {}) ⇒ DatabaseRenderer
constructor
A new instance of DatabaseRenderer.
Constructor Details
#initialize(index_renderer: nil, operation_renderer: nil, table_renderer: nil, trigger_renderer: nil, view_renderer: nil, options: {}, keywords: {}) ⇒ DatabaseRenderer
Returns a new instance of DatabaseRenderer.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/dbsketch/rendering/meta/database_renderer.rb', line 19 def initialize index_renderer: nil, operation_renderer: nil, table_renderer: nil, trigger_renderer: nil, view_renderer: nil, options: {}, keywords: {} ### Preconditions raise ArgumentError, "index_renderer is not a Dbsketch::Rendering::Meta::IndexRenderer" unless nil == index_renderer or index_renderer.is_a? IndexRenderer raise ArgumentError, "operation_renderer is not a Dbsketch::Rendering::Meta::OperationRenderer" unless nil == operation_renderer or operation_renderer.is_a? OperationRenderer raise ArgumentError, "table_renderer is not a Dbsketch::Rendering::Meta::TableRenderer" unless nil == table_renderer or table_renderer.is_a? TableRenderer raise ArgumentError, "trigger_renderer is not a Dbsketch::Rendering::Meta::TriggerRenderer" unless nil == trigger_renderer or trigger_renderer.is_a? TriggerRenderer raise ArgumentError, "view_renderer is not a Dbsketch::Rendering::Meta::ViewRenderer" unless nil == view_renderer or view_renderer.is_a? ViewRenderer raise ArgumentError, "options is not a Hash" unless .is_a? Hash raise ArgumentError, "keywords is not a Hash" unless keywords.is_a? Hash ### @options = { :order_by_dependencies => true, :pretty => false }.merge @keywords = keywords @index_renderer = (nil == index_renderer ? IndexRenderer.new : index_renderer) @operation_renderer = (nil == operation_renderer ? OperationRenderer.new : operation_renderer) @table_renderer = (nil == table_renderer ? TableRenderer.new(:options => @options, :keywords => @keywords) : table_renderer) @trigger_renderer = (nil == trigger_renderer ? TriggerRenderer.new : trigger_renderer) @view_renderer = (nil == view_renderer ? ViewRenderer.new : view_renderer) end |
Instance Method Details
#alter(database_diff) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/dbsketch/rendering/meta/database_renderer.rb', line 50 def alter database_diff ### Preconditions raise ArgumentError, "database_diff is not a Dbsketch::Comparison::DatabaseDiff" unless database_diff.is_a? Dbsketch::Comparison::DatabaseDiff ### separator = "\n" diffs = database_diff.indexes + database_diff.operations + database_diff.tables + database_diff.triggers + database_diff.views deletions = diffs.select { |d| d.deletion? }.map { |i| drop_item i.old_value } changes = diffs.select { |d| d.change? }.map { |i| alter_item(i) } creations = diffs.select { |d| d.addition? }.map { |i| create_item i.new_value } (deletions + changes + creations).flatten.compact.join(separator) + separator end |
#create(database) ⇒ Object
41 42 43 44 45 46 47 48 |
# File 'lib/dbsketch/rendering/meta/database_renderer.rb', line 41 def create database ### Preconditions raise ArgumentError, "database is not a Dbsketch::Model::Database" unless database.is_a? Dbsketch::Model::Database ### separator = @options[:pretty] ? "\n\n" : "\n" database.order_items! if @options[:order_by_dependencies] database.items.map { |i| create_item i }.flatten.compact.join(separator) + separator end |