mondrian 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Mondrian
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -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.1.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-08 00:00:00.000000000 Z
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: &70350923495220 !ruby/object:Gem::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: *70350923495220
24
+ version_requirements: *70330236915200
25
25
  description: Schema DSL for mondrian
26
26
  email:
27
27
  - scott.ellard@gmail.com