fluent-migrator-command-runner 0.0.5 → 0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/.gitignore +2 -0
- data/Gemfile +7 -0
- data/Gemfile.lock +29 -0
- data/README.md +49 -0
- data/Rakefile +8 -0
- data/fluent-migrator-command-runner.gemspec +18 -0
- data/lib/fluent-migrator-command-runner.rb +1 -1
- data/lib/fluent-migrator-command-runner/oracle_migration_command.rb +22 -13
- data/lib/fluent-migrator-command-runner/version.rb +3 -0
- data/spec/fluent-migrator-command-runner/command_builder_spec.rb +31 -0
- data/spec/fluent-migrator-command-runner/oracle_migration_command_spec.rb +116 -0
- data/spec/fluent-migrator-command-runner/rake_task_spec.rb +117 -0
- data/spec/fluent-migrator-command-runner/runner_spec.rb +32 -0
- data/spec/spec_helper.rb +7 -0
- metadata +19 -11
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OGRkZWNiZDk2YjAwYjhjZWJkMzBmODE4NTMxZGVjOGI1MzUyNmExMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODhjODg1NzhiMzc4MDg5MDAyYTVhNmZhNWQyYTAwNWJlYWFlNTI5OA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MzU0MmFiYzdmYjMxYmQxYThlOWQ3ZDFkNjIzMzlmOWY1YTU0YzNiYWYwYTY3
|
10
|
+
YWM0NzMyYzcyNmRmZmIyYTIwOWM0MzZjOWEyZDRmNzNkMGQwZTdiYzI3ZDg1
|
11
|
+
Zjk3MDk5NDJmNzc1MGExNGQ2NTVjNDY0NjJjZDJmMTZlZWIyZDE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZmM3OTZlNGIwMDE3ZmQwMTg1NTFkM2Y5N2ZkOGVhZjQyODhlMWZhNTAyMzIw
|
14
|
+
NjYwOGIxZTNjNGQ0NzdiNGJkNDc0ZTBjZmRlM2Y2ZTIwZDQyYmZkZDdiN2E1
|
15
|
+
MmYzMDM5OTUwMmVhM2FkZTRhNDdhMDU5Y2NlNWM4YTNmZTFkNDQ=
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
diff-lcs (1.2.5)
|
5
|
+
fig_newton (0.10)
|
6
|
+
yml_reader (>= 0.3)
|
7
|
+
rake (10.3.2)
|
8
|
+
rspec (3.1.0)
|
9
|
+
rspec-core (~> 3.1.0)
|
10
|
+
rspec-expectations (~> 3.1.0)
|
11
|
+
rspec-mocks (~> 3.1.0)
|
12
|
+
rspec-core (3.1.4)
|
13
|
+
rspec-support (~> 3.1.0)
|
14
|
+
rspec-expectations (3.1.1)
|
15
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
16
|
+
rspec-support (~> 3.1.0)
|
17
|
+
rspec-mocks (3.1.1)
|
18
|
+
rspec-support (~> 3.1.0)
|
19
|
+
rspec-support (3.1.0)
|
20
|
+
yml_reader (0.4)
|
21
|
+
|
22
|
+
PLATFORMS
|
23
|
+
x86-mingw32
|
24
|
+
|
25
|
+
DEPENDENCIES
|
26
|
+
fig_newton
|
27
|
+
rake
|
28
|
+
rspec
|
29
|
+
rspec-mocks
|
data/README.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
#Fluent-Migrator-Command-Runner
|
2
|
+
|
3
|
+
Build and run fluent migrator commands from ruby with ease.
|
4
|
+
|
5
|
+
#Installation
|
6
|
+
|
7
|
+
gem install fluent-migrator-command-runner
|
8
|
+
|
9
|
+
#Setup
|
10
|
+
|
11
|
+
FigNewton file (ex. local.yml) should be loaded before use.
|
12
|
+
[FigNewton will automatically load file if ENV['FIG_NEWTOW_FILE'] is set]
|
13
|
+
|
14
|
+
The FigNewton file should have atleast the following nodes.
|
15
|
+
|
16
|
+
````
|
17
|
+
path_to_migration_assembly: ../Path/To/Migrations.dll
|
18
|
+
path_to_migrator_exe: ../Path/to/migrate.exe
|
19
|
+
|
20
|
+
database:
|
21
|
+
adapter: oracle_enhanced
|
22
|
+
database: "TNS.world"
|
23
|
+
username: "SCHEMA_USER_NAME"
|
24
|
+
password: "p4ssw0rd"
|
25
|
+
````
|
26
|
+
|
27
|
+
#Using exposed rake task
|
28
|
+
|
29
|
+
Migrate with no tags or profiles
|
30
|
+
|
31
|
+
````ruby
|
32
|
+
FluentMigratorCommandRunner::Rake::Task.new(:migrate)
|
33
|
+
````
|
34
|
+
|
35
|
+
Migrate with profile, tag, and select a fig newton file
|
36
|
+
|
37
|
+
````ruby
|
38
|
+
FluentMigratorCommandRunner::Rake::Task.new(:migrate) do |t|
|
39
|
+
t.fig_newton_file = 'local.yml'
|
40
|
+
t.profile = 'TestData'
|
41
|
+
t.tag = 'Tag'
|
42
|
+
end
|
43
|
+
````
|
44
|
+
|
45
|
+
#Future Enhancements
|
46
|
+
- be able to run with multiple tags
|
47
|
+
|
48
|
+
#Notes
|
49
|
+
Has only been tested with FluentMigrator.Tools.1.1.2.1
|
data/Rakefile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path('../lib/fluent-migrator-command-runner/version', __FILE__)
|
2
|
+
|
3
|
+
Gem::Specification.new do |gem|
|
4
|
+
gem.name = 'fluent-migrator-command-runner'
|
5
|
+
gem.date = '2014-11-11'
|
6
|
+
gem.description = "Build and Execute Fluent Migrator Commands"
|
7
|
+
gem.authors = ["Mosaic"]
|
8
|
+
gem.email = 'mosaic.development@sherwin.com'
|
9
|
+
gem.homepage = 'Internal @ SherwinWilliams'
|
10
|
+
gem.summary = "Rake Tasks For Fluent Migrator"
|
11
|
+
gem.files = `git ls-files`.split("\n")
|
12
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
13
|
+
gem.require_paths = ['lib']
|
14
|
+
gem.version = FluentMigratorCommandRunner::VERSION
|
15
|
+
gem.homepage = ''
|
16
|
+
gem.license = 'MIT'
|
17
|
+
gem.add_dependency 'fig_newton'
|
18
|
+
end
|
@@ -1,8 +1,8 @@
|
|
1
|
+
require 'fluent-migrator-command-runner/version'
|
1
2
|
require 'fluent-migrator-command-runner/runner'
|
2
3
|
require 'fluent-migrator-command-runner/command_builder'
|
3
4
|
require 'fluent-migrator-command-runner/oracle_migration_command'
|
4
5
|
require 'fluent-migrator-command-runner/task'
|
5
|
-
|
6
6
|
require 'fig_newton'
|
7
7
|
|
8
8
|
module FluentMigratorCommandRunner
|
@@ -1,15 +1,23 @@
|
|
1
1
|
module FluentMigratorCommandRunner
|
2
2
|
class OracleMigrationCommand
|
3
|
-
|
4
|
-
:path_to_migration_assembly,
|
3
|
+
attr_reader :path_to_migrator,
|
4
|
+
:path_to_migration_assembly,
|
5
5
|
:connection_information,
|
6
6
|
:profile,
|
7
|
-
:tag
|
7
|
+
:tag,
|
8
|
+
:provider
|
9
|
+
|
10
|
+
PARAMETER_PREFIX = '--'
|
11
|
+
SPACE_CHAR = "\s"
|
12
|
+
|
13
|
+
MIGRATOR_DELIMITER = "#{SPACE_CHAR + PARAMETER_PREFIX}"
|
14
|
+
CONNECTION_STRING_DELIMITER = ';'
|
8
15
|
|
9
16
|
def initialize(options = {})
|
10
17
|
@profile = options[:profile] unless options[:profile].nil?
|
11
18
|
@tag = options[:tag] unless options[:tag].nil?
|
12
|
-
|
19
|
+
@provider = FigNewton.migration_provider('oracle')
|
20
|
+
@path_to_migrator = FigNewton.path_to_migrator_exe
|
13
21
|
@path_to_migration_assembly = FigNewton.path_to_migration_assembly
|
14
22
|
@connection_information = FigNewton.database.to_hash
|
15
23
|
@connection_information['password'] = options[:db_password] unless options[:db_password].nil?
|
@@ -20,22 +28,23 @@ module FluentMigratorCommandRunner
|
|
20
28
|
|
21
29
|
command_sections = []
|
22
30
|
command_sections.push(@path_to_migrator)
|
23
|
-
|
24
|
-
|
25
|
-
command_sections.push(
|
26
|
-
|
27
|
-
|
28
|
-
command_sections.
|
31
|
+
command_sections.push("provider #{@provider}")
|
32
|
+
command_sections.push("conn \"#{connection_string}\"")
|
33
|
+
command_sections.push('task migrate')
|
34
|
+
command_sections.push("assembly \"#{@path_to_migration_assembly}\"")
|
35
|
+
command_sections.push("tag #{@tag}") if @tag
|
36
|
+
command_sections.push("profile=#{@profile}") if @profile
|
37
|
+
command_sections.join(MIGRATOR_DELIMITER)
|
29
38
|
end
|
30
39
|
|
31
40
|
private
|
32
41
|
|
33
42
|
def build_connection_string(connection_information)
|
34
43
|
connection = []
|
35
|
-
connection.push("DATA SOURCE=#{connection_information['database']}
|
36
|
-
connection.push("user id=#{connection_information['username']}
|
44
|
+
connection.push("DATA SOURCE=#{connection_information['database']}")
|
45
|
+
connection.push("user id=#{connection_information['username']}")
|
37
46
|
connection.push("password=#{connection_information['password']}")
|
38
|
-
|
47
|
+
connection.join(CONNECTION_STRING_DELIMITER)
|
39
48
|
end
|
40
49
|
|
41
50
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe FluentMigratorCommandRunner::CommandBuilder do
|
5
|
+
|
6
|
+
let(:builder){FluentMigratorCommandRunner::CommandBuilder}
|
7
|
+
let(:oracle_command){FluentMigratorCommandRunner::OracleMigrationCommand}
|
8
|
+
let(:command_stub){double(FluentMigratorCommandRunner::OracleMigrationCommand)}
|
9
|
+
|
10
|
+
before { allow(oracle_command).to receive(:new).and_return(command_stub)}
|
11
|
+
before { allow(command_stub).to receive(:build)}
|
12
|
+
|
13
|
+
it 'should create new oracle migration command with options' do
|
14
|
+
expected_options = {}
|
15
|
+
builder.build(expected_options)
|
16
|
+
expect(oracle_command).to have_received(:new).with(expected_options)
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should build oracle migration command ' do
|
20
|
+
builder.build
|
21
|
+
expect(command_stub).to have_received(:build)
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'should return built oracle migration command ' do
|
25
|
+
expected_command = "command string"
|
26
|
+
allow(command_stub).to receive(:build).and_return(expected_command)
|
27
|
+
actual = builder.build
|
28
|
+
expect(actual).to be(expected_command)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,116 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'socket'
|
3
|
+
|
4
|
+
describe FluentMigratorCommandRunner::OracleMigrationCommand do
|
5
|
+
|
6
|
+
before do
|
7
|
+
@connection_information = {
|
8
|
+
'database' => '',
|
9
|
+
'username' => '',
|
10
|
+
'password' => ''
|
11
|
+
}
|
12
|
+
allow(FigNewton).to receive(:database).and_return(@connection_information)
|
13
|
+
allow(FigNewton).to receive(:path_to_migration_assembly)
|
14
|
+
allow(FigNewton).to receive(:path_to_migrator_exe)
|
15
|
+
allow(FigNewton).to receive(:migration_provider)
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'initialize' do
|
19
|
+
|
20
|
+
it "should include profile when provided" do
|
21
|
+
expected_profile = "--profile=TestData"
|
22
|
+
command = FluentMigratorCommandRunner::OracleMigrationCommand.new({:profile => 'TestData'}).build
|
23
|
+
expect(command).to include(expected_profile)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should not include profile when not provided" do
|
27
|
+
command = FluentMigratorCommandRunner::OracleMigrationCommand.new.build
|
28
|
+
expect(command).to_not include('--profile')
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should include tag when provided" do
|
32
|
+
expected_tag = "--tag Data"
|
33
|
+
command = FluentMigratorCommandRunner::OracleMigrationCommand.new({:tag => 'Data'}).build
|
34
|
+
expect(command).to include(expected_tag)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should not include tag when not provided" do
|
38
|
+
command = FluentMigratorCommandRunner::OracleMigrationCommand.new.build
|
39
|
+
expect(command).to_not include('--tag')
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'should override password' do
|
43
|
+
expected_password = 'my_new_password'
|
44
|
+
command = FluentMigratorCommandRunner::OracleMigrationCommand.new({:db_password => expected_password}).build
|
45
|
+
expect(command).to include(expected_password)
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should allow overriding of default provider" do
|
49
|
+
expected_provider = 'mynewprovider'
|
50
|
+
allow(FigNewton).to receive(:migration_provider).and_return(expected_provider)
|
51
|
+
command = FluentMigratorCommandRunner::OracleMigrationCommand.new.build
|
52
|
+
expect(command).to include("--provider #{expected_provider}")
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "build" do
|
57
|
+
let(:oracle_command) { FluentMigratorCommandRunner::OracleMigrationCommand.new }
|
58
|
+
|
59
|
+
it "should include path to migrator" do
|
60
|
+
expected = "/My/Path/To/Migrator"
|
61
|
+
allow(FigNewton).to receive(:path_to_migrator_exe).and_return(expected)
|
62
|
+
|
63
|
+
command = oracle_command.build
|
64
|
+
expect(command).to include(expected)
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should include default provider" do
|
68
|
+
oracle_command.build
|
69
|
+
expect(FigNewton).to have_received(:migration_provider).with('oracle')
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should include path to assembly" do
|
73
|
+
expected = "--assembly \"/My/Path/To/Assembly\""
|
74
|
+
allow(FigNewton).to receive(:path_to_migration_assembly).and_return('/My/Path/To/Assembly')
|
75
|
+
|
76
|
+
command = oracle_command.build
|
77
|
+
expect(command).to include(expected)
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should include task" do
|
81
|
+
expected_task = "--task migrate"
|
82
|
+
command = oracle_command.build
|
83
|
+
expect(command).to include(expected_task)
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should include connection string" do
|
87
|
+
command = oracle_command.build()
|
88
|
+
expect(command).to include('--conn ')
|
89
|
+
end
|
90
|
+
|
91
|
+
describe "database connection string" do
|
92
|
+
|
93
|
+
it "should include DATA SOURCE in connection string" do
|
94
|
+
expected = 'MYDATA.world'
|
95
|
+
@connection_information['database'] = expected
|
96
|
+
command = oracle_command.build
|
97
|
+
expect(command).to include "DATA SOURCE=#{expected}"
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should include user name in connection string" do
|
101
|
+
expected = 'user'
|
102
|
+
@connection_information['username'] = expected
|
103
|
+
command = oracle_command.build
|
104
|
+
expect(command).to include "user id=#{expected}"
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should include password in connection string" do
|
108
|
+
expected = 'MyPassword'
|
109
|
+
@connection_information['password'] = expected
|
110
|
+
command = oracle_command.build
|
111
|
+
expect(command).to include "password=#{expected}"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FluentMigratorCommandRunner::Rake::Task do
|
4
|
+
|
5
|
+
after{ Rake.application.clear}
|
6
|
+
|
7
|
+
context 'defining task' do
|
8
|
+
it 'should define rake task named' do
|
9
|
+
expected_task_name = 'my_rake_task'
|
10
|
+
FluentMigratorCommandRunner::Rake::Task.new(expected_task_name)
|
11
|
+
expect(::Rake::Task[expected_task_name]).to_not equal(nil)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'invoking task' do
|
16
|
+
let(:builder){FluentMigratorCommandRunner::CommandBuilder}
|
17
|
+
let(:runner){FluentMigratorCommandRunner::Runner}
|
18
|
+
before { allow(builder).to receive(:build)}
|
19
|
+
before { allow(runner).to receive(:execute)}
|
20
|
+
before { allow(FigNewton).to receive(:load)}
|
21
|
+
let(:default_task_name){'my_rake_task'}
|
22
|
+
|
23
|
+
|
24
|
+
it 'should migrate the database' do
|
25
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name)
|
26
|
+
invoke_rake_task
|
27
|
+
|
28
|
+
expect(builder).to have_received(:build)
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should execute command' do
|
32
|
+
command = "BuildCommmand"
|
33
|
+
allow(builder).to receive(:build).and_return(command)
|
34
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name)
|
35
|
+
invoke_rake_task
|
36
|
+
|
37
|
+
expect(runner).to have_received(:execute).with(command)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should accept profile option' do
|
41
|
+
expected_profile = 'my_profile'
|
42
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name) do |task|
|
43
|
+
task.profile = expected_profile
|
44
|
+
end
|
45
|
+
invoke_rake_task
|
46
|
+
|
47
|
+
expect(builder).to have_received(:build).with(hash_including(:profile => expected_profile))
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should not pass profile option when nil' do
|
51
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name)
|
52
|
+
invoke_rake_task
|
53
|
+
|
54
|
+
expect(builder).to_not have_received(:build).with(hash_including(:profile => nil))
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'should accept tag option' do
|
58
|
+
expected_tag = 'tag'
|
59
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name) do |task|
|
60
|
+
task.tag = expected_tag
|
61
|
+
end
|
62
|
+
invoke_rake_task
|
63
|
+
|
64
|
+
expect(builder).to have_received(:build).with(hash_including(:tag => expected_tag))
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'should not pass tag option when nil' do
|
68
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name)
|
69
|
+
invoke_rake_task
|
70
|
+
|
71
|
+
expect(builder).to_not have_received(:build).with(hash_including(:tag => nil))
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'should accept password argument' do
|
75
|
+
expected_password = 'my_password'
|
76
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name)
|
77
|
+
invoke_rake_task_with_password(expected_password)
|
78
|
+
|
79
|
+
expect(builder).to have_received(:build).with(hash_including(:db_password => expected_password))
|
80
|
+
end
|
81
|
+
|
82
|
+
it 'should not pass password option when rake is invoked with out password' do
|
83
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name)
|
84
|
+
invoke_rake_task
|
85
|
+
|
86
|
+
expect(builder).to_not have_received(:build).with(hash_including(:db_password => nil))
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'should load the fig newton file when option given' do
|
90
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name) do |task|
|
91
|
+
task.fig_newton_file ='fignewton.yml'
|
92
|
+
end
|
93
|
+
|
94
|
+
invoke_rake_task
|
95
|
+
expect(FigNewton).to have_received(:load).with("fignewton.yml")
|
96
|
+
end
|
97
|
+
|
98
|
+
it 'should not load fignewton file' do
|
99
|
+
FluentMigratorCommandRunner::Rake::Task.new(default_task_name)
|
100
|
+
|
101
|
+
invoke_rake_task
|
102
|
+
expect(FigNewton).to_not have_received(:load)
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
|
107
|
+
private
|
108
|
+
|
109
|
+
def invoke_rake_task
|
110
|
+
::Rake::Task[default_task_name].invoke
|
111
|
+
end
|
112
|
+
|
113
|
+
|
114
|
+
def invoke_rake_task_with_password(password)
|
115
|
+
::Rake::Task[default_task_name].invoke(password)
|
116
|
+
end
|
117
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe FluentMigratorCommandRunner::CommandBuilder do
|
4
|
+
|
5
|
+
let(:runner){FluentMigratorCommandRunner::Runner}
|
6
|
+
let(:kernel){Kernel}
|
7
|
+
let(:system_error){$?}
|
8
|
+
|
9
|
+
before { allow(kernel).to receive(:system).and_return(true)}
|
10
|
+
|
11
|
+
it "should execute command" do
|
12
|
+
allow(system_error).to receive(:exitstatus).and_return(0)
|
13
|
+
expected_command = "echo Bravo"
|
14
|
+
runner.execute(expected_command)
|
15
|
+
expect(kernel).to have_received(:system).with(expected_command)
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'fluent migrator failure' do
|
19
|
+
it "should raise exception " do
|
20
|
+
allow(kernel).to receive(:system)
|
21
|
+
allow(system_error).to receive(:exitstatus).and_return(1)
|
22
|
+
|
23
|
+
expect{runner.execute('')}.to raise_error()
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should raise exception when command is invalid" do
|
27
|
+
allow(kernel).to receive(:system)
|
28
|
+
allow(system_error).to receive(:exitstatus).and_return(127)
|
29
|
+
expect{runner.execute('')}.to raise_error()
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-migrator-command-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: '0.6'
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mosaic
|
@@ -14,7 +13,6 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: fig_newton
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -33,34 +30,45 @@ executables: []
|
|
33
30
|
extensions: []
|
34
31
|
extra_rdoc_files: []
|
35
32
|
files:
|
33
|
+
- .gitignore
|
34
|
+
- Gemfile
|
35
|
+
- Gemfile.lock
|
36
|
+
- README.md
|
37
|
+
- Rakefile
|
38
|
+
- fluent-migrator-command-runner.gemspec
|
36
39
|
- lib/fluent-migrator-command-runner.rb
|
37
|
-
- lib/fluent-migrator-command-runner/runner.rb
|
38
40
|
- lib/fluent-migrator-command-runner/command_builder.rb
|
39
|
-
- lib/fluent-migrator-command-runner/task.rb
|
40
41
|
- lib/fluent-migrator-command-runner/oracle_migration_command.rb
|
42
|
+
- lib/fluent-migrator-command-runner/runner.rb
|
43
|
+
- lib/fluent-migrator-command-runner/task.rb
|
44
|
+
- lib/fluent-migrator-command-runner/version.rb
|
45
|
+
- spec/fluent-migrator-command-runner/command_builder_spec.rb
|
46
|
+
- spec/fluent-migrator-command-runner/oracle_migration_command_spec.rb
|
47
|
+
- spec/fluent-migrator-command-runner/rake_task_spec.rb
|
48
|
+
- spec/fluent-migrator-command-runner/runner_spec.rb
|
49
|
+
- spec/spec_helper.rb
|
41
50
|
homepage: ''
|
42
51
|
licenses:
|
43
52
|
- MIT
|
53
|
+
metadata: {}
|
44
54
|
post_install_message:
|
45
55
|
rdoc_options: []
|
46
56
|
require_paths:
|
47
57
|
- lib
|
48
58
|
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
59
|
requirements:
|
51
60
|
- - ! '>='
|
52
61
|
- !ruby/object:Gem::Version
|
53
62
|
version: '0'
|
54
63
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
-
none: false
|
56
64
|
requirements:
|
57
65
|
- - ! '>='
|
58
66
|
- !ruby/object:Gem::Version
|
59
67
|
version: '0'
|
60
68
|
requirements: []
|
61
69
|
rubyforge_project:
|
62
|
-
rubygems_version:
|
70
|
+
rubygems_version: 2.4.5
|
63
71
|
signing_key:
|
64
|
-
specification_version:
|
65
|
-
summary:
|
72
|
+
specification_version: 4
|
73
|
+
summary: Rake Tasks For Fluent Migrator
|
66
74
|
test_files: []
|