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
         |