alf-core 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (200) hide show
  1. data/CHANGELOG.md +77 -0
  2. data/examples/operators/page.alf +4 -0
  3. data/lib/alf-adapter-fs/alf/adapter/folder.rb +4 -0
  4. data/lib/alf-adapter-fs/alf/adapter/folder/connection.rb +3 -2
  5. data/lib/alf-adapter/alf/adapter/connection.rb +1 -1
  6. data/lib/alf-algebra/alf/algebra/operand.rb +2 -2
  7. data/lib/alf-algebra/alf/algebra/operand/fake.rb +3 -3
  8. data/lib/alf-algebra/alf/algebra/operand/named.rb +1 -1
  9. data/lib/alf-algebra/alf/algebra/operand/proxy.rb +14 -0
  10. data/lib/alf-algebra/alf/algebra/operator.rb +4 -1
  11. data/lib/alf-algebra/alf/algebra/operator/clip.rb +7 -4
  12. data/lib/alf-algebra/alf/algebra/operator/frame.rb +22 -0
  13. data/lib/alf-algebra/alf/algebra/operator/hierarchize.rb +22 -0
  14. data/lib/alf-algebra/alf/algebra/operator/page.rb +22 -0
  15. data/lib/alf-algebra/alf/algebra/operator/project.rb +4 -9
  16. data/lib/alf-algebra/alf/algebra/operator/rank.rb +2 -2
  17. data/lib/alf-algebra/alf/algebra/support.rb +2 -0
  18. data/lib/alf-algebra/alf/algebra/support/signature.rb +2 -1
  19. data/lib/alf-algebra/alf/algebra/support/with_ordering.rb +11 -0
  20. data/lib/alf-core/ext/domain/heading_based.rb +16 -4
  21. data/lib/alf-core/facade.rb +5 -1
  22. data/lib/alf-core/version.rb +2 -2
  23. data/lib/alf-database/alf/database/connection.rb +2 -2
  24. data/lib/alf-database/alf/database/options.rb +0 -3
  25. data/lib/alf-engine/alf/engine.rb +4 -1
  26. data/lib/alf-engine/alf/engine/aggregate.rb +2 -1
  27. data/lib/alf-engine/alf/engine/autonum.rb +2 -1
  28. data/lib/alf-engine/alf/engine/clip.rb +2 -1
  29. data/lib/alf-engine/alf/engine/coerce.rb +2 -1
  30. data/lib/alf-engine/alf/engine/cog.rb +23 -0
  31. data/lib/alf-engine/alf/engine/compact.rb +3 -2
  32. data/lib/alf-engine/alf/engine/compact/set.rb +2 -1
  33. data/lib/alf-engine/alf/engine/compact/uniq.rb +2 -1
  34. data/lib/alf-engine/alf/engine/compiler.rb +60 -33
  35. data/lib/alf-engine/alf/engine/concat.rb +2 -1
  36. data/lib/alf-engine/alf/engine/defaults.rb +2 -1
  37. data/lib/alf-engine/alf/engine/filter.rb +4 -2
  38. data/lib/alf-engine/alf/engine/generator.rb +2 -1
  39. data/lib/alf-engine/alf/engine/group/hash.rb +4 -3
  40. data/lib/alf-engine/alf/engine/hierarchize.rb +87 -0
  41. data/lib/alf-engine/alf/engine/infer_heading.rb +2 -1
  42. data/lib/alf-engine/alf/engine/join.rb +5 -1
  43. data/lib/alf-engine/alf/engine/join/hash.rb +9 -2
  44. data/lib/alf-engine/alf/engine/leaf.rb +6 -1
  45. data/lib/alf-engine/alf/engine/materialize/array.rb +2 -1
  46. data/lib/alf-engine/alf/engine/materialize/hash.rb +2 -1
  47. data/lib/alf-engine/alf/engine/quota/cesure.rb +2 -1
  48. data/lib/alf-engine/alf/engine/rank/cesure.rb +2 -1
  49. data/lib/alf-engine/alf/engine/rename.rb +2 -1
  50. data/lib/alf-engine/alf/engine/semi/hash.rb +7 -1
  51. data/lib/alf-engine/alf/engine/set_attr.rb +4 -3
  52. data/lib/alf-engine/alf/engine/sort.rb +3 -2
  53. data/lib/alf-engine/alf/engine/sort/in_memory.rb +2 -1
  54. data/lib/alf-engine/alf/engine/summarize/cesure.rb +2 -1
  55. data/lib/alf-engine/alf/engine/summarize/hash.rb +3 -2
  56. data/lib/alf-engine/alf/engine/{cesure.rb → support/cesure.rb} +0 -0
  57. data/lib/alf-engine/alf/engine/take.rb +53 -0
  58. data/lib/alf-engine/alf/engine/to_array.rb +6 -5
  59. data/lib/alf-engine/alf/engine/type_safe.rb +2 -1
  60. data/lib/alf-engine/alf/engine/ungroup.rb +2 -1
  61. data/lib/alf-engine/alf/engine/unwrap.rb +2 -1
  62. data/lib/alf-engine/alf/engine/wrap.rb +2 -1
  63. data/lib/alf-io/alf/reader.rb +1 -1
  64. data/lib/alf-io/alf/reader/ruby.rb +23 -0
  65. data/lib/alf-io/alf/renderer/text.rb +22 -9
  66. data/lib/alf-lang/alf/lang/lispy.rb +41 -29
  67. data/lib/alf-lang/alf/lang/oo/algebra_methods.rb +17 -1
  68. data/lib/alf-optimizer/alf/optimizer/restrict.rb +7 -1
  69. data/lib/alf-predicate/alf/predicate.rb +11 -2
  70. data/lib/alf-relation/alf/relation.rb +21 -1
  71. data/lib/alf-relvar/alf/relvar.rb +21 -1
  72. data/lib/alf-relvar/alf/relvar/base.rb +11 -6
  73. data/lib/alf-relvar/alf/relvar/fake.rb +3 -2
  74. data/lib/alf-relvar/alf/relvar/virtual.rb +1 -2
  75. data/lib/alf-support/alf/support/bindable.rb +1 -1
  76. data/lib/alf-support/alf/support/config.rb +91 -18
  77. data/lib/alf-support/alf/support/tuple_scope.rb +8 -4
  78. data/lib/alf-types/alf/types.rb +2 -0
  79. data/lib/alf-types/alf/types/attr_list.rb +3 -1
  80. data/lib/alf-types/alf/types/heading.rb +4 -1
  81. data/lib/alf-types/alf/types/keys.rb +0 -4
  82. data/lib/alf-types/alf/types/ordering.rb +104 -18
  83. data/lib/alf-types/alf/types/selection.rb +18 -0
  84. data/lib/alf-types/alf/types/selector.rb +59 -0
  85. data/lib/alf-types/alf/types/tuple_computation.rb +2 -2
  86. data/lib/alf-types/alf/types/tuple_expression.rb +18 -2
  87. data/lib/alf-viewpoint/alf/viewpoint.rb +23 -8
  88. data/lib/alf-viewpoint/alf/viewpoint/metadata.rb +73 -0
  89. data/spec/integration/relation/test_extend.rb +20 -0
  90. data/spec/integration/relation/test_to_array.rb +1 -1
  91. data/spec/integration/test_examples.rb +18 -2
  92. data/spec/shared/a_cog.rb +36 -0
  93. data/spec/spec_helper.rb +8 -0
  94. data/spec/unit/alf-algebra/operand/test_proxy.rb +54 -0
  95. data/spec/unit/alf-algebra/operator/hierarchize/test_heading.rb +23 -0
  96. data/spec/unit/alf-algebra/operator/project/test_key_preserving.rb +3 -0
  97. data/spec/unit/alf-algebra/operator/project/test_keys.rb +54 -17
  98. data/spec/unit/alf-algebra/operator/rank/test_keys.rb +2 -2
  99. data/spec/unit/alf-algebra/operator/restrict/test_keys.rb +2 -2
  100. data/spec/unit/alf-algebra/operator/test_page.rb +30 -0
  101. data/spec/unit/alf-algebra/support/test_relational.rb +3 -0
  102. data/spec/unit/alf-algebra/support/with_ordering/test_total_ordering.rb +61 -0
  103. data/spec/unit/alf-database/connection/test_reconnect.rb +1 -1
  104. data/spec/unit/alf-database/options/test_new.rb +4 -4
  105. data/spec/unit/alf-database/shared_examples/a_facade_on_database_options.rb +1 -2
  106. data/spec/unit/alf-engine/cog/test_to_cog.rb +14 -0
  107. data/spec/unit/alf-engine/compiler/test_on_frame.rb +70 -0
  108. data/spec/unit/alf-engine/compiler/test_on_hierarchize.rb +33 -0
  109. data/spec/unit/alf-engine/compiler/test_on_page.rb +128 -0
  110. data/spec/unit/alf-engine/compiler/test_unsupported.rb +48 -0
  111. data/spec/unit/alf-engine/hierarchize/test_renamer.rb +18 -0
  112. data/spec/unit/alf-engine/test_filter.rb +43 -11
  113. data/spec/unit/alf-engine/test_hierarchize.rb +71 -0
  114. data/spec/unit/alf-engine/test_set_attr.rb +13 -0
  115. data/spec/unit/alf-engine/test_take.rb +46 -0
  116. data/spec/unit/alf-engine/test_to_array.rb +45 -28
  117. data/spec/unit/alf-io/reader/{input.rb → input.rash} +0 -0
  118. data/spec/unit/alf-io/reader/input.ruby +4 -0
  119. data/spec/unit/alf-io/reader/test_rash.rb +1 -1
  120. data/spec/unit/alf-io/reader/test_ruby.rb +25 -0
  121. data/spec/unit/alf-predicate/predicate/test_evaluate.rb +51 -13
  122. data/spec/unit/alf-relation/relation/class/test_recursive_type.rb +42 -0
  123. data/spec/unit/alf-relation/relation/test_equality.rb +19 -1
  124. data/spec/unit/alf-relation/relation/test_relops.rb +14 -2
  125. data/spec/unit/alf-relation/relation/test_to_hash.rb +31 -0
  126. data/spec/unit/alf-relvar/base/test_connection.rb +8 -2
  127. data/spec/unit/alf-relvar/base/test_delete.rb +2 -2
  128. data/spec/unit/alf-relvar/base/test_heading.rb +2 -2
  129. data/spec/unit/alf-relvar/base/test_insert.rb +3 -3
  130. data/spec/unit/alf-relvar/base/test_keys.rb +2 -2
  131. data/spec/unit/alf-relvar/base/test_lock.rb +2 -2
  132. data/spec/unit/alf-relvar/base/test_name.rb +3 -2
  133. data/spec/unit/alf-relvar/base/test_oo_lang.rb +2 -1
  134. data/spec/unit/alf-relvar/base/test_to_cog.rb +3 -3
  135. data/spec/unit/alf-relvar/base/test_to_lispy.rb +3 -2
  136. data/spec/unit/alf-relvar/base/test_to_relvar.rb +2 -1
  137. data/spec/unit/alf-relvar/base/test_to_s.rb +3 -2
  138. data/spec/unit/alf-relvar/base/test_update.rb +5 -4
  139. data/spec/unit/alf-relvar/virtual/test_connection.rb +3 -2
  140. data/spec/unit/alf-relvar/virtual/test_delete.rb +3 -4
  141. data/spec/unit/alf-relvar/virtual/test_expr.rb +3 -2
  142. data/spec/unit/alf-relvar/virtual/test_heading.rb +5 -4
  143. data/spec/unit/alf-relvar/virtual/test_insert.rb +2 -2
  144. data/spec/unit/alf-relvar/virtual/test_keys.rb +5 -4
  145. data/spec/unit/alf-relvar/virtual/test_oo_lang.rb +7 -2
  146. data/spec/unit/alf-relvar/virtual/test_to_cog.rb +4 -3
  147. data/spec/unit/alf-relvar/virtual/test_to_lispy.rb +3 -6
  148. data/spec/unit/alf-relvar/virtual/test_to_relvar.rb +2 -1
  149. data/spec/unit/alf-relvar/virtual/test_to_s.rb +3 -3
  150. data/spec/unit/alf-relvar/virtual/test_update.rb +4 -5
  151. data/spec/unit/alf-support/config/test_dup.rb +58 -0
  152. data/spec/unit/alf-support/config/test_freeze.rb +37 -0
  153. data/spec/unit/alf-support/config/test_hash_get.rb +41 -0
  154. data/spec/unit/alf-support/config/test_hash_set.rb +61 -0
  155. data/spec/unit/alf-support/config/test_new.rb +10 -0
  156. data/spec/unit/alf-support/config/test_option.rb +15 -0
  157. data/spec/unit/alf-support/config/test_option_setter.rb +72 -0
  158. data/spec/unit/alf-support/config/test_options.rb +22 -0
  159. data/spec/unit/alf-support/tuple_scope/test_hash_get.rb +20 -0
  160. data/spec/unit/alf-support/tuple_scope/test_respond_to.rb +6 -0
  161. data/spec/unit/alf-support/tuple_scope/test_to_s.rb +22 -0
  162. data/spec/unit/alf-types/keys/test_select.rb +57 -8
  163. data/spec/unit/alf-types/ordering/test_coerce.rb +46 -35
  164. data/spec/unit/alf-types/ordering/test_dive.rb +41 -0
  165. data/spec/unit/alf-types/ordering/test_hash_get.rb +20 -0
  166. data/spec/unit/alf-types/ordering/test_merge.rb +61 -0
  167. data/spec/unit/alf-types/ordering/test_reverse.rb +40 -0
  168. data/spec/unit/alf-types/ordering/test_selectors.rb +24 -0
  169. data/spec/unit/alf-types/ordering/test_sorter.rb +62 -8
  170. data/spec/unit/alf-types/ordering/test_to_attr_list.rb +16 -4
  171. data/spec/unit/alf-types/ordering/test_total.rb +56 -0
  172. data/spec/unit/alf-types/selection/test_coerce.rb +38 -0
  173. data/spec/unit/alf-types/selection/test_select.rb +34 -0
  174. data/spec/unit/alf-types/selector/test_coerce.rb +36 -0
  175. data/spec/unit/alf-types/selector/test_composite_q.rb +20 -0
  176. data/spec/unit/alf-types/selector/test_dive.rb +32 -0
  177. data/spec/unit/alf-types/selector/test_select.rb +40 -0
  178. data/spec/unit/alf-types/selector/test_simple_q.rb +20 -0
  179. data/spec/unit/alf-types/selector/test_to_a.rb +20 -0
  180. data/spec/unit/alf-types/selector/test_to_lispy.rb +20 -0
  181. data/spec/unit/alf-types/selector/test_to_ruby_literal.rb +20 -0
  182. data/spec/unit/alf-types/tuple_expression/test_evaluate.rb +38 -0
  183. data/spec/unit/alf-viewpoint/metadata/test_add_members.rb +38 -0
  184. data/spec/unit/alf-viewpoint/metadata/test_all_members.rb +33 -0
  185. data/spec/unit/alf-viewpoint/metadata/test_depends.rb +50 -0
  186. data/spec/unit/alf-viewpoint/metadata/test_dup.rb +32 -0
  187. data/spec/unit/alf-viewpoint/metadata/test_expand.rb +31 -0
  188. data/spec/unit/alf-viewpoint/metadata/test_expects.rb +38 -0
  189. data/spec/unit/alf-viewpoint/metadata/test_initialize.rb +40 -0
  190. data/spec/unit/alf-viewpoint/metadata/test_to_module.rb +37 -0
  191. data/spec/unit/alf-viewpoint/test_depends.rb +18 -0
  192. data/spec/unit/alf-viewpoint/test_expects.rb +18 -0
  193. data/spec/unit/alf-viewpoint/test_members.rb +33 -0
  194. data/spec/unit/alf-viewpoint/test_metadata.rb +27 -0
  195. data/spec/unit/alf-viewpoint/test_native_const.rb +6 -0
  196. metadata +125 -14
  197. data/spec/unit/alf-database/options/test_default_viewpoint.rb +0 -25
  198. data/spec/unit/alf-types/keys/test_compact.rb +0 -21
  199. data/spec/unit/alf-types/ordering/test_plus.rb +0 -27
  200. data/spec/unit/alf-viewpoint/test_namespace.rb +0 -23
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ module Viewpoint
4
+ describe Metadata, "all_members" do
5
+
6
+ let(:metadata) do
7
+ @base = base = viewpoint{ native :base }
8
+ @user = user = viewpoint{ expects(base); native :user }
9
+ @util1 = util1 = viewpoint{ expects(base); depends(:user, user) }
10
+ @util2 = util2 = viewpoint{ expects(util1); depends(:user, user) }
11
+ @term = viewpoint{ expects(util2) }
12
+ @term.metadata
13
+ end
14
+
15
+ before do
16
+ metadata
17
+ end
18
+
19
+ context 'on base' do
20
+ subject{ @base.metadata.all_members }
21
+
22
+ it{ should eq([:base]) }
23
+ end
24
+
25
+ context 'on user' do
26
+ subject{ @user.metadata.all_members }
27
+
28
+ it{ should eq([:base, :user]) }
29
+ end
30
+
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ module Viewpoint
4
+ describe Metadata, "#depends" do
5
+
6
+ context 'on empty dependencies' do
7
+ let(:metadata){ Metadata.new }
8
+
9
+ subject{ metadata.depends(a: [1, 2]) }
10
+
11
+ it 'sets dependencies' do
12
+ subject.dependencies.should eq(a: [1, 2])
13
+ end
14
+ end
15
+
16
+ context 'on disjoint dependencies' do
17
+ let(:metadata){ Metadata.new([], a: [1, 2]) }
18
+
19
+ subject{ metadata.depends(b: [3, 4]) }
20
+
21
+ it 'sets dependencies' do
22
+ subject.dependencies.should eq(a: [1, 2], b: [3, 4])
23
+ end
24
+ end
25
+
26
+ context 'on overlapping, non-conlictual dependencies' do
27
+ let(:metadata){ Metadata.new([], a: [1, 2], b: [3, 4]) }
28
+
29
+ subject{ metadata.depends(a: [1, 2], c: [5, 6]) }
30
+
31
+ it 'sets dependencies' do
32
+ subject.dependencies.should eq(a: [1, 2], b: [3, 4], c: [5, 6])
33
+ end
34
+ end
35
+
36
+ context 'on overlapping, conlictual dependencies' do
37
+ let(:metadata){ Metadata.new([], a: [1, 2]) }
38
+
39
+ subject{ metadata.depends(a: [1, 3]) }
40
+
41
+ it 'raises an error' do
42
+ lambda{
43
+ subject
44
+ }.should raise_error("Composition conflict on `a`: [1, 2] vs. [1, 3]")
45
+ end
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ module Viewpoint
4
+ describe Metadata, "#dup" do
5
+
6
+ let(:metadata){ Metadata.new([1, 2], {a: [3, 4]}, [:m]) }
7
+
8
+ subject{ metadata.dup }
9
+
10
+ it 'should be a different Metadata' do
11
+ subject.should be_a(Metadata)
12
+ subject.should_not be(metadata)
13
+ end
14
+
15
+ it 'should have different yet equal expectations' do
16
+ subject.expectations.should_not be(metadata.expectations)
17
+ subject.expectations.should eq(metadata.expectations)
18
+ end
19
+
20
+ it 'should have different yet equal dependencies' do
21
+ subject.dependencies.should_not be(metadata.dependencies)
22
+ subject.dependencies.should eq(metadata.dependencies)
23
+ end
24
+
25
+ it 'should have different yet equal members' do
26
+ subject.members.should_not be(metadata.members)
27
+ subject.members.should eq(metadata.members)
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ module Viewpoint
4
+ describe Metadata, ".reduce" do
5
+
6
+ subject{ metadata.expand }
7
+
8
+ let(:metadata) do
9
+ @base = base = viewpoint{ }
10
+ @user = user = viewpoint{ expects(base) }
11
+ @util1 = util1 = viewpoint{ expects(base); depends(:user, user) }
12
+ @util2 = util2 = viewpoint{ expects(util1); depends(:user, user) }
13
+ @term = viewpoint{ expects(util2) }
14
+ @term.metadata
15
+ end
16
+
17
+ it 'should be a Metadata' do
18
+ subject.should be_a(Metadata)
19
+ end
20
+
21
+ it 'should have expected expectations' do
22
+ subject.expectations.should eq([ @base, @util1, @util2 ])
23
+ end
24
+
25
+ it 'should have expected dependencies' do
26
+ subject.dependencies.should eq(user: [ @user ])
27
+ end
28
+
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ module Viewpoint
4
+ describe Metadata, "#expects" do
5
+
6
+ context 'on empty expectations' do
7
+ let(:metadata){ Metadata.new }
8
+
9
+ subject{ metadata.expects([1, 2]) }
10
+
11
+ it 'sets expectations' do
12
+ subject.expectations.should eq([1, 2])
13
+ end
14
+ end
15
+
16
+ context 'on disjoint expectations' do
17
+ let(:metadata){ Metadata.new([1, 2]) }
18
+
19
+ subject{ metadata.expects([3, 4]) }
20
+
21
+ it 'sets expectations' do
22
+ subject.expectations.should eq([1, 2, 3, 4])
23
+ end
24
+ end
25
+
26
+ context 'on overlapping expectations' do
27
+ let(:metadata){ Metadata.new([1, 2]) }
28
+
29
+ subject{ metadata.expects([1, 4]) }
30
+
31
+ it 'sets expectations' do
32
+ subject.expectations.should eq([1, 2, 4])
33
+ end
34
+ end
35
+
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ module Viewpoint
4
+ describe Metadata, "#initialize" do
5
+
6
+ context 'without args' do
7
+ subject{ Metadata.new }
8
+
9
+ it 'has empty expectations' do
10
+ subject.expectations.should eq([])
11
+ end
12
+
13
+ it 'has empty dependencies' do
14
+ subject.dependencies.should eq({})
15
+ end
16
+
17
+ it 'has empty members' do
18
+ subject.members.should eq([])
19
+ end
20
+ end
21
+
22
+ context 'with args' do
23
+ subject{ Metadata.new([1], {:a => 2}, [:m]) }
24
+
25
+ it 'has expected expectations' do
26
+ subject.expectations.should eq([1])
27
+ end
28
+
29
+ it 'has expected dependencies' do
30
+ subject.dependencies.should eq({:a => 2})
31
+ end
32
+
33
+ it 'has expected members' do
34
+ subject.members.should eq([:m])
35
+ end
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ module Viewpoint
4
+ describe Metadata, "#to_module" do
5
+
6
+ subject{ metadata.to_module }
7
+
8
+ let(:metadata) do
9
+ @base = base = viewpoint{ }
10
+ @user = user = viewpoint{ expects(base) }
11
+ @util1 = util = viewpoint{ expects(base); depends(:user, user) }
12
+ @util2 = viewpoint{ expects(base); depends(:user, user) }
13
+ @term = viewpoint{ expects(util) }
14
+ @term.metadata
15
+ end
16
+
17
+ it 'should be a Module' do
18
+ subject.should be_a(Module)
19
+ end
20
+
21
+ it 'should include Alf::Viewpoint' do
22
+ subject.should include(Alf::Viewpoint)
23
+ end
24
+
25
+ it 'should include util1' do
26
+ subject.should include(@util1)
27
+ end
28
+
29
+ it 'should have a user method' do
30
+ lambda{
31
+ subject.parser.user
32
+ }.should_not raise_error
33
+ end
34
+
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ describe Viewpoint, "depends" do
4
+
5
+ let(:viewpoint){
6
+ Module.new{
7
+ include Viewpoint
8
+ depends :a, 1, 2
9
+ depends :b, 3, 4
10
+ }
11
+ }
12
+
13
+ it 'populates metadata' do
14
+ viewpoint.metadata.dependencies.should eq(a: [1, 2], b: [3, 4])
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ describe Viewpoint, "expects" do
4
+
5
+ let(:viewpoint){
6
+ Module.new{
7
+ include Viewpoint
8
+ expects 1, 2
9
+ expects 3
10
+ }
11
+ }
12
+
13
+ it 'populates metadata' do
14
+ viewpoint.metadata.expectations.should eq([1, 2, 3])
15
+ end
16
+
17
+ end
18
+ end
@@ -12,6 +12,9 @@ module Alf
12
12
  def restricted
13
13
  restrict(a_native_one, id: 1)
14
14
  end
15
+ private
16
+ def a_private_member
17
+ end
15
18
  }
16
19
  }
17
20
 
@@ -20,5 +23,35 @@ module Alf
20
23
  end
21
24
  end
22
25
 
26
+ context 'on a viewpoint with expectations' do
27
+ let(:viewpoint){
28
+ base = Module.new{
29
+ include Alf::Viewpoint
30
+ native :a_member
31
+ native :another_member
32
+ private
33
+ def a_private_member
34
+ end
35
+ }
36
+ Module.new{
37
+ include Alf::Viewpoint
38
+ expects base
39
+ def a_member
40
+ restrict(super, foo: true)
41
+ end
42
+ def yet_another_one
43
+ bar
44
+ end
45
+ private
46
+ def another_private
47
+ end
48
+ }
49
+ }
50
+
51
+ it 'should have inherited members' do
52
+ subject.should eq([:a_member, :another_member, :yet_another_one])
53
+ end
54
+ end
55
+
23
56
  end
24
57
  end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+ module Alf
3
+ describe Viewpoint, "metadata" do
4
+
5
+ subject{ viewpoint.metadata }
6
+
7
+ let(:viewpoint){
8
+ Module.new{
9
+ include Viewpoint
10
+ }
11
+ }
12
+
13
+ it 'should be a Metadata instance' do
14
+ subject.should be_a(Viewpoint::Metadata)
15
+ end
16
+
17
+ it 'should always be the same on the same viewpoint' do
18
+ subject.should be(viewpoint.metadata)
19
+ end
20
+
21
+ it 'should be different that metadata from other viewpoints' do
22
+ other = Module.new{ include Viewpoint }
23
+ subject.should_not be(other.metadata)
24
+ end
25
+
26
+ end
27
+ end
@@ -12,5 +12,11 @@ module Alf
12
12
  }.should be_a(Algebra::Operand::Named)
13
13
  end
14
14
 
15
+ it 'should allow being used in a Lispy' do
16
+ Lang::Lispy.new([subject]).parse{
17
+ suppliers
18
+ }.should be_a(Algebra::Operand::Named)
19
+ end
20
+
15
21
  end
16
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alf-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.14.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-05 00:00:00.000000000 Z
12
+ date: 2013-10-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -205,6 +205,7 @@ files:
205
205
  - examples/operators/minus.alf
206
206
  - examples/operators/not_matching.alf
207
207
  - examples/operators/nulls.rash
208
+ - examples/operators/page.alf
208
209
  - examples/operators/parts.rash
209
210
  - examples/operators/project.alf
210
211
  - examples/operators/pseudo-with.alf
@@ -252,14 +253,17 @@ files:
252
253
  - lib/alf-algebra/alf/algebra/operator/compact.rb
253
254
  - lib/alf-algebra/alf/algebra/operator/defaults.rb
254
255
  - lib/alf-algebra/alf/algebra/operator/extend.rb
256
+ - lib/alf-algebra/alf/algebra/operator/frame.rb
255
257
  - lib/alf-algebra/alf/algebra/operator/generator.rb
256
258
  - lib/alf-algebra/alf/algebra/operator/group.rb
259
+ - lib/alf-algebra/alf/algebra/operator/hierarchize.rb
257
260
  - lib/alf-algebra/alf/algebra/operator/infer_heading.rb
258
261
  - lib/alf-algebra/alf/algebra/operator/intersect.rb
259
262
  - lib/alf-algebra/alf/algebra/operator/join.rb
260
263
  - lib/alf-algebra/alf/algebra/operator/matching.rb
261
264
  - lib/alf-algebra/alf/algebra/operator/minus.rb
262
265
  - lib/alf-algebra/alf/algebra/operator/not_matching.rb
266
+ - lib/alf-algebra/alf/algebra/operator/page.rb
263
267
  - lib/alf-algebra/alf/algebra/operator/project.rb
264
268
  - lib/alf-algebra/alf/algebra/operator/quota.rb
265
269
  - lib/alf-algebra/alf/algebra/operator/rank.rb
@@ -285,6 +289,7 @@ files:
285
289
  - lib/alf-algebra/alf/algebra/support/to_dot.rb
286
290
  - lib/alf-algebra/alf/algebra/support/unary.rb
287
291
  - lib/alf-algebra/alf/algebra/support/visitor.rb
292
+ - lib/alf-algebra/alf/algebra/support/with_ordering.rb
288
293
  - lib/alf-algebra/alf/algebra/support.rb
289
294
  - lib/alf-algebra/alf/algebra.rb
290
295
  - lib/alf-core/dsl.rb
@@ -300,7 +305,6 @@ files:
300
305
  - lib/alf-database/alf/database.rb
301
306
  - lib/alf-engine/alf/engine/aggregate.rb
302
307
  - lib/alf-engine/alf/engine/autonum.rb
303
- - lib/alf-engine/alf/engine/cesure.rb
304
308
  - lib/alf-engine/alf/engine/clip.rb
305
309
  - lib/alf-engine/alf/engine/coerce.rb
306
310
  - lib/alf-engine/alf/engine/cog.rb
@@ -314,6 +318,7 @@ files:
314
318
  - lib/alf-engine/alf/engine/generator.rb
315
319
  - lib/alf-engine/alf/engine/group/hash.rb
316
320
  - lib/alf-engine/alf/engine/group.rb
321
+ - lib/alf-engine/alf/engine/hierarchize.rb
317
322
  - lib/alf-engine/alf/engine/infer_heading.rb
318
323
  - lib/alf-engine/alf/engine/join/hash.rb
319
324
  - lib/alf-engine/alf/engine/join.rb
@@ -334,6 +339,8 @@ files:
334
339
  - lib/alf-engine/alf/engine/summarize/cesure.rb
335
340
  - lib/alf-engine/alf/engine/summarize/hash.rb
336
341
  - lib/alf-engine/alf/engine/summarize.rb
342
+ - lib/alf-engine/alf/engine/support/cesure.rb
343
+ - lib/alf-engine/alf/engine/take.rb
337
344
  - lib/alf-engine/alf/engine/to_array.rb
338
345
  - lib/alf-engine/alf/engine/to_dot.rb
339
346
  - lib/alf-engine/alf/engine/type_safe.rb
@@ -345,6 +352,7 @@ files:
345
352
  - lib/alf-io/alf/reader/csv.rb
346
353
  - lib/alf-io/alf/reader/json.rb
347
354
  - lib/alf-io/alf/reader/rash.rb
355
+ - lib/alf-io/alf/reader/ruby.rb
348
356
  - lib/alf-io/alf/reader.rb
349
357
  - lib/alf-io/alf/renderer/csv.rb
350
358
  - lib/alf-io/alf/renderer/json.rb
@@ -416,6 +424,8 @@ files:
416
424
  - lib/alf-types/alf/types/keys.rb
417
425
  - lib/alf-types/alf/types/ordering.rb
418
426
  - lib/alf-types/alf/types/renaming.rb
427
+ - lib/alf-types/alf/types/selection.rb
428
+ - lib/alf-types/alf/types/selector.rb
419
429
  - lib/alf-types/alf/types/size.rb
420
430
  - lib/alf-types/alf/types/summarization.rb
421
431
  - lib/alf-types/alf/types/tuple_computation.rb
@@ -426,6 +436,7 @@ files:
426
436
  - lib/alf-update/alf/update/inserter.rb
427
437
  - lib/alf-update/alf/update/updater.rb
428
438
  - lib/alf-update/alf/update.rb
439
+ - lib/alf-viewpoint/alf/viewpoint/metadata.rb
429
440
  - lib/alf-viewpoint/alf/viewpoint.rb
430
441
  - tasks/clean.rake
431
442
  - tasks/gem.rake
@@ -449,6 +460,7 @@ files:
449
460
  - spec/integration/__database__/supplies.rash
450
461
  - spec/integration/algebra/test_to_dot.rb
451
462
  - spec/integration/ext/test_relation.rb
463
+ - spec/integration/relation/test_extend.rb
452
464
  - spec/integration/relation/test_to_array.rb
453
465
  - spec/integration/relvar/test_type_safe.rb
454
466
  - spec/integration/test_alf.rb
@@ -460,6 +472,7 @@ files:
460
472
  - spec/regression/relation/test_relation_with_date.rb
461
473
  - spec/regression/relation/test_restrict.rb
462
474
  - spec/regression/restrict/test_restrict_with_keywords.rb
475
+ - spec/shared/a_cog.rb
463
476
  - spec/shared/a_scope.rb
464
477
  - spec/shared/a_valid_type_implementation.rb
465
478
  - spec/shared/a_value.rb
@@ -492,6 +505,7 @@ files:
492
505
  - spec/unit/alf-algebra/operand/named/test_keys.rb
493
506
  - spec/unit/alf-algebra/operand/named/test_to_relvar.rb
494
507
  - spec/unit/alf-algebra/operand/test_coerce.rb
508
+ - spec/unit/alf-algebra/operand/test_proxy.rb
495
509
  - spec/unit/alf-algebra/operator/allbut/test_key_preserving.rb
496
510
  - spec/unit/alf-algebra/operator/allbut/test_keys.rb
497
511
  - spec/unit/alf-algebra/operator/autonum/test_heading.rb
@@ -511,6 +525,7 @@ files:
511
525
  - spec/unit/alf-algebra/operator/generator/test_keys.rb
512
526
  - spec/unit/alf-algebra/operator/group/test_heading.rb
513
527
  - spec/unit/alf-algebra/operator/group/test_keys.rb
528
+ - spec/unit/alf-algebra/operator/hierarchize/test_heading.rb
514
529
  - spec/unit/alf-algebra/operator/infer_heading/test_keys.rb
515
530
  - spec/unit/alf-algebra/operator/intersect/test_heading.rb
516
531
  - spec/unit/alf-algebra/operator/intersect/test_keys.rb
@@ -550,6 +565,7 @@ files:
550
565
  - spec/unit/alf-algebra/operator/test_intersect.rb
551
566
  - spec/unit/alf-algebra/operator/test_join.rb
552
567
  - spec/unit/alf-algebra/operator/test_minus.rb
568
+ - spec/unit/alf-algebra/operator/test_page.rb
553
569
  - spec/unit/alf-algebra/operator/test_project.rb
554
570
  - spec/unit/alf-algebra/operator/test_quota.rb
555
571
  - spec/unit/alf-algebra/operator/test_rank.rb
@@ -582,6 +598,7 @@ files:
582
598
  - spec/unit/alf-algebra/support/test_non_relational.rb
583
599
  - spec/unit/alf-algebra/support/test_relational.rb
584
600
  - spec/unit/alf-algebra/support/unary/test_with_operand.rb
601
+ - spec/unit/alf-algebra/support/with_ordering/test_total_ordering.rb
585
602
  - spec/unit/alf-algebra/test_operator.rb
586
603
  - spec/unit/alf-algebra/test_rewriter.rb
587
604
  - spec/unit/alf-core/alf/example.rash
@@ -611,16 +628,21 @@ files:
611
628
  - spec/unit/alf-database/database/test_connection.rb
612
629
  - spec/unit/alf-database/database/test_default_options.rb
613
630
  - spec/unit/alf-database/database/test_new.rb
614
- - spec/unit/alf-database/options/test_default_viewpoint.rb
615
631
  - spec/unit/alf-database/options/test_freeze.rb
616
632
  - spec/unit/alf-database/options/test_merge.rb
617
633
  - spec/unit/alf-database/options/test_new.rb
618
634
  - spec/unit/alf-database/options/test_schema_cache.rb
619
635
  - spec/unit/alf-database/options/test_viewpoint.rb
620
636
  - spec/unit/alf-database/shared_examples/a_facade_on_database_options.rb
637
+ - spec/unit/alf-engine/cog/test_to_cog.rb
621
638
  - spec/unit/alf-engine/compact/test_set.rb
622
639
  - spec/unit/alf-engine/compact/test_uniq.rb
640
+ - spec/unit/alf-engine/compiler/test_on_frame.rb
641
+ - spec/unit/alf-engine/compiler/test_on_hierarchize.rb
642
+ - spec/unit/alf-engine/compiler/test_on_page.rb
643
+ - spec/unit/alf-engine/compiler/test_unsupported.rb
623
644
  - spec/unit/alf-engine/group/test_hash.rb
645
+ - spec/unit/alf-engine/hierarchize/test_renamer.rb
624
646
  - spec/unit/alf-engine/infer_heading/test_heading.rb
625
647
  - spec/unit/alf-engine/join/test_hash.rb
626
648
  - spec/unit/alf-engine/materialize/test_array.rb
@@ -640,10 +662,12 @@ files:
640
662
  - spec/unit/alf-engine/test_defaults.rb
641
663
  - spec/unit/alf-engine/test_filter.rb
642
664
  - spec/unit/alf-engine/test_generator.rb
665
+ - spec/unit/alf-engine/test_hierarchize.rb
643
666
  - spec/unit/alf-engine/test_infer_heading.rb
644
667
  - spec/unit/alf-engine/test_rename.rb
645
668
  - spec/unit/alf-engine/test_set_attr.rb
646
669
  - spec/unit/alf-engine/test_sort.rb
670
+ - spec/unit/alf-engine/test_take.rb
647
671
  - spec/unit/alf-engine/test_to_array.rb
648
672
  - spec/unit/alf-engine/test_type_safe.rb
649
673
  - spec/unit/alf-engine/test_ungroup.rb
@@ -651,11 +675,13 @@ files:
651
675
  - spec/unit/alf-engine/test_wrap.rb
652
676
  - spec/unit/alf-io/reader/class/test_by_mime_type.rb
653
677
  - spec/unit/alf-io/reader/input.csv
654
- - spec/unit/alf-io/reader/input.rb
678
+ - spec/unit/alf-io/reader/input.rash
679
+ - spec/unit/alf-io/reader/input.ruby
655
680
  - spec/unit/alf-io/reader/test_csv.rb
656
681
  - spec/unit/alf-io/reader/test_initialize.rb
657
682
  - spec/unit/alf-io/reader/test_json.rb
658
683
  - spec/unit/alf-io/reader/test_rash.rb
684
+ - spec/unit/alf-io/reader/test_ruby.rb
659
685
  - spec/unit/alf-io/renderer/class/test_by_mime_type.rb
660
686
  - spec/unit/alf-io/renderer/test_csv.rb
661
687
  - spec/unit/alf-io/renderer/test_initialize.rb
@@ -760,6 +786,7 @@ files:
760
786
  - spec/unit/alf-predicate/predicate/test_to_ruby_literal.rb
761
787
  - spec/unit/alf-predicate/test_predicate.rb
762
788
  - spec/unit/alf-relation/relation/class/test_coerce.rb
789
+ - spec/unit/alf-relation/relation/class/test_recursive_type.rb
763
790
  - spec/unit/alf-relation/relation/class/test_type.rb
764
791
  - spec/unit/alf-relation/relation/factored-types/test_allbut.rb
765
792
  - spec/unit/alf-relation/relation/factored-types/test_coerce.rb
@@ -779,6 +806,7 @@ files:
779
806
  - spec/unit/alf-relation/relation/test_relops.rb
780
807
  - spec/unit/alf-relation/relation/test_sugar.rb
781
808
  - spec/unit/alf-relation/relation/test_to_a.rb
809
+ - spec/unit/alf-relation/relation/test_to_hash.rb
782
810
  - spec/unit/alf-relation/relation/test_to_relation.rb
783
811
  - spec/unit/alf-relation/tuple/class/test_coerce.rb
784
812
  - spec/unit/alf-relation/tuple/class/test_type.rb
@@ -840,10 +868,16 @@ files:
840
868
  - spec/unit/alf-support/bindable/test_bound.rb
841
869
  - spec/unit/alf-support/bindable/test_connection.rb
842
870
  - spec/unit/alf-support/bindable/test_connection_bang.rb
871
+ - spec/unit/alf-support/config/test_dup.rb
872
+ - spec/unit/alf-support/config/test_freeze.rb
873
+ - spec/unit/alf-support/config/test_hash_get.rb
874
+ - spec/unit/alf-support/config/test_hash_set.rb
843
875
  - spec/unit/alf-support/config/test_helpers.rb
844
876
  - spec/unit/alf-support/config/test_merge.rb
845
877
  - spec/unit/alf-support/config/test_new.rb
846
878
  - spec/unit/alf-support/config/test_option.rb
879
+ - spec/unit/alf-support/config/test_option_setter.rb
880
+ - spec/unit/alf-support/config/test_options.rb
847
881
  - spec/unit/alf-support/scope/test_branch.rb
848
882
  - spec/unit/alf-support/scope/test_evaluate.rb
849
883
  - spec/unit/alf-support/scope/test_initialize.rb
@@ -860,7 +894,9 @@ files:
860
894
  - spec/unit/alf-support/test_tuple_scope.rb
861
895
  - spec/unit/alf-support/test_unsymbolize_keys.rb
862
896
  - spec/unit/alf-support/tuple_scope/test_evaluate.rb
897
+ - spec/unit/alf-support/tuple_scope/test_hash_get.rb
863
898
  - spec/unit/alf-support/tuple_scope/test_respond_to.rb
899
+ - spec/unit/alf-support/tuple_scope/test_to_s.rb
864
900
  - spec/unit/alf-types/attr_list/test_allbut.rb
865
901
  - spec/unit/alf-types/attr_list/test_ampersand.rb
866
902
  - spec/unit/alf-types/attr_list/test_coerce.rb
@@ -897,7 +933,6 @@ files:
897
933
  - spec/unit/alf-types/keys/test_ampersand.rb
898
934
  - spec/unit/alf-types/keys/test_any.rb
899
935
  - spec/unit/alf-types/keys/test_coerce.rb
900
- - spec/unit/alf-types/keys/test_compact.rb
901
936
  - spec/unit/alf-types/keys/test_empty.rb
902
937
  - spec/unit/alf-types/keys/test_first.rb
903
938
  - spec/unit/alf-types/keys/test_hash_and_equal.rb
@@ -910,15 +945,30 @@ files:
910
945
  - spec/unit/alf-types/keys/test_select.rb
911
946
  - spec/unit/alf-types/ordering/test_coerce.rb
912
947
  - spec/unit/alf-types/ordering/test_compare.rb
913
- - spec/unit/alf-types/ordering/test_plus.rb
948
+ - spec/unit/alf-types/ordering/test_dive.rb
949
+ - spec/unit/alf-types/ordering/test_hash_get.rb
950
+ - spec/unit/alf-types/ordering/test_merge.rb
951
+ - spec/unit/alf-types/ordering/test_reverse.rb
952
+ - spec/unit/alf-types/ordering/test_selectors.rb
914
953
  - spec/unit/alf-types/ordering/test_sorter.rb
915
954
  - spec/unit/alf-types/ordering/test_to_attr_list.rb
955
+ - spec/unit/alf-types/ordering/test_total.rb
916
956
  - spec/unit/alf-types/renaming/test_coerce.rb
917
957
  - spec/unit/alf-types/renaming/test_complete.rb
918
958
  - spec/unit/alf-types/renaming/test_invert.rb
919
959
  - spec/unit/alf-types/renaming/test_rename_attr_list.rb
920
960
  - spec/unit/alf-types/renaming/test_rename_tuple.rb
921
961
  - spec/unit/alf-types/renaming/test_to_attr_list.rb
962
+ - spec/unit/alf-types/selection/test_coerce.rb
963
+ - spec/unit/alf-types/selection/test_select.rb
964
+ - spec/unit/alf-types/selector/test_coerce.rb
965
+ - spec/unit/alf-types/selector/test_composite_q.rb
966
+ - spec/unit/alf-types/selector/test_dive.rb
967
+ - spec/unit/alf-types/selector/test_select.rb
968
+ - spec/unit/alf-types/selector/test_simple_q.rb
969
+ - spec/unit/alf-types/selector/test_to_a.rb
970
+ - spec/unit/alf-types/selector/test_to_lispy.rb
971
+ - spec/unit/alf-types/selector/test_to_ruby_literal.rb
922
972
  - spec/unit/alf-types/size/test_coerce.rb
923
973
  - spec/unit/alf-types/size/test_triple_equal.rb
924
974
  - spec/unit/alf-types/summarization/test_coerce.rb
@@ -936,6 +986,7 @@ files:
936
986
  - spec/unit/alf-types/tuple_computation/test_to_attr_list.rb
937
987
  - spec/unit/alf-types/tuple_computation/test_to_heading.rb
938
988
  - spec/unit/alf-types/tuple_expression/test_coerce.rb
989
+ - spec/unit/alf-types/tuple_expression/test_evaluate.rb
939
990
  - spec/unit/alf-types/tuple_expression/test_to_ruby_literal.rb
940
991
  - spec/unit/alf-types/type_check/test_triple_equal.rb
941
992
  - spec/unit/alf-update/deleter/test_autonum.rb
@@ -972,8 +1023,18 @@ files:
972
1023
  - spec/unit/alf-update/inserter/test_var_ref.rb
973
1024
  - spec/unit/alf-update/inserter/test_wrap.rb
974
1025
  - spec/unit/alf-update/updater/test_var_ref.rb
1026
+ - spec/unit/alf-viewpoint/metadata/test_add_members.rb
1027
+ - spec/unit/alf-viewpoint/metadata/test_all_members.rb
1028
+ - spec/unit/alf-viewpoint/metadata/test_depends.rb
1029
+ - spec/unit/alf-viewpoint/metadata/test_dup.rb
1030
+ - spec/unit/alf-viewpoint/metadata/test_expand.rb
1031
+ - spec/unit/alf-viewpoint/metadata/test_expects.rb
1032
+ - spec/unit/alf-viewpoint/metadata/test_initialize.rb
1033
+ - spec/unit/alf-viewpoint/metadata/test_to_module.rb
1034
+ - spec/unit/alf-viewpoint/test_depends.rb
1035
+ - spec/unit/alf-viewpoint/test_expects.rb
975
1036
  - spec/unit/alf-viewpoint/test_members.rb
976
- - spec/unit/alf-viewpoint/test_namespace.rb
1037
+ - spec/unit/alf-viewpoint/test_metadata.rb
977
1038
  - spec/unit/alf-viewpoint/test_native.rb
978
1039
  - spec/unit/alf-viewpoint/test_native_const.rb
979
1040
  - spec/unit/alf-viewpoint/test_parse.rb
@@ -993,7 +1054,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
993
1054
  version: '0'
994
1055
  segments:
995
1056
  - 0
996
- hash: -3410216638395775327
1057
+ hash: 4082088345707548282
997
1058
  required_rubygems_version: !ruby/object:Gem::Requirement
998
1059
  none: false
999
1060
  requirements:
@@ -1014,6 +1075,7 @@ test_files:
1014
1075
  - spec/integration/__database__/supplies.rash
1015
1076
  - spec/integration/algebra/test_to_dot.rb
1016
1077
  - spec/integration/ext/test_relation.rb
1078
+ - spec/integration/relation/test_extend.rb
1017
1079
  - spec/integration/relation/test_to_array.rb
1018
1080
  - spec/integration/relvar/test_type_safe.rb
1019
1081
  - spec/integration/test_alf.rb
@@ -1025,6 +1087,7 @@ test_files:
1025
1087
  - spec/regression/relation/test_relation_with_date.rb
1026
1088
  - spec/regression/relation/test_restrict.rb
1027
1089
  - spec/regression/restrict/test_restrict_with_keywords.rb
1090
+ - spec/shared/a_cog.rb
1028
1091
  - spec/shared/a_scope.rb
1029
1092
  - spec/shared/a_valid_type_implementation.rb
1030
1093
  - spec/shared/a_value.rb
@@ -1057,6 +1120,7 @@ test_files:
1057
1120
  - spec/unit/alf-algebra/operand/named/test_keys.rb
1058
1121
  - spec/unit/alf-algebra/operand/named/test_to_relvar.rb
1059
1122
  - spec/unit/alf-algebra/operand/test_coerce.rb
1123
+ - spec/unit/alf-algebra/operand/test_proxy.rb
1060
1124
  - spec/unit/alf-algebra/operator/allbut/test_key_preserving.rb
1061
1125
  - spec/unit/alf-algebra/operator/allbut/test_keys.rb
1062
1126
  - spec/unit/alf-algebra/operator/autonum/test_heading.rb
@@ -1076,6 +1140,7 @@ test_files:
1076
1140
  - spec/unit/alf-algebra/operator/generator/test_keys.rb
1077
1141
  - spec/unit/alf-algebra/operator/group/test_heading.rb
1078
1142
  - spec/unit/alf-algebra/operator/group/test_keys.rb
1143
+ - spec/unit/alf-algebra/operator/hierarchize/test_heading.rb
1079
1144
  - spec/unit/alf-algebra/operator/infer_heading/test_keys.rb
1080
1145
  - spec/unit/alf-algebra/operator/intersect/test_heading.rb
1081
1146
  - spec/unit/alf-algebra/operator/intersect/test_keys.rb
@@ -1115,6 +1180,7 @@ test_files:
1115
1180
  - spec/unit/alf-algebra/operator/test_intersect.rb
1116
1181
  - spec/unit/alf-algebra/operator/test_join.rb
1117
1182
  - spec/unit/alf-algebra/operator/test_minus.rb
1183
+ - spec/unit/alf-algebra/operator/test_page.rb
1118
1184
  - spec/unit/alf-algebra/operator/test_project.rb
1119
1185
  - spec/unit/alf-algebra/operator/test_quota.rb
1120
1186
  - spec/unit/alf-algebra/operator/test_rank.rb
@@ -1147,6 +1213,7 @@ test_files:
1147
1213
  - spec/unit/alf-algebra/support/test_non_relational.rb
1148
1214
  - spec/unit/alf-algebra/support/test_relational.rb
1149
1215
  - spec/unit/alf-algebra/support/unary/test_with_operand.rb
1216
+ - spec/unit/alf-algebra/support/with_ordering/test_total_ordering.rb
1150
1217
  - spec/unit/alf-algebra/test_operator.rb
1151
1218
  - spec/unit/alf-algebra/test_rewriter.rb
1152
1219
  - spec/unit/alf-core/alf/example.rash
@@ -1176,16 +1243,21 @@ test_files:
1176
1243
  - spec/unit/alf-database/database/test_connection.rb
1177
1244
  - spec/unit/alf-database/database/test_default_options.rb
1178
1245
  - spec/unit/alf-database/database/test_new.rb
1179
- - spec/unit/alf-database/options/test_default_viewpoint.rb
1180
1246
  - spec/unit/alf-database/options/test_freeze.rb
1181
1247
  - spec/unit/alf-database/options/test_merge.rb
1182
1248
  - spec/unit/alf-database/options/test_new.rb
1183
1249
  - spec/unit/alf-database/options/test_schema_cache.rb
1184
1250
  - spec/unit/alf-database/options/test_viewpoint.rb
1185
1251
  - spec/unit/alf-database/shared_examples/a_facade_on_database_options.rb
1252
+ - spec/unit/alf-engine/cog/test_to_cog.rb
1186
1253
  - spec/unit/alf-engine/compact/test_set.rb
1187
1254
  - spec/unit/alf-engine/compact/test_uniq.rb
1255
+ - spec/unit/alf-engine/compiler/test_on_frame.rb
1256
+ - spec/unit/alf-engine/compiler/test_on_hierarchize.rb
1257
+ - spec/unit/alf-engine/compiler/test_on_page.rb
1258
+ - spec/unit/alf-engine/compiler/test_unsupported.rb
1188
1259
  - spec/unit/alf-engine/group/test_hash.rb
1260
+ - spec/unit/alf-engine/hierarchize/test_renamer.rb
1189
1261
  - spec/unit/alf-engine/infer_heading/test_heading.rb
1190
1262
  - spec/unit/alf-engine/join/test_hash.rb
1191
1263
  - spec/unit/alf-engine/materialize/test_array.rb
@@ -1205,10 +1277,12 @@ test_files:
1205
1277
  - spec/unit/alf-engine/test_defaults.rb
1206
1278
  - spec/unit/alf-engine/test_filter.rb
1207
1279
  - spec/unit/alf-engine/test_generator.rb
1280
+ - spec/unit/alf-engine/test_hierarchize.rb
1208
1281
  - spec/unit/alf-engine/test_infer_heading.rb
1209
1282
  - spec/unit/alf-engine/test_rename.rb
1210
1283
  - spec/unit/alf-engine/test_set_attr.rb
1211
1284
  - spec/unit/alf-engine/test_sort.rb
1285
+ - spec/unit/alf-engine/test_take.rb
1212
1286
  - spec/unit/alf-engine/test_to_array.rb
1213
1287
  - spec/unit/alf-engine/test_type_safe.rb
1214
1288
  - spec/unit/alf-engine/test_ungroup.rb
@@ -1216,11 +1290,13 @@ test_files:
1216
1290
  - spec/unit/alf-engine/test_wrap.rb
1217
1291
  - spec/unit/alf-io/reader/class/test_by_mime_type.rb
1218
1292
  - spec/unit/alf-io/reader/input.csv
1219
- - spec/unit/alf-io/reader/input.rb
1293
+ - spec/unit/alf-io/reader/input.rash
1294
+ - spec/unit/alf-io/reader/input.ruby
1220
1295
  - spec/unit/alf-io/reader/test_csv.rb
1221
1296
  - spec/unit/alf-io/reader/test_initialize.rb
1222
1297
  - spec/unit/alf-io/reader/test_json.rb
1223
1298
  - spec/unit/alf-io/reader/test_rash.rb
1299
+ - spec/unit/alf-io/reader/test_ruby.rb
1224
1300
  - spec/unit/alf-io/renderer/class/test_by_mime_type.rb
1225
1301
  - spec/unit/alf-io/renderer/test_csv.rb
1226
1302
  - spec/unit/alf-io/renderer/test_initialize.rb
@@ -1325,6 +1401,7 @@ test_files:
1325
1401
  - spec/unit/alf-predicate/predicate/test_to_ruby_literal.rb
1326
1402
  - spec/unit/alf-predicate/test_predicate.rb
1327
1403
  - spec/unit/alf-relation/relation/class/test_coerce.rb
1404
+ - spec/unit/alf-relation/relation/class/test_recursive_type.rb
1328
1405
  - spec/unit/alf-relation/relation/class/test_type.rb
1329
1406
  - spec/unit/alf-relation/relation/factored-types/test_allbut.rb
1330
1407
  - spec/unit/alf-relation/relation/factored-types/test_coerce.rb
@@ -1344,6 +1421,7 @@ test_files:
1344
1421
  - spec/unit/alf-relation/relation/test_relops.rb
1345
1422
  - spec/unit/alf-relation/relation/test_sugar.rb
1346
1423
  - spec/unit/alf-relation/relation/test_to_a.rb
1424
+ - spec/unit/alf-relation/relation/test_to_hash.rb
1347
1425
  - spec/unit/alf-relation/relation/test_to_relation.rb
1348
1426
  - spec/unit/alf-relation/tuple/class/test_coerce.rb
1349
1427
  - spec/unit/alf-relation/tuple/class/test_type.rb
@@ -1405,10 +1483,16 @@ test_files:
1405
1483
  - spec/unit/alf-support/bindable/test_bound.rb
1406
1484
  - spec/unit/alf-support/bindable/test_connection.rb
1407
1485
  - spec/unit/alf-support/bindable/test_connection_bang.rb
1486
+ - spec/unit/alf-support/config/test_dup.rb
1487
+ - spec/unit/alf-support/config/test_freeze.rb
1488
+ - spec/unit/alf-support/config/test_hash_get.rb
1489
+ - spec/unit/alf-support/config/test_hash_set.rb
1408
1490
  - spec/unit/alf-support/config/test_helpers.rb
1409
1491
  - spec/unit/alf-support/config/test_merge.rb
1410
1492
  - spec/unit/alf-support/config/test_new.rb
1411
1493
  - spec/unit/alf-support/config/test_option.rb
1494
+ - spec/unit/alf-support/config/test_option_setter.rb
1495
+ - spec/unit/alf-support/config/test_options.rb
1412
1496
  - spec/unit/alf-support/scope/test_branch.rb
1413
1497
  - spec/unit/alf-support/scope/test_evaluate.rb
1414
1498
  - spec/unit/alf-support/scope/test_initialize.rb
@@ -1425,7 +1509,9 @@ test_files:
1425
1509
  - spec/unit/alf-support/test_tuple_scope.rb
1426
1510
  - spec/unit/alf-support/test_unsymbolize_keys.rb
1427
1511
  - spec/unit/alf-support/tuple_scope/test_evaluate.rb
1512
+ - spec/unit/alf-support/tuple_scope/test_hash_get.rb
1428
1513
  - spec/unit/alf-support/tuple_scope/test_respond_to.rb
1514
+ - spec/unit/alf-support/tuple_scope/test_to_s.rb
1429
1515
  - spec/unit/alf-types/attr_list/test_allbut.rb
1430
1516
  - spec/unit/alf-types/attr_list/test_ampersand.rb
1431
1517
  - spec/unit/alf-types/attr_list/test_coerce.rb
@@ -1462,7 +1548,6 @@ test_files:
1462
1548
  - spec/unit/alf-types/keys/test_ampersand.rb
1463
1549
  - spec/unit/alf-types/keys/test_any.rb
1464
1550
  - spec/unit/alf-types/keys/test_coerce.rb
1465
- - spec/unit/alf-types/keys/test_compact.rb
1466
1551
  - spec/unit/alf-types/keys/test_empty.rb
1467
1552
  - spec/unit/alf-types/keys/test_first.rb
1468
1553
  - spec/unit/alf-types/keys/test_hash_and_equal.rb
@@ -1475,15 +1560,30 @@ test_files:
1475
1560
  - spec/unit/alf-types/keys/test_select.rb
1476
1561
  - spec/unit/alf-types/ordering/test_coerce.rb
1477
1562
  - spec/unit/alf-types/ordering/test_compare.rb
1478
- - spec/unit/alf-types/ordering/test_plus.rb
1563
+ - spec/unit/alf-types/ordering/test_dive.rb
1564
+ - spec/unit/alf-types/ordering/test_hash_get.rb
1565
+ - spec/unit/alf-types/ordering/test_merge.rb
1566
+ - spec/unit/alf-types/ordering/test_reverse.rb
1567
+ - spec/unit/alf-types/ordering/test_selectors.rb
1479
1568
  - spec/unit/alf-types/ordering/test_sorter.rb
1480
1569
  - spec/unit/alf-types/ordering/test_to_attr_list.rb
1570
+ - spec/unit/alf-types/ordering/test_total.rb
1481
1571
  - spec/unit/alf-types/renaming/test_coerce.rb
1482
1572
  - spec/unit/alf-types/renaming/test_complete.rb
1483
1573
  - spec/unit/alf-types/renaming/test_invert.rb
1484
1574
  - spec/unit/alf-types/renaming/test_rename_attr_list.rb
1485
1575
  - spec/unit/alf-types/renaming/test_rename_tuple.rb
1486
1576
  - spec/unit/alf-types/renaming/test_to_attr_list.rb
1577
+ - spec/unit/alf-types/selection/test_coerce.rb
1578
+ - spec/unit/alf-types/selection/test_select.rb
1579
+ - spec/unit/alf-types/selector/test_coerce.rb
1580
+ - spec/unit/alf-types/selector/test_composite_q.rb
1581
+ - spec/unit/alf-types/selector/test_dive.rb
1582
+ - spec/unit/alf-types/selector/test_select.rb
1583
+ - spec/unit/alf-types/selector/test_simple_q.rb
1584
+ - spec/unit/alf-types/selector/test_to_a.rb
1585
+ - spec/unit/alf-types/selector/test_to_lispy.rb
1586
+ - spec/unit/alf-types/selector/test_to_ruby_literal.rb
1487
1587
  - spec/unit/alf-types/size/test_coerce.rb
1488
1588
  - spec/unit/alf-types/size/test_triple_equal.rb
1489
1589
  - spec/unit/alf-types/summarization/test_coerce.rb
@@ -1501,6 +1601,7 @@ test_files:
1501
1601
  - spec/unit/alf-types/tuple_computation/test_to_attr_list.rb
1502
1602
  - spec/unit/alf-types/tuple_computation/test_to_heading.rb
1503
1603
  - spec/unit/alf-types/tuple_expression/test_coerce.rb
1604
+ - spec/unit/alf-types/tuple_expression/test_evaluate.rb
1504
1605
  - spec/unit/alf-types/tuple_expression/test_to_ruby_literal.rb
1505
1606
  - spec/unit/alf-types/type_check/test_triple_equal.rb
1506
1607
  - spec/unit/alf-update/deleter/test_autonum.rb
@@ -1537,8 +1638,18 @@ test_files:
1537
1638
  - spec/unit/alf-update/inserter/test_var_ref.rb
1538
1639
  - spec/unit/alf-update/inserter/test_wrap.rb
1539
1640
  - spec/unit/alf-update/updater/test_var_ref.rb
1641
+ - spec/unit/alf-viewpoint/metadata/test_add_members.rb
1642
+ - spec/unit/alf-viewpoint/metadata/test_all_members.rb
1643
+ - spec/unit/alf-viewpoint/metadata/test_depends.rb
1644
+ - spec/unit/alf-viewpoint/metadata/test_dup.rb
1645
+ - spec/unit/alf-viewpoint/metadata/test_expand.rb
1646
+ - spec/unit/alf-viewpoint/metadata/test_expects.rb
1647
+ - spec/unit/alf-viewpoint/metadata/test_initialize.rb
1648
+ - spec/unit/alf-viewpoint/metadata/test_to_module.rb
1649
+ - spec/unit/alf-viewpoint/test_depends.rb
1650
+ - spec/unit/alf-viewpoint/test_expects.rb
1540
1651
  - spec/unit/alf-viewpoint/test_members.rb
1541
- - spec/unit/alf-viewpoint/test_namespace.rb
1652
+ - spec/unit/alf-viewpoint/test_metadata.rb
1542
1653
  - spec/unit/alf-viewpoint/test_native.rb
1543
1654
  - spec/unit/alf-viewpoint/test_native_const.rb
1544
1655
  - spec/unit/alf-viewpoint/test_parse.rb