fx 0.7.0 → 0.8.0

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +58 -0
  3. data/.gitignore +0 -1
  4. data/.rspec +1 -1
  5. data/.standard.yml +3 -0
  6. data/CONTRIBUTING.md +12 -3
  7. data/Gemfile +1 -1
  8. data/README.md +2 -2
  9. data/Rakefile +2 -1
  10. data/bin/setup +0 -4
  11. data/fx.gemspec +20 -22
  12. data/lib/fx/function.rb +4 -4
  13. data/lib/fx/statements/function.rb +3 -5
  14. data/lib/fx/statements/trigger.rb +8 -10
  15. data/lib/fx/version.rb +1 -1
  16. data/lib/fx.rb +3 -3
  17. data/lib/generators/fx/function/function_generator.rb +6 -6
  18. data/lib/generators/fx/trigger/trigger_generator.rb +6 -6
  19. data/spec/acceptance/user_manages_functions_spec.rb +1 -1
  20. data/spec/acceptance/user_manages_triggers_spec.rb +2 -2
  21. data/spec/acceptance_helper.rb +4 -2
  22. data/spec/dummy/Rakefile +4 -4
  23. data/spec/dummy/bin/bundle +2 -2
  24. data/spec/dummy/bin/rails +3 -3
  25. data/spec/dummy/bin/rake +2 -2
  26. data/spec/dummy/config/application.rb +2 -0
  27. data/spec/dummy/config/database.yml +2 -0
  28. data/spec/dummy/config.ru +1 -1
  29. data/spec/features/functions/migrations_spec.rb +1 -1
  30. data/spec/features/functions/revert_spec.rb +4 -4
  31. data/spec/features/triggers/migrations_spec.rb +2 -2
  32. data/spec/features/triggers/revert_spec.rb +8 -8
  33. data/spec/fx/adapters/postgres/triggers_spec.rb +3 -3
  34. data/spec/fx/adapters/postgres_spec.rb +2 -2
  35. data/spec/fx/command_recorder/arguments_spec.rb +4 -4
  36. data/spec/fx/command_recorder_spec.rb +23 -23
  37. data/spec/fx/definition_spec.rb +6 -6
  38. data/spec/fx/function_spec.rb +8 -8
  39. data/spec/fx/schema_dumper/function_spec.rb +14 -16
  40. data/spec/fx/schema_dumper/trigger_spec.rb +3 -3
  41. data/spec/fx/statements/function_spec.rb +17 -17
  42. data/spec/fx/statements/trigger_spec.rb +20 -20
  43. data/spec/fx/trigger_spec.rb +6 -6
  44. data/spec/generators/fx/function/function_generator_spec.rb +3 -3
  45. data/spec/support/definition_helpers.rb +4 -4
  46. data/spec/support/generator_setup.rb +1 -1
  47. data/spec/support/migration_helpers.rb +1 -1
  48. metadata +26 -73
  49. data/.hound.yml +0 -2
  50. data/.rubocop.yml +0 -648
  51. data/.travis.yml +0 -60
  52. data/Appraisals +0 -45
  53. data/bin/appraisal +0 -17
  54. data/gemfiles/rails42.gemfile +0 -10
  55. data/gemfiles/rails50.gemfile +0 -8
  56. data/gemfiles/rails51.gemfile +0 -8
  57. data/gemfiles/rails52.gemfile +0 -8
  58. data/gemfiles/rails60.gemfile +0 -8
  59. data/gemfiles/rails61.gemfile +0 -8
  60. data/gemfiles/rails_edge.gemfile +0 -8
@@ -22,11 +22,11 @@ describe "Reverting migrations", :db do
22
22
  CREATE TRIGGER uppercase_users_name
23
23
  BEFORE INSERT ON users
24
24
  FOR EACH ROW
25
- EXECUTE PROCEDURE uppercase_users_name();
25
+ EXECUTE FUNCTION uppercase_users_name();
26
26
  EOS
27
27
  with_trigger_definition(
28
28
  name: :uppercase_users_name,
29
- sql_definition: sql_definition,
29
+ sql_definition: sql_definition
30
30
  ) do
31
31
  example.run
32
32
  end
@@ -57,10 +57,10 @@ describe "Reverting migrations", :db do
57
57
  end
58
58
 
59
59
  expect { run_migration(good_migration, [:up, :down]) }.not_to raise_error
60
- expect { run_migration(bad_migration, [:up, :down]) }.
61
- to raise_error(
60
+ expect { run_migration(bad_migration, [:up, :down]) }
61
+ .to raise_error(
62
62
  ActiveRecord::IrreversibleMigration,
63
- /`create_trigger` is reversible only if given a `revert_to_version`/,
63
+ /`create_trigger` is reversible only if given a `revert_to_version`/
64
64
  )
65
65
  end
66
66
 
@@ -71,12 +71,12 @@ describe "Reverting migrations", :db do
71
71
  CREATE TRIGGER uppercase_users_name
72
72
  BEFORE UPDATE ON users
73
73
  FOR EACH ROW
74
- EXECUTE PROCEDURE uppercase_users_name();
74
+ EXECUTE FUNCTION uppercase_users_name();
75
75
  EOS
76
76
  with_trigger_definition(
77
77
  name: :uppercase_users_name,
78
78
  sql_definition: sql_definition,
79
- version: 2,
79
+ version: 2
80
80
  ) do
81
81
  migration = Class.new(migration_class) do
82
82
  def change
@@ -84,7 +84,7 @@ describe "Reverting migrations", :db do
84
84
  :uppercase_users_name,
85
85
  on: :users,
86
86
  version: 2,
87
- revert_to_version: 1,
87
+ revert_to_version: 1
88
88
  )
89
89
  end
90
90
  end
@@ -26,7 +26,7 @@ module Fx
26
26
  CREATE TRIGGER uppercase_users_name
27
27
  BEFORE INSERT ON users
28
28
  FOR EACH ROW
29
- EXECUTE PROCEDURE uppercase_users_name();
29
+ EXECUTE FUNCTION uppercase_users_name();
30
30
  EOS
31
31
 
32
32
  triggers = Postgres::Triggers.new(connection).all
@@ -35,9 +35,9 @@ module Fx
35
35
  expect(triggers.size).to eq 1
36
36
  expect(first.name).to eq "uppercase_users_name"
37
37
  expect(first.definition).to include("BEFORE INSERT")
38
- expect(first.definition).to match(/ON [public\.users|users]/)
38
+ expect(first.definition).to match(/ON [public.ser|]/)
39
39
  expect(first.definition).to include("FOR EACH ROW")
40
- expect(first.definition).to include("EXECUTE PROCEDURE uppercase_users_name()")
40
+ expect(first.definition).to include("EXECUTE FUNCTION uppercase_users_name()")
41
41
  end
42
42
  end
43
43
  end
@@ -44,7 +44,7 @@ module Fx::Adapters
44
44
  CREATE TRIGGER uppercase_users_name
45
45
  BEFORE INSERT ON users
46
46
  FOR EACH ROW
47
- EXECUTE PROCEDURE uppercase_users_name();
47
+ EXECUTE FUNCTION uppercase_users_name();
48
48
  EOS
49
49
  )
50
50
 
@@ -135,7 +135,7 @@ module Fx::Adapters
135
135
  CREATE TRIGGER uppercase_users_name
136
136
  BEFORE INSERT ON users
137
137
  FOR EACH ROW
138
- EXECUTE PROCEDURE uppercase_users_name()
138
+ EXECUTE FUNCTION uppercase_users_name()
139
139
  EOS
140
140
  adapter.create_trigger(sql_definition)
141
141
 
@@ -4,7 +4,7 @@ module Fx::CommandRecorder
4
4
  describe Arguments do
5
5
  describe "#function" do
6
6
  it "returns the function name" do
7
- raw_args = [:spaceships, { foo: :bar }]
7
+ raw_args = [:spaceships, {foo: :bar}]
8
8
  args = Arguments.new(raw_args)
9
9
 
10
10
  expect(args.function).to eq :spaceships
@@ -13,14 +13,14 @@ module Fx::CommandRecorder
13
13
 
14
14
  describe "#revert_to_version" do
15
15
  it "is the revert_to_version from the keyword arguments" do
16
- raw_args = [:spaceships, { revert_to_version: 42 }]
16
+ raw_args = [:spaceships, {revert_to_version: 42}]
17
17
  args = Arguments.new(raw_args)
18
18
 
19
19
  expect(args.revert_to_version).to eq 42
20
20
  end
21
21
 
22
22
  it "is nil if the revert_to_version was not supplied" do
23
- raw_args = [:spaceships, { foo: :bar }]
23
+ raw_args = [:spaceships, {foo: :bar}]
24
24
  args = Arguments.new(raw_args)
25
25
 
26
26
  expect(args.revert_to_version).to be nil
@@ -29,7 +29,7 @@ module Fx::CommandRecorder
29
29
 
30
30
  describe "#invert_version" do
31
31
  it "returns object with version set to revert_to_version" do
32
- raw_args = [:meatballs, { version: 42, revert_to_version: 15 }]
32
+ raw_args = [:meatballs, {version: 42, revert_to_version: 15}]
33
33
 
34
34
  inverted_args = Arguments.new(raw_args).invert_version
35
35
 
@@ -38,8 +38,8 @@ describe Fx::CommandRecorder, :db do
38
38
 
39
39
  it "reverts to create_function with specified revert_to_version" do
40
40
  recorder = ActiveRecord::Migration::CommandRecorder.new
41
- args = [:test, { revert_to_version: 3 }]
42
- revert_args = [:test, { version: 3 }]
41
+ args = [:test, {revert_to_version: 3}]
42
+ revert_args = [:test, {version: 3}]
43
43
 
44
44
  recorder.revert { recorder.drop_function(*args) }
45
45
 
@@ -48,17 +48,17 @@ describe Fx::CommandRecorder, :db do
48
48
 
49
49
  it "raises when reverting without revert_to_version set" do
50
50
  recorder = ActiveRecord::Migration::CommandRecorder.new
51
- args = [:test, { another_argument: 1 }]
51
+ args = [:test, {another_argument: 1}]
52
52
 
53
- expect { recorder.revert { recorder.drop_function(*args) } }.
54
- to raise_error(ActiveRecord::IrreversibleMigration)
53
+ expect { recorder.revert { recorder.drop_function(*args) } }
54
+ .to raise_error(ActiveRecord::IrreversibleMigration)
55
55
  end
56
56
  end
57
57
 
58
58
  describe "#update_function" do
59
59
  it "records the updated function" do
60
60
  recorder = ActiveRecord::Migration::CommandRecorder.new
61
- args = [:test, { version: 2 }]
61
+ args = [:test, {version: 2}]
62
62
 
63
63
  recorder.update_function(*args)
64
64
 
@@ -67,8 +67,8 @@ describe Fx::CommandRecorder, :db do
67
67
 
68
68
  it "reverts to update_function with the specified revert_to_version" do
69
69
  recorder = ActiveRecord::Migration::CommandRecorder.new
70
- args = [:test, { version: 2, revert_to_version: 1 }]
71
- revert_args = [:test, { version: 1 }]
70
+ args = [:test, {version: 2, revert_to_version: 1}]
71
+ revert_args = [:test, {version: 1}]
72
72
 
73
73
  recorder.revert { recorder.update_function(*args) }
74
74
 
@@ -77,10 +77,10 @@ describe Fx::CommandRecorder, :db do
77
77
 
78
78
  it "raises when reverting without revert_to_version set" do
79
79
  recorder = ActiveRecord::Migration::CommandRecorder.new
80
- args = [:test, { version: 42, another_argument: 1 }]
80
+ args = [:test, {version: 42, another_argument: 1}]
81
81
 
82
- expect { recorder.revert { recorder.update_function(*args) } }.
83
- to raise_error(ActiveRecord::IrreversibleMigration)
82
+ expect { recorder.revert { recorder.update_function(*args) } }
83
+ .to raise_error(ActiveRecord::IrreversibleMigration)
84
84
  end
85
85
  end
86
86
 
@@ -99,7 +99,7 @@ describe Fx::CommandRecorder, :db do
99
99
  recorder.create_trigger :greetings
100
100
 
101
101
  expect(recorder.commands).to eq [
102
- [:create_trigger, [:greetings], nil],
102
+ [:create_trigger, [:greetings], nil]
103
103
  ]
104
104
  end
105
105
 
@@ -123,8 +123,8 @@ describe Fx::CommandRecorder, :db do
123
123
 
124
124
  it "reverts to create_trigger with specified revert_to_version" do
125
125
  recorder = ActiveRecord::Migration::CommandRecorder.new
126
- args = [:users, { revert_to_version: 3 }]
127
- revert_args = [:users, { version: 3 }]
126
+ args = [:users, {revert_to_version: 3}]
127
+ revert_args = [:users, {version: 3}]
128
128
 
129
129
  recorder.revert { recorder.drop_trigger(*args) }
130
130
 
@@ -133,17 +133,17 @@ describe Fx::CommandRecorder, :db do
133
133
 
134
134
  it "raises when reverting without revert_to_version set" do
135
135
  recorder = ActiveRecord::Migration::CommandRecorder.new
136
- args = [:users, { another_argument: 1 }]
136
+ args = [:users, {another_argument: 1}]
137
137
 
138
- expect { recorder.revert { recorder.drop_trigger(*args) } }.
139
- to raise_error(ActiveRecord::IrreversibleMigration)
138
+ expect { recorder.revert { recorder.drop_trigger(*args) } }
139
+ .to raise_error(ActiveRecord::IrreversibleMigration)
140
140
  end
141
141
  end
142
142
 
143
143
  describe "#update_trigger" do
144
144
  it "records the updated trigger" do
145
145
  recorder = ActiveRecord::Migration::CommandRecorder.new
146
- args = [:users, { version: 2 }]
146
+ args = [:users, {version: 2}]
147
147
 
148
148
  recorder.update_trigger(*args)
149
149
 
@@ -152,8 +152,8 @@ describe Fx::CommandRecorder, :db do
152
152
 
153
153
  it "reverts to update_trigger with the specified revert_to_version" do
154
154
  recorder = ActiveRecord::Migration::CommandRecorder.new
155
- args = [:users, { version: 2, revert_to_version: 1 }]
156
- revert_args = [:users, { version: 1 }]
155
+ args = [:users, {version: 2, revert_to_version: 1}]
156
+ revert_args = [:users, {version: 1}]
157
157
 
158
158
  recorder.revert { recorder.update_trigger(*args) }
159
159
 
@@ -162,10 +162,10 @@ describe Fx::CommandRecorder, :db do
162
162
 
163
163
  it "raises when reverting without revert_to_version set" do
164
164
  recorder = ActiveRecord::Migration::CommandRecorder.new
165
- args = [:users, { version: 42, another_argument: 1 }]
165
+ args = [:users, {version: 42, another_argument: 1}]
166
166
 
167
- expect { recorder.revert { recorder.update_trigger(*args) } }.
168
- to raise_error(ActiveRecord::IrreversibleMigration)
167
+ expect { recorder.revert { recorder.update_trigger(*args) } }
168
+ .to raise_error(ActiveRecord::IrreversibleMigration)
169
169
  end
170
170
  end
171
171
  end
@@ -25,7 +25,7 @@ describe Fx::Definition do
25
25
 
26
26
  expect { definition.to_sql }.to raise_error(
27
27
  RuntimeError,
28
- %r(Define function in db/functions/test_v01.sql before migrating),
28
+ %r{Define function in db/functions/test_v01.sql before migrating}
29
29
  )
30
30
  end
31
31
 
@@ -59,14 +59,14 @@ describe Fx::Definition do
59
59
  CREATE TRIGGER check_update
60
60
  BEFORE UPDATE ON accounts
61
61
  FOR EACH ROW
62
- EXECUTE PROCEDURE check_account_update();
62
+ EXECUTE FUNCTION check_account_update();
63
63
  EOS
64
64
  allow(File).to receive(:read).and_return(sql_definition)
65
65
 
66
66
  definition = Fx::Definition.new(
67
67
  name: "test",
68
68
  version: 1,
69
- type: "trigger",
69
+ type: "trigger"
70
70
  )
71
71
 
72
72
  expect(definition.to_sql).to eq sql_definition
@@ -77,12 +77,12 @@ describe Fx::Definition do
77
77
  definition = Fx::Definition.new(
78
78
  name: "test",
79
79
  version: 1,
80
- type: "trigger",
80
+ type: "trigger"
81
81
  )
82
82
 
83
83
  expect { definition.to_sql }.to raise_error(
84
84
  RuntimeError,
85
- %r(Define trigger in db/triggers/test_v01.sql before migrating),
85
+ %r{Define trigger in db/triggers/test_v01.sql before migrating}
86
86
  )
87
87
  end
88
88
  end
@@ -102,7 +102,7 @@ describe Fx::Definition do
102
102
  definition = Fx::Definition.new(
103
103
  name: "test",
104
104
  version: 1,
105
- type: "trigger",
105
+ type: "trigger"
106
106
  )
107
107
 
108
108
  expect(definition.path).to eq "db/triggers/test_v01.sql"
@@ -7,15 +7,15 @@ module Fx
7
7
  it "delegates to `name`" do
8
8
  function_a = Function.new(
9
9
  "name" => "name_a",
10
- "definition" => "some definition",
10
+ "definition" => "some definition"
11
11
  )
12
12
  function_b = Function.new(
13
13
  "name" => "name_b",
14
- "definition" => "some definition",
14
+ "definition" => "some definition"
15
15
  )
16
16
  function_c = Function.new(
17
17
  "name" => "name_c",
18
- "definition" => "some definition",
18
+ "definition" => "some definition"
19
19
  )
20
20
 
21
21
  expect(function_b).to be_between(function_a, function_c)
@@ -26,11 +26,11 @@ module Fx
26
26
  it "compares `name` and `definition`" do
27
27
  function_a = Function.new(
28
28
  "name" => "name_a",
29
- "definition" => "some definition",
29
+ "definition" => "some definition"
30
30
  )
31
31
  function_b = Function.new(
32
32
  "name" => "name_b",
33
- "definition" => "some other definition",
33
+ "definition" => "some other definition"
34
34
  )
35
35
 
36
36
  expect(function_a).not_to eq(function_b)
@@ -41,10 +41,10 @@ module Fx
41
41
  it "returns a schema compatible version of the function" do
42
42
  function = Function.new(
43
43
  "name" => "uppercase_users_name",
44
- "definition" => "CREATE OR REPLACE TRIGGER uppercase_users_name ...",
44
+ "definition" => "CREATE OR REPLACE TRIGGER uppercase_users_name ..."
45
45
  )
46
46
 
47
- expect(function.to_schema).to eq <<-'EOS'
47
+ expect(function.to_schema).to eq <<-EOS
48
48
  create_function :uppercase_users_name, sql_definition: <<-'SQL'
49
49
  CREATE OR REPLACE TRIGGER uppercase_users_name ...
50
50
  SQL
@@ -54,7 +54,7 @@ module Fx
54
54
  it "maintains backslashes" do
55
55
  function = Function.new(
56
56
  "name" => "regex",
57
- "definition" => "CREATE OR REPLACE FUNCTION regex \\1",
57
+ "definition" => "CREATE OR REPLACE FUNCTION regex \\1"
58
58
  )
59
59
 
60
60
  expect(function.to_schema).to eq <<-'EOS'
@@ -18,34 +18,32 @@ describe Fx::SchemaDumper::Function, :db do
18
18
  ActiveRecord::SchemaDumper.dump(connection, stream)
19
19
 
20
20
  expect(output).to(
21
- match(/table "my_table".*function :my_function.*RETURN 'test';/m),
21
+ match(/table "my_table".*function :my_function.*RETURN 'test';/m)
22
22
  )
23
23
  end
24
24
 
25
25
  it "dumps a create_function for a function in the database" do
26
- begin
27
- Fx.configuration.dump_functions_at_beginning_of_schema = true
28
- sql_definition = <<-EOS
26
+ Fx.configuration.dump_functions_at_beginning_of_schema = true
27
+ sql_definition = <<-EOS
29
28
  CREATE OR REPLACE FUNCTION my_function()
30
29
  RETURNS text AS $$
31
30
  BEGIN
32
31
  RETURN 'test';
33
32
  END;
34
33
  $$ LANGUAGE plpgsql;
35
- EOS
36
- connection.create_function :my_function, sql_definition: sql_definition
37
- connection.create_table :my_table
38
- stream = StringIO.new
39
- output = stream.string
34
+ EOS
35
+ connection.create_function :my_function, sql_definition: sql_definition
36
+ connection.create_table :my_table
37
+ stream = StringIO.new
38
+ output = stream.string
40
39
 
41
- ActiveRecord::SchemaDumper.dump(connection, stream)
40
+ ActiveRecord::SchemaDumper.dump(connection, stream)
42
41
 
43
- expect(output).to(
44
- match(/function :my_function.*RETURN 'test';.*table "my_table"/m),
45
- )
46
- ensure
47
- Fx.configuration.dump_functions_at_beginning_of_schema = false
48
- end
42
+ expect(output).to(
43
+ match(/function :my_function.*RETURN 'test';.*table "my_table"/m)
44
+ )
45
+ ensure
46
+ Fx.configuration.dump_functions_at_beginning_of_schema = false
49
47
  end
50
48
 
51
49
  it "does not dump a create_function for aggregates in the database" do
@@ -22,11 +22,11 @@ describe Fx::SchemaDumper::Trigger, :db do
22
22
  CREATE TRIGGER uppercase_users_name
23
23
  BEFORE INSERT ON users
24
24
  FOR EACH ROW
25
- EXECUTE PROCEDURE uppercase_users_name();
25
+ EXECUTE FUNCTION uppercase_users_name();
26
26
  EOS
27
27
  connection.create_trigger(
28
28
  :uppercase_users_name,
29
- sql_definition: sql_definition,
29
+ sql_definition: sql_definition
30
30
  )
31
31
  stream = StringIO.new
32
32
 
@@ -35,6 +35,6 @@ describe Fx::SchemaDumper::Trigger, :db do
35
35
  output = stream.string
36
36
  expect(output).to include "create_trigger :uppercase_users_name"
37
37
  expect(output).to include "sql_definition: <<-SQL"
38
- expect(output).to include "EXECUTE PROCEDURE uppercase_users_name()"
38
+ expect(output).to include "EXECUTE FUNCTION uppercase_users_name()"
39
39
  end
40
40
  end
@@ -9,10 +9,10 @@ describe Fx::Statements::Function, :db do
9
9
 
10
10
  connection.create_function(:test)
11
11
 
12
- expect(database).to have_received(:create_function).
13
- with(definition.to_sql)
14
- expect(Fx::Definition).to have_received(:new).
15
- with(name: :test, version: 1)
12
+ expect(database).to have_received(:create_function)
13
+ .with(definition.to_sql)
14
+ expect(Fx::Definition).to have_received(:new)
15
+ .with(name: :test, version: 1)
16
16
  end
17
17
 
18
18
  it "allows creating a function with a specific version" do
@@ -21,10 +21,10 @@ describe Fx::Statements::Function, :db do
21
21
 
22
22
  connection.create_function(:test, version: 2)
23
23
 
24
- expect(database).to have_received(:create_function).
25
- with(definition.to_sql)
26
- expect(Fx::Definition).to have_received(:new).
27
- with(name: :test, version: 2)
24
+ expect(database).to have_received(:create_function)
25
+ .with(definition.to_sql)
26
+ expect(Fx::Definition).to have_received(:new)
27
+ .with(name: :test, version: 2)
28
28
  end
29
29
 
30
30
  it "raises an error if both arguments are nil" do
@@ -32,11 +32,11 @@ describe Fx::Statements::Function, :db do
32
32
  connection.create_function(
33
33
  :whatever,
34
34
  version: nil,
35
- sql_definition: nil,
35
+ sql_definition: nil
36
36
  )
37
37
  }.to raise_error(
38
38
  ArgumentError,
39
- /version or sql_definition must be specified/,
39
+ /version or sql_definition must be specified/
40
40
  )
41
41
  end
42
42
  end
@@ -58,10 +58,10 @@ describe Fx::Statements::Function, :db do
58
58
 
59
59
  connection.update_function(:test, version: 3)
60
60
 
61
- expect(database).to have_received(:update_function).
62
- with(:test, definition.to_sql)
63
- expect(Fx::Definition).to have_received(:new).
64
- with(name: :test, version: 3)
61
+ expect(database).to have_received(:update_function)
62
+ .with(:test, definition.to_sql)
63
+ expect(Fx::Definition).to have_received(:new)
64
+ .with(name: :test, version: 3)
65
65
  end
66
66
 
67
67
  it "updates a function from a text definition" do
@@ -71,7 +71,7 @@ describe Fx::Statements::Function, :db do
71
71
 
72
72
  expect(database).to have_received(:update_function).with(
73
73
  :test,
74
- "a definition",
74
+ "a definition"
75
75
  )
76
76
  end
77
77
 
@@ -80,11 +80,11 @@ describe Fx::Statements::Function, :db do
80
80
  connection.update_function(
81
81
  :whatever,
82
82
  version: nil,
83
- sql_definition: nil,
83
+ sql_definition: nil
84
84
  )
85
85
  }.to raise_error(
86
86
  ArgumentError,
87
- /version or sql_definition must be specified/,
87
+ /version or sql_definition must be specified/
88
88
  )
89
89
  end
90
90
  end
@@ -9,10 +9,10 @@ describe Fx::Statements::Trigger, :db do
9
9
 
10
10
  connection.create_trigger(:test)
11
11
 
12
- expect(database).to have_received(:create_trigger).
13
- with(definition.to_sql)
14
- expect(Fx::Definition).to have_received(:new).
15
- with(name: :test, version: 1, type: "trigger")
12
+ expect(database).to have_received(:create_trigger)
13
+ .with(definition.to_sql)
14
+ expect(Fx::Definition).to have_received(:new)
15
+ .with(name: :test, version: 1, type: "trigger")
16
16
  end
17
17
 
18
18
  it "allows creating a trigger with a specific version" do
@@ -21,10 +21,10 @@ describe Fx::Statements::Trigger, :db do
21
21
 
22
22
  connection.create_trigger(:test, version: 2)
23
23
 
24
- expect(database).to have_received(:create_trigger).
25
- with(definition.to_sql)
26
- expect(Fx::Definition).to have_received(:new).
27
- with(name: :test, version: 2, type: "trigger")
24
+ expect(database).to have_received(:create_trigger)
25
+ .with(definition.to_sql)
26
+ expect(Fx::Definition).to have_received(:new)
27
+ .with(name: :test, version: 2, type: "trigger")
28
28
  end
29
29
 
30
30
  it "raises an error if both arguments are set" do
@@ -34,11 +34,11 @@ describe Fx::Statements::Trigger, :db do
34
34
  connection.create_trigger(
35
35
  :whatever,
36
36
  version: 1,
37
- sql_definition: "a definition",
37
+ sql_definition: "a definition"
38
38
  )
39
39
  }.to raise_error(
40
40
  ArgumentError,
41
- /cannot both be set/,
41
+ /cannot both be set/
42
42
  )
43
43
  end
44
44
  end
@@ -49,8 +49,8 @@ describe Fx::Statements::Trigger, :db do
49
49
 
50
50
  connection.drop_trigger(:test, on: :users)
51
51
 
52
- expect(database).to have_received(:drop_trigger).
53
- with(:test, on: :users)
52
+ expect(database).to have_received(:drop_trigger)
53
+ .with(:test, on: :users)
54
54
  end
55
55
  end
56
56
 
@@ -64,12 +64,12 @@ describe Fx::Statements::Trigger, :db do
64
64
  expect(database).to have_received(:update_trigger).with(
65
65
  :test,
66
66
  on: :users,
67
- sql_definition: definition.to_sql,
67
+ sql_definition: definition.to_sql
68
68
  )
69
69
  expect(Fx::Definition).to have_received(:new).with(
70
70
  name: :test,
71
71
  version: 3,
72
- type: "trigger",
72
+ type: "trigger"
73
73
  )
74
74
  end
75
75
 
@@ -79,13 +79,13 @@ describe Fx::Statements::Trigger, :db do
79
79
  connection.update_trigger(
80
80
  :test,
81
81
  on: :users,
82
- sql_definition: "a definition",
82
+ sql_definition: "a definition"
83
83
  )
84
84
 
85
85
  expect(database).to have_received(:update_trigger).with(
86
86
  :test,
87
87
  on: :users,
88
- sql_definition: "a definition",
88
+ sql_definition: "a definition"
89
89
  )
90
90
  end
91
91
 
@@ -94,11 +94,11 @@ describe Fx::Statements::Trigger, :db do
94
94
  connection.update_trigger(
95
95
  :whatever,
96
96
  version: nil,
97
- sql_definition: nil,
97
+ sql_definition: nil
98
98
  )
99
99
  }.to raise_error(
100
100
  ArgumentError,
101
- /version or sql_definition must be specified/,
101
+ /version or sql_definition must be specified/
102
102
  )
103
103
  end
104
104
 
@@ -109,11 +109,11 @@ describe Fx::Statements::Trigger, :db do
109
109
  connection.update_trigger(
110
110
  :whatever,
111
111
  version: 1,
112
- sql_definition: "a definition",
112
+ sql_definition: "a definition"
113
113
  )
114
114
  }.to raise_error(
115
115
  ArgumentError,
116
- /cannot both be set/,
116
+ /cannot both be set/
117
117
  )
118
118
  end
119
119
  end
@@ -7,15 +7,15 @@ module Fx
7
7
  it "delegates to `name`" do
8
8
  trigger_a = Trigger.new(
9
9
  "name" => "name_a",
10
- "definition" => "some definition",
10
+ "definition" => "some definition"
11
11
  )
12
12
  trigger_b = Trigger.new(
13
13
  "name" => "name_b",
14
- "definition" => "some definition",
14
+ "definition" => "some definition"
15
15
  )
16
16
  trigger_c = Trigger.new(
17
17
  "name" => "name_c",
18
- "definition" => "some definition",
18
+ "definition" => "some definition"
19
19
  )
20
20
 
21
21
  expect(trigger_b).to be_between(trigger_a, trigger_c)
@@ -26,11 +26,11 @@ module Fx
26
26
  it "compares `name` and `definition`" do
27
27
  trigger_a = Trigger.new(
28
28
  "name" => "name_a",
29
- "definition" => "some definition",
29
+ "definition" => "some definition"
30
30
  )
31
31
  trigger_b = Trigger.new(
32
32
  "name" => "name_b",
33
- "definition" => "some other definition",
33
+ "definition" => "some other definition"
34
34
  )
35
35
 
36
36
  expect(trigger_a).not_to eq(trigger_b)
@@ -41,7 +41,7 @@ module Fx
41
41
  it "returns a schema compatible version of the trigger" do
42
42
  trigger = Trigger.new(
43
43
  "name" => "uppercase_users_name",
44
- "definition" => "CREATE TRIGGER uppercase_users_name ...",
44
+ "definition" => "CREATE TRIGGER uppercase_users_name ..."
45
45
  )
46
46
 
47
47
  expect(trigger.to_schema).to eq <<-EOS