alf 0.14.0 → 0.15.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 (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