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.
@@ -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