mondrian 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/mondrian/schema.rb +8 -1
- data/lib/mondrian/version.rb +1 -1
- data/spec/mondrian/schema_spec.rb +42 -0
- metadata +4 -4
data/lib/mondrian/schema.rb
CHANGED
@@ -134,6 +134,13 @@ module Mondrian
|
|
134
134
|
elements :table, :join, :property, :level
|
135
135
|
end
|
136
136
|
|
137
|
+
class Closure < SchemaElement
|
138
|
+
attributes :parent_column, :child_colum
|
139
|
+
data_dictionary_names :parent_column, :child_colum # values in XML will be uppercased when using Oracle driver
|
140
|
+
elements :table
|
141
|
+
end
|
142
|
+
|
143
|
+
|
137
144
|
class Join < SchemaElement
|
138
145
|
attributes :left_key, :right_key, :left_alias, :right_alias
|
139
146
|
data_dictionary_names :left_key, :right_key, :left_alias, :right_alias # values in XML will be uppercased when using Oracle driver
|
@@ -186,7 +193,7 @@ module Mondrian
|
|
186
193
|
# Default value: 'Never'
|
187
194
|
:hide_member_if
|
188
195
|
data_dictionary_names :table, :column, :name_column, :ordinal_column, :parent_column # values in XML will be uppercased when using Oracle driver
|
189
|
-
elements :key_expression, :name_expression, :ordinal_expression, :member_formatter, :property
|
196
|
+
elements :key_expression, :name_expression, :ordinal_expression, :member_formatter, :property, :closure
|
190
197
|
end
|
191
198
|
|
192
199
|
class KeyExpression < SchemaElement
|
data/lib/mondrian/version.rb
CHANGED
@@ -403,6 +403,48 @@ describe Mondrian::Schema do
|
|
403
403
|
end
|
404
404
|
end
|
405
405
|
|
406
|
+
|
407
|
+
|
408
|
+
describe "Closure" do
|
409
|
+
it "should render to XML" do
|
410
|
+
@schema.define do
|
411
|
+
cube 'Sales' do
|
412
|
+
dimension 'Employees', :foreign_key => 'employee_id' do
|
413
|
+
hierarchy :has_all => true, :all_member_name => 'All Employees', :primary_key => 'employee_id' do
|
414
|
+
table "employee"
|
415
|
+
level 'Employee Id', :column => 'employee_id', :unique_members => true, :parent_column => 'supervisor_id', :null_parent_value => '0' do
|
416
|
+
closure :child_column =>"employee_id", :parent_column => "supervisor_id" do
|
417
|
+
table "employee_closure"
|
418
|
+
end
|
419
|
+
property "Position Title", :column => "position_title"
|
420
|
+
end
|
421
|
+
end
|
422
|
+
end
|
423
|
+
end
|
424
|
+
end
|
425
|
+
@schema.to_xml.should be_equivalent_to <<-XML
|
426
|
+
<?xml version="1.0"?>
|
427
|
+
<Schema name="default">
|
428
|
+
<Cube name="Sales">
|
429
|
+
<Dimension name="Employees" foreignKey="employee_id">
|
430
|
+
<Hierarchy hasAll="true" allMemberName="All Employees" primaryKey="employee_id">
|
431
|
+
<Table name="employee"/>
|
432
|
+
<Level name="Employee Id" uniqueMembers="true" column="employee_id" parentColumn="supervisor_id" nullParentValue="0">
|
433
|
+
<Closure parentColumn="supervisor_id" childColumn="employee_id">
|
434
|
+
<Table name="employee_closure"/>
|
435
|
+
</Closure>
|
436
|
+
<Property name="Position Title" column="position_title"/>
|
437
|
+
</Level>
|
438
|
+
</Hierarchy>
|
439
|
+
</Dimension>
|
440
|
+
</Cube>
|
441
|
+
</Schema>
|
442
|
+
XML
|
443
|
+
end
|
444
|
+
end
|
445
|
+
|
446
|
+
|
447
|
+
|
406
448
|
describe "Measure" do
|
407
449
|
it "should render XML" do
|
408
450
|
@schema.define do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mondrian
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
|
-
requirement: &
|
16
|
+
requirement: &70330236915200 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 1.5.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70330236915200
|
25
25
|
description: Schema DSL for mondrian
|
26
26
|
email:
|
27
27
|
- scott.ellard@gmail.com
|