Module: Mkxms::Mssql
- Defined in:
- lib/mkxms/mssql.rb,
lib/mkxms/mssql/utils.rb,
lib/mkxms/mssql/engine.rb,
lib/mkxms/mssql/version.rb,
lib/mkxms/mssql/exceptions.rb,
lib/mkxms/mssql/index_column.rb,
lib/mkxms/mssql/query_cursor.rb,
lib/mkxms/mssql/role_handler.rb,
lib/mkxms/mssql/view_handler.rb,
lib/mkxms/mssql/index_handler.rb,
lib/mkxms/mssql/table_handler.rb,
lib/mkxms/mssql/schema_handler.rb,
lib/mkxms/mssql/database_handler.rb,
lib/mkxms/mssql/function_handler.rb,
lib/mkxms/mssql/property_handler.rb,
lib/mkxms/mssql/filegroup_handler.rb,
lib/mkxms/mssql/permission_handler.rb,
lib/mkxms/mssql/statistics_handler.rb,
lib/mkxms/mssql/foreign_key_handler.rb,
lib/mkxms/mssql/primary_key_handler.rb,
lib/mkxms/mssql/adoption_script_writer.rb,
lib/mkxms/mssql/indented_string_builder.rb,
lib/mkxms/mssql/sql_string_manipulators.rb,
lib/mkxms/mssql/access_object_definition.rb,
lib/mkxms/mssql/check_constraint_handler.rb,
lib/mkxms/mssql/stored_procedure_handler.rb,
lib/mkxms/mssql/keylike_constraint_helper.rb,
lib/mkxms/mssql/unique_constraint_handler.rb,
lib/mkxms/mssql/default_constraint_handler.rb
Defined Under Namespace
Modules: AccessObjectDefinition, ExtendedProperties, Property, SqlStringManipulators, Utils
Classes: AdoptionScriptWriter, CheckConstraint, CheckConstraintHandler, Column, DatabaseFile, DatabaseHandler, DefaultConstraint, DefaultConstraintHandler, Engine, Filegroup, FilegroupHandler, ForeignKey, ForeignKeyHandler, Function, FunctionHandler, IndentedStringBuilder, Index, IndexHandler, KeylikeConstraint, Permission, PermissionGroup, PermissionHandler, PrimaryKey, PrimaryKeyHandler, ProgramArgumentError, PropertyHandler, QueryCursor, Role, RoleHandler, Schema, SchemaHandler, Statistics, StatisticsHandler, StoredProcedure, StoredProcedureHandler, Table, TableHandler, UniqueConstraint, UniqueConstraintHandler, UnsupportedFeatureError, View, ViewHandler
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Method Summary
collapse
Class Method Details
.generate_from(document, options) ⇒ Object
30
31
32
33
34
35
|
# File 'lib/mkxms/mssql.rb', line 30
def self.generate_from(document, options)
db_handler = DatabaseHandler.new(**(options.to_h))
engine = Engine.new(document, db_handler)
engine.run
db_handler.create_source_files
end
|
.parse_argv(argv = ARGV.dup) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/mkxms/mssql.rb', line 8
def self.parse_argv(argv = ARGV.dup)
options = OpenStruct.new
optparser = OptionParser.new do |flags|
flags.banner = "Usage: #{File.basename($0)} [<option> [<option> ...]] [DB_DESCRIPTION_FILE]"
flags.separator ''
flags.separator 'Options:'
options.schema_dir = Pathname.pwd
flags.on('-o', '--outdir=SCHEMA_DIR', "Output in SCHEMA_DIR") do |schema_dir|
options.schema_dir = Pathname(schema_dir).expand_path
end
end
db_files = optparser.parse(argv)
case db_files.length
when ->(n) {n > 1}
"Too many DB_DESCRIPTION_FILEs given"
end.tap {|msg| raise ProgramArgumentError.new(msg) if msg}
return [db_files[0], options]
end
|
.run_program(argv = ARGV.dup) ⇒ Object
45
46
47
48
49
50
51
|
# File 'lib/mkxms/mssql.rb', line 45
def self.run_program(argv = ARGV.dup)
description_file, options = parse_argv(argv)
document = with_db_description_io(description_file) do |xml_file|
REXML::Document.new(xml_file)
end
generate_from(document, options)
end
|
.with_db_description_io(file_path, &blk) ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/mkxms/mssql.rb', line 37
def self.with_db_description_io(file_path, &blk)
if file_path
File.open(file_path, 'r', &blk)
else
blk.call($stdin)
end
end
|