mondrian 0.1.0 → 0.2.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.
- 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
|