ardb 0.28.0 → 0.29.1

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 (53) hide show
  1. checksums.yaml +7 -7
  2. data/Gemfile +19 -8
  3. data/README.md +252 -3
  4. data/ardb.gemspec +8 -7
  5. data/bin/ardb +1 -1
  6. data/lib/ardb.rb +55 -39
  7. data/lib/ardb/adapter/base.rb +35 -30
  8. data/lib/ardb/adapter/mysql.rb +2 -17
  9. data/lib/ardb/adapter/postgresql.rb +24 -30
  10. data/lib/ardb/adapter/sqlite.rb +4 -8
  11. data/lib/ardb/adapter_spy.rb +2 -16
  12. data/lib/ardb/cli.rb +15 -15
  13. data/lib/ardb/cli/clirb.rb +14 -17
  14. data/lib/ardb/cli/commands.rb +204 -114
  15. data/lib/ardb/db_tests.rb +2 -4
  16. data/lib/ardb/default_order_by.rb +3 -13
  17. data/lib/ardb/migration.rb +9 -13
  18. data/lib/ardb/record_spy.rb +7 -26
  19. data/lib/ardb/relation_spy.rb +0 -6
  20. data/lib/ardb/require_autoloaded_active_record_files.rb +172 -58
  21. data/lib/ardb/test_helpers.rb +2 -5
  22. data/lib/ardb/use_db_default.rb +4 -15
  23. data/lib/ardb/version.rb +1 -1
  24. data/script/determine_autoloaded_active_record_files.rb +14 -9
  25. data/test/helper.rb +4 -13
  26. data/test/support/factory.rb +2 -2
  27. data/test/support/postgresql/migrations/{.gitkeep → .keep} +0 -0
  28. data/test/support/postgresql/schema.rb +0 -1
  29. data/test/support/postgresql/setup_test_db.rb +15 -15
  30. data/test/system/.keep +0 -0
  31. data/test/unit/adapter/base_tests.rb +76 -52
  32. data/test/unit/adapter/mysql_tests.rb +2 -19
  33. data/test/unit/adapter/postgresql_tests.rb +14 -23
  34. data/test/unit/adapter/sqlite_tests.rb +3 -11
  35. data/test/unit/adapter_spy_tests.rb +2 -16
  36. data/test/unit/ardb_tests.rb +57 -44
  37. data/test/unit/cli_tests.rb +220 -158
  38. data/test/unit/db_tests_tests.rb +3 -6
  39. data/test/unit/default_order_by_tests.rb +4 -8
  40. data/test/unit/migration_tests.rb +11 -15
  41. data/test/unit/record_spy_tests.rb +17 -22
  42. data/test/unit/relation_spy_tests.rb +17 -46
  43. data/test/unit/test_helpers_tests.rb +3 -14
  44. data/test/unit/use_db_default_tests.rb +7 -11
  45. metadata +100 -83
  46. data/lib/ardb/has_slug.rb +0 -107
  47. data/lib/ardb/migration_helpers.rb +0 -77
  48. data/lib/ardb/pg_json.rb +0 -90
  49. data/test/support/postgresql/pg_json_migrations/20160519133432_create_pg_json_migrate_test.rb +0 -13
  50. data/test/system/pg_json_tests.rb +0 -85
  51. data/test/unit/has_slug_tests.rb +0 -341
  52. data/test/unit/migration_helpers_tests.rb +0 -65
  53. data/test/unit/pg_json_tests.rb +0 -39
@@ -1,65 +0,0 @@
1
- require 'assert'
2
- require 'ardb/migration_helpers'
3
-
4
- require 'ardb/adapter_spy'
5
-
6
- module Ardb::MigrationHelpers
7
-
8
- class UnitTests < Assert::Context
9
- desc "Ardb migration helpers"
10
- subject{ Ardb::MigrationHelpers }
11
-
12
- should have_imeths :foreign_key, :drop_foreign_key, :remove_column_with_fk
13
-
14
- end
15
-
16
- class ForeignKeyTests < UnitTests
17
- desc "ForeignKey handler"
18
- setup do
19
- @adapter_spy = nil
20
- Assert.stub(Ardb::Adapter, :new) do |*args|
21
- @adapter_spy = Ardb::AdapterSpy.new(*args)
22
- end
23
-
24
- @fk = ForeignKey.new('fromtbl', 'fromcol', 'totbl')
25
- end
26
- subject{ @fk }
27
-
28
- should have_readers :from_table, :from_column, :to_table, :to_column
29
- should have_readers :name, :adapter
30
- should have_imeths :add_sql, :drop_sql
31
-
32
- should "know its from table/column and to table" do
33
- assert_equal 'fromtbl', subject.from_table
34
- assert_equal 'fromcol', subject.from_column
35
- assert_equal 'totbl', subject.to_table
36
- end
37
-
38
- should "default its to column" do
39
- assert_equal 'id', subject.to_column
40
- end
41
-
42
- should "default its name" do
43
- exp_name = "fk_fromtbl_fromcol"
44
- assert_equal exp_name, subject.name
45
- end
46
-
47
- should "know its adapter" do
48
- assert_not_nil @adapter_spy
49
- assert_equal Ardb.config, @adapter_spy.config
50
- assert_equal @adapter_spy, subject.adapter
51
- end
52
-
53
- should "generate appropriate foreign key sql" do
54
- exp = "FAKE ADD FOREIGN KEY SQL fromtbl fromcol " \
55
- "totbl id fk_fromtbl_fromcol"
56
- assert_equal exp, subject.add_sql
57
-
58
- exp = "FAKE DROP FOREIGN KEY SQL fromtbl fromcol " \
59
- "totbl id fk_fromtbl_fromcol"
60
- assert_equal exp, subject.drop_sql
61
- end
62
-
63
- end
64
-
65
- end
@@ -1,39 +0,0 @@
1
- require 'assert'
2
- require 'ardb/pg_json'
3
-
4
- module Ardb; end
5
- module Ardb::PgJson
6
-
7
- class UnitTests < Assert::Context
8
- desc "Ardb postgresql json shim"
9
- setup do
10
- @connection_adapters = ActiveRecord::ConnectionAdapters
11
- end
12
- subject{ @connection_adapters }
13
-
14
- should "update active record postgres adapter to support json columns" do
15
- adapter_class = subject::PostgreSQLAdapter
16
- exp = { :name => 'json' }
17
- assert_equal exp, adapter_class::NATIVE_DATABASE_TYPES[:json]
18
- exp = { :name => 'jsonb' }
19
- assert_equal exp, adapter_class::NATIVE_DATABASE_TYPES[:jsonb]
20
- end
21
-
22
- should "update active record postgres column to support json columns" do
23
- column_class = subject::PostgreSQLColumn
24
- default = Factory.boolean ? "'{}'::json" : "'{}'::jsonb"
25
- assert_equal '{}', column_class.extract_value_from_default(default)
26
- default = Factory.boolean ? "'[]'::json" : "'[]'::jsonb"
27
- assert_equal '[]', column_class.extract_value_from_default(default)
28
-
29
- column = column_class.new(Factory.string, Factory.string)
30
- assert_equal :json, column.send(:simplified_type, 'json')
31
- assert_equal :jsonb, column.send(:simplified_type, 'jsonb')
32
- end
33
-
34
- # Note: The rest of the postgresql json shim logic is tested in the pg json
35
- # system tests
36
-
37
- end
38
-
39
- end