ardb 0.28.3 → 0.29.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +7 -7
  2. data/Gemfile +4 -9
  3. data/README.md +252 -3
  4. data/ardb.gemspec +8 -7
  5. data/bin/ardb +1 -1
  6. data/lib/ardb.rb +35 -34
  7. data/lib/ardb/adapter/base.rb +34 -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 +103 -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 +11 -8
  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 +14 -15
  30. data/test/system/.keep +0 -0
  31. data/test/unit/adapter/base_tests.rb +73 -53
  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 +43 -43
  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 -84
  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