alf 0.14.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. data/Gemfile +6 -3
  2. data/Gemfile.lock +65 -19
  3. data/README.md +77 -183
  4. data/Rakefile +25 -0
  5. data/alf.gemspec +5 -3
  6. data/alf.noespec +8 -6
  7. data/lib/alf/loader.rb +1 -0
  8. data/lib/alf/version.rb +1 -1
  9. data/spec/facade/test_query.rb +12 -0
  10. data/spec/key-inference/queries.yml +10 -0
  11. data/spec/key-inference/test_all.rb +21 -0
  12. data/{test → spec}/migrations/test_folder_migration.rb +0 -0
  13. data/{test → spec}/migrations/test_sequel_migration.rb +1 -1
  14. data/spec/operators/ungroup/grouped.json +3 -0
  15. data/spec/operators/ungroup/test_on_json_content.rb +11 -0
  16. data/spec/operators/unwrap/test_on_json_content.rb +11 -0
  17. data/spec/operators/unwrap/wrapped.json +3 -0
  18. data/spec/optimizer/project/extend.yml +20 -0
  19. data/spec/optimizer/project/intersect.yml +10 -0
  20. data/spec/optimizer/project/join.yml +20 -0
  21. data/spec/optimizer/project/matching.yml +21 -0
  22. data/spec/optimizer/project/minus.yml +9 -0
  23. data/spec/optimizer/project/not_matching.yml +21 -0
  24. data/spec/optimizer/project/project.yml +88 -0
  25. data/spec/optimizer/project/rename.yml +30 -0
  26. data/spec/optimizer/project/sort.yml +45 -0
  27. data/spec/optimizer/project/union.yml +8 -0
  28. data/spec/optimizer/restrict/clip.yml +4 -0
  29. data/spec/optimizer/restrict/compact.yml +4 -0
  30. data/spec/optimizer/restrict/generator.yml +4 -0
  31. data/spec/optimizer/restrict/intersect.yml +4 -0
  32. data/spec/optimizer/restrict/leaf_operand.yml +4 -0
  33. data/spec/optimizer/restrict/minus.yml +4 -0
  34. data/spec/optimizer/restrict/page.yml +12 -0
  35. data/spec/optimizer/restrict/project.yml +4 -0
  36. data/spec/optimizer/restrict/sort.yml +4 -0
  37. data/spec/optimizer/restrict/union.yml +4 -0
  38. data/spec/optimizer/test_all.rb +34 -0
  39. data/spec/sql/helpers.rb +25 -0
  40. data/spec/sql/queries/01-leaf-operand.yml +5 -0
  41. data/spec/sql/queries/02-clip.yml +12 -0
  42. data/spec/sql/queries/03-sort.yml +58 -0
  43. data/spec/sql/queries/04-frame.yml +57 -0
  44. data/spec/sql/queries/05-intersect.yml +23 -0
  45. data/spec/sql/queries/06-join.yml +207 -0
  46. data/spec/sql/queries/07-matching.yml +76 -0
  47. data/spec/sql/queries/08-minus.yml +23 -0
  48. data/spec/sql/queries/09-not-matching.yml +57 -0
  49. data/spec/sql/queries/10-page.yml +31 -0
  50. data/spec/sql/queries/11-project.yml +48 -0
  51. data/spec/sql/queries/12-rename.yml +24 -0
  52. data/spec/sql/queries/13-restrict.yml +114 -0
  53. data/spec/sql/queries/15-union.yml +90 -0
  54. data/spec/sql/queries/16-wrap.yml +3 -0
  55. data/spec/sql/queries/91-reuse.yml +28 -0
  56. data/spec/sql/test_sequel_compiler.rb +41 -0
  57. data/spec/sql/test_sql_compiler.rb +52 -0
  58. data/{test → spec}/test_alf.rb +0 -0
  59. data/spec/test_helpers.rb +54 -0
  60. data/tasks/doc.rake +10 -0
  61. data/tasks/fixtures.rake +52 -0
  62. data/tasks/mod.rake +50 -0
  63. data/tasks/release.rake +34 -0
  64. data/tasks/test.rake +2 -2
  65. metadata +150 -19
  66. data/test/seeding/test_seeding.rb +0 -49
  67. data/test/test_helpers.rb +0 -24
@@ -1,49 +0,0 @@
1
- require 'test_helpers'
2
- describe "Seeding with a complete folder" do
3
- pending do
4
- let(:db_opts){
5
- opts.merge(migrations_folder: fixtures_folder/"suppliers-and-parts/migrations")
6
- }
7
-
8
- let(:db){
9
- Alf.database(victim.conn_spec,db_opts)
10
- }
11
-
12
- let(:conn){
13
- db.connection
14
- }
15
-
16
- before do
17
- conn.migrate!
18
- conn.knows?(:suppliers).should be_true
19
- end
20
-
21
- after do
22
- conn.close if conn
23
- end
24
-
25
- context 'when no seeds folder is set' do
26
-
27
- let(:opts){ {} }
28
-
29
- it 'fails with a clear message' do
30
- lambda{
31
- db.connect{|conn| conn.seed!(:base) }
32
- }.should raise_error(Alf::ConfigError, /No seeds folder set/)
33
- end
34
- end
35
-
36
- context 'when a seeds folder is set' do
37
-
38
- let(:opts){
39
- { seeds_folder: fixtures_folder/"suppliers-and-parts/seeds" }
40
- }
41
-
42
- it 'seeds the database when a seed name is provided' do
43
- conn.seed!
44
- conn.query{ suppliers }.size.should eq(5)
45
- end
46
- end
47
-
48
- end
49
- end
data/test/test_helpers.rb DELETED
@@ -1,24 +0,0 @@
1
- require 'alf'
2
- require 'rspec'
3
-
4
- module Alf::IntegrationTestHelpers
5
-
6
- def fixtures_folder
7
- Path.backfind("fixtures")
8
- end
9
-
10
- class Victim
11
-
12
- def conn_spec
13
- ENV['ALF_VICTIM_CONN_SPEC'] || "#{Alf::Sequel::Adapter.sqlite_protocol}:memory"
14
- end
15
- end
16
-
17
- def victim
18
- @victim ||= Victim.new
19
- end
20
- end
21
-
22
- RSpec.configure do |c|
23
- c.include(Alf::IntegrationTestHelpers)
24
- end