class ActiveMocker::FileWriter
Constants
- OtherErrors
Public Instance Methods
write!()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 12 def write! assure_dir_path_exists! safe_write { |f| process!(f) } end
Private Instance Methods
add_error(error, type)
click to toggle source
# File lib/active_mocker/file_writer.rb, line 95 def add_error(error, type) display_errors.wrap_errors(error, model_name, type: type) end
add_errors!()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 90 def add_errors! add_error(schema.association_errors, :associations) add_error(schema.attribute_errors, :attributes) end
assure_dir_path_exists!()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 59 def assure_dir_path_exists! unless File.exist?(File.dirname(mock_file_path)) FileUtils.mkdir_p(File.dirname(mock_file_path)) end end
collect_errors(create_mock_errors)
click to toggle source
# File lib/active_mocker/file_writer.rb, line 77 def collect_errors(create_mock_errors) add_errors! if create_mock_errors.present? || schema.attribute_errors? display_errors.failed_models << model_name File.delete(mock_file_path) if File.exist?(mock_file_path) display_errors.add(create_mock_errors) OtherErrors.new(false) else OtherErrors.new(true) end end
create_mock(file_out, model)
click to toggle source
# File lib/active_mocker/file_writer.rb, line 65 def create_mock(file_out, model) MockCreator.new(file: File.open(file), file_out: file_out, schema_scrapper: scrapper, klasses_to_be_mocked: model_names, enabled_partials: enabled_partials, mock_append_name: config.mock_append_name, active_record_model: model).create end
enabled_partials()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 99 def enabled_partials if config.disable_modules_and_constants MockCreator::ENABLED_PARTIALS_DEFAULT - [*:modules_constants] else MockCreator::ENABLED_PARTIALS_DEFAULT end end
mock_file_name()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 55 def mock_file_name "#{model_name.underscore}_#{config.mock_append_name.underscore}.rb" end
mock_file_path()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 51 def mock_file_path File.join(Config.mock_dir, mock_file_name) end
process!(file_out)
click to toggle source
# File lib/active_mocker/file_writer.rb, line 20 def process!(file_out) result = create_mock(file_out, model) status = collect_errors(result.errors) ok = result.completed? && status.successful? return unless ok display_errors.success_count += 1 end
rescue_clean_up(e, file_out)
click to toggle source
# File lib/active_mocker/file_writer.rb, line 40 def rescue_clean_up(e, file_out) display_errors.failed_models << model_name file_out.close unless file_out.closed? File.delete(file_out.path) if File.exist?(file_out.path) display_errors.wrap_an_exception(e, model_name) end
safe_write() { |file_out| ... }
click to toggle source
# File lib/active_mocker/file_writer.rb, line 30 def safe_write File.open(mock_file_path, "w") do |file_out| begin yield file_out rescue StandardError => e rescue_clean_up(e, file_out) end end end
schema()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 107 def schema @schema ||= Schema.new(ActiveRecordSchemaScrapper.new(model: model)) end
scrapper()
click to toggle source
# File lib/active_mocker/file_writer.rb, line 47 def scrapper @scrapper ||= ActiveRecordSchemaScrapper.new(model: model) end