ncs_mdes 0.10.0 → 0.11.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/CHANGELOG.md +8 -0
- data/documents/3.1/{NCS_Transmission_Schema_3.1.00.00.xsd → NCS_Transmission_Schema_3.1.01.00.xsd} +11 -8
- data/documents/3.2/NCS_Transmission_Schema_3.2.00.00.xsd +87156 -0
- data/documents/3.2/disposition_codes.yml +2361 -0
- data/documents/3.2/extract_disposition_codes.rb +58 -0
- data/documents/3.2/heuristic_overrides.yml +681 -0
- data/lib/ncs_navigator/mdes/disposition_code.rb +7 -10
- data/lib/ncs_navigator/mdes/source_documents.rb +3 -1
- data/lib/ncs_navigator/mdes/variable.rb +4 -4
- data/lib/ncs_navigator/mdes/variable_type.rb +6 -6
- data/lib/ncs_navigator/mdes/version.rb +1 -1
- data/ncs_mdes.gemspec +1 -1
- data/spec/ncs_navigator/mdes/source_documents_spec.rb +16 -2
- data/spec/ncs_navigator/mdes/specification_spec.rb +22 -0
- metadata +11 -7
| @@ -4,14 +4,13 @@ module NcsNavigator::Mdes | |
| 4 4 | 
             
              ##
         | 
| 5 5 | 
             
              # One dispostion code in the MDES.
         | 
| 6 6 | 
             
              class DispositionCode
         | 
| 7 | 
            +
                ATTRIBUTES = %w(
         | 
| 8 | 
            +
                  category_code disposition event final_category final_code interim_code sub_category
         | 
| 9 | 
            +
                )
         | 
| 7 10 |  | 
| 8 | 
            -
                 | 
| 9 | 
            -
             | 
| 10 | 
            -
                 | 
| 11 | 
            -
                attr_accessor :disposition
         | 
| 12 | 
            -
                attr_accessor :category_code
         | 
| 13 | 
            -
                attr_accessor :interim_code
         | 
| 14 | 
            -
                attr_accessor :final_code
         | 
| 11 | 
            +
                ATTRIBUTES.each do |attr|
         | 
| 12 | 
            +
                  attr_accessor attr
         | 
| 13 | 
            +
                end
         | 
| 15 14 |  | 
| 16 15 | 
             
                ##
         | 
| 17 16 | 
             
                # Given attributes (presumably loaded from a YAML file) create
         | 
| @@ -19,9 +18,7 @@ module NcsNavigator::Mdes | |
| 19 18 | 
             
                # 
         | 
| 20 19 | 
             
                # @return [DispositionCode] the created instance.
         | 
| 21 20 | 
             
                def initialize(attrs)
         | 
| 22 | 
            -
                   | 
| 23 | 
            -
                    self.send("#{a}=", attrs[a])
         | 
| 24 | 
            -
                  end
         | 
| 21 | 
            +
                  ATTRIBUTES.each { |a| send("#{a}=", attrs[a]) }
         | 
| 25 22 | 
             
                end
         | 
| 26 23 |  | 
| 27 24 | 
             
                ##
         | 
| @@ -58,7 +58,9 @@ module NcsNavigator::Mdes | |
| 58 58 | 
             
                    when '3.0'
         | 
| 59 59 | 
             
                      create('3.0', '3.0/NCS_Transmission_Schema_3.0.00.09.xsd', '3.0.00.09')
         | 
| 60 60 | 
             
                    when '3.1'
         | 
| 61 | 
            -
                      create('3.1', '3.1/NCS_Transmission_Schema_3.1. | 
| 61 | 
            +
                      create('3.1', '3.1/NCS_Transmission_Schema_3.1.01.00.xsd', '3.1.01.00')
         | 
| 62 | 
            +
                    when '3.2'
         | 
| 63 | 
            +
                      create('3.2', '3.2/NCS_Transmission_Schema_3.2.00.00.xsd', '3.2.00.00')
         | 
| 62 64 | 
             
                    else
         | 
| 63 65 | 
             
                      raise "MDES #{version} is not supported by this version of ncs_mdes"
         | 
| 64 66 | 
             
                    end
         | 
| @@ -75,20 +75,20 @@ module NcsNavigator::Mdes | |
| 75 75 | 
             
                      var.nillable = element['nillable'] == 'true'
         | 
| 76 76 | 
             
                      var.omittable = element['minOccurs'] == '0'
         | 
| 77 77 | 
             
                      var.pii =
         | 
| 78 | 
            -
                        case element['pii']
         | 
| 78 | 
            +
                        case element['ncsdoc:pii']
         | 
| 79 79 | 
             
                        when 'Y'; true;
         | 
| 80 80 | 
             
                        when 'P'; :possible;
         | 
| 81 81 | 
             
                        when nil; :unknown;
         | 
| 82 82 | 
             
                        when '';  false;
         | 
| 83 | 
            -
                        else element['pii'];
         | 
| 83 | 
            +
                        else element['ncsdoc:pii'];
         | 
| 84 84 | 
             
                        end
         | 
| 85 85 | 
             
                      var.status =
         | 
| 86 | 
            -
                        case element['status']
         | 
| 86 | 
            +
                        case element['ncsdoc:status']
         | 
| 87 87 | 
             
                        when '1'; :active;
         | 
| 88 88 | 
             
                        when '2'; :new;
         | 
| 89 89 | 
             
                        when '3'; :modified;
         | 
| 90 90 | 
             
                        when '4'; :retired;
         | 
| 91 | 
            -
                        else element['status'];
         | 
| 91 | 
            +
                        else element['ncsdoc:status'];
         | 
| 92 92 | 
             
                        end
         | 
| 93 93 | 
             
                      var.type =
         | 
| 94 94 | 
             
                        if element['type']
         | 
| @@ -75,10 +75,10 @@ module NcsNavigator::Mdes | |
| 75 75 | 
             
                          vt.min_length = elt['value'].to_i
         | 
| 76 76 | 
             
                        when 'enumeration'
         | 
| 77 77 | 
             
                          (vt.code_list ||= CodeList.new) << CodeListEntry.from_xsd_enumeration(elt, options)
         | 
| 78 | 
            -
                          if elt['desc'] =~ /\S/
         | 
| 78 | 
            +
                          if elt['ncsdoc:desc'] =~ /\S/
         | 
| 79 79 | 
             
                            if vt.code_list.description.nil?
         | 
| 80 | 
            -
                              vt.code_list.description = elt['desc']
         | 
| 81 | 
            -
                            elsif vt.code_list.description != elt['desc']
         | 
| 80 | 
            +
                              vt.code_list.description = elt['ncsdoc:desc']
         | 
| 81 | 
            +
                            elsif vt.code_list.description != elt['ncsdoc:desc']
         | 
| 82 82 | 
             
                              log.warn("Code list entry on line #{elt.line} unexpectedly has a different desc from the first entry")
         | 
| 83 83 | 
             
                            end
         | 
| 84 84 | 
             
                          end
         | 
| @@ -179,9 +179,9 @@ module NcsNavigator::Mdes | |
| 179 179 | 
             
                      log.warn("Missing value for code list entry on line #{enum.line}") unless enum['value']
         | 
| 180 180 |  | 
| 181 181 | 
             
                      new(enum['value'] && enum['value'].strip).tap do |cle|
         | 
| 182 | 
            -
                        cle.label = enum['label']
         | 
| 183 | 
            -
                        cle.global_value = enum['global_value']
         | 
| 184 | 
            -
                        cle.master_cl = enum['master_cl']
         | 
| 182 | 
            +
                        cle.label = enum['ncsdoc:label']
         | 
| 183 | 
            +
                        cle.global_value = enum['ncsdoc:global_value']
         | 
| 184 | 
            +
                        cle.master_cl = enum['ncsdoc:master_cl']
         | 
| 185 185 | 
             
                      end
         | 
| 186 186 | 
             
                    end
         | 
| 187 187 | 
             
                  end
         | 
    
        data/ncs_mdes.gemspec
    CHANGED
    
    | @@ -19,7 +19,7 @@ National Children's Study's Master Data Element Specification. | |
| 19 19 | 
             
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 20 20 | 
             
              s.require_paths = ["lib"]
         | 
| 21 21 |  | 
| 22 | 
            -
              s.add_dependency 'nokogiri', '~> 1. | 
| 22 | 
            +
              s.add_dependency 'nokogiri', '~> 1.5.6'
         | 
| 23 23 |  | 
| 24 24 | 
             
              s.add_development_dependency 'rspec', '~> 2.6.0' # Can't use 2.7.0 due to #477
         | 
| 25 25 | 
             
              s.add_development_dependency 'rake', '~> 0.9.2'
         | 
| @@ -164,11 +164,25 @@ module NcsNavigator::Mdes | |
| 164 164 | 
             
                    include_context 'version docs'
         | 
| 165 165 |  | 
| 166 166 | 
             
                    it 'has the correct path for the schema' do
         | 
| 167 | 
            -
                      subject.schema.should =~ %r{3.1/NCS_Transmission_Schema_3.1. | 
| 167 | 
            +
                      subject.schema.should =~ %r{3.1/NCS_Transmission_Schema_3.1.01.00.xsd$}
         | 
| 168 168 | 
             
                    end
         | 
| 169 169 |  | 
| 170 170 | 
             
                    it 'has a different specification_version' do
         | 
| 171 | 
            -
                      subject.specification_version.should == '3.1. | 
| 171 | 
            +
                      subject.specification_version.should == '3.1.01.00'
         | 
| 172 | 
            +
                    end
         | 
| 173 | 
            +
                  end
         | 
| 174 | 
            +
             | 
| 175 | 
            +
                  describe '3.2' do
         | 
| 176 | 
            +
                    let(:version) { '3.2' }
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                    include_context 'version docs'
         | 
| 179 | 
            +
             | 
| 180 | 
            +
                    it 'has the correct path for the schema' do
         | 
| 181 | 
            +
                      subject.schema.should =~ %r{3.2/NCS_Transmission_Schema_3.2.00.00.xsd$}
         | 
| 182 | 
            +
                    end
         | 
| 183 | 
            +
             | 
| 184 | 
            +
                    it 'has a different specification_version' do
         | 
| 185 | 
            +
                      subject.specification_version.should == '3.2.00.00'
         | 
| 172 186 | 
             
                    end
         | 
| 173 187 | 
             
                  end
         | 
| 174 188 |  | 
| @@ -96,6 +96,13 @@ module NcsNavigator::Mdes | |
| 96 96 |  | 
| 97 97 | 
             
                    include_examples 'tables fully resolved'
         | 
| 98 98 | 
             
                  end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                  context 'in version 3.2' do
         | 
| 101 | 
            +
                    let(:version) { '3.2' }
         | 
| 102 | 
            +
                    let(:expected_table_count) { 576 }
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                    include_examples 'tables fully resolved'
         | 
| 105 | 
            +
                  end
         | 
| 99 106 | 
             
                end
         | 
| 100 107 |  | 
| 101 108 | 
             
                describe '#specification_version' do
         | 
| @@ -171,6 +178,14 @@ module NcsNavigator::Mdes | |
| 171 178 | 
             
                      disposition_codes.size.should == 332
         | 
| 172 179 | 
             
                    end
         | 
| 173 180 | 
             
                  end
         | 
| 181 | 
            +
             | 
| 182 | 
            +
                  context 'in version 3.2' do
         | 
| 183 | 
            +
                    let(:disposition_codes) { Specification.new('3.2', :log => logger).disposition_codes }
         | 
| 184 | 
            +
             | 
| 185 | 
            +
                    it 'has 332 codes' do
         | 
| 186 | 
            +
                      disposition_codes.size.should == 332
         | 
| 187 | 
            +
                    end
         | 
| 188 | 
            +
                  end
         | 
| 174 189 | 
             
                end
         | 
| 175 190 |  | 
| 176 191 | 
             
                describe '#[]' do
         | 
| @@ -252,6 +267,13 @@ module NcsNavigator::Mdes | |
| 252 267 |  | 
| 253 268 | 
             
                    include_examples 'types fully resolved'
         | 
| 254 269 | 
             
                  end
         | 
| 270 | 
            +
             | 
| 271 | 
            +
                  context 'version 3.2' do
         | 
| 272 | 
            +
                    let(:version) { '3.2' }
         | 
| 273 | 
            +
                    let(:expected_type_count) { 651 }
         | 
| 274 | 
            +
             | 
| 275 | 
            +
                    include_examples 'types fully resolved'
         | 
| 276 | 
            +
                  end
         | 
| 255 277 | 
             
                end
         | 
| 256 278 | 
             
              end
         | 
| 257 279 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ncs_mdes
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.11.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 12 | 
            +
            date: 2012-12-20 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: nokogiri
         | 
| @@ -18,7 +18,7 @@ dependencies: | |
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| 20 20 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 | 
            -
                    version:  | 
| 21 | 
            +
                    version: 1.5.6
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 24 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -26,7 +26,7 @@ dependencies: | |
| 26 26 | 
             
                requirements:
         | 
| 27 27 | 
             
                - - ~>
         | 
| 28 28 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            -
                    version:  | 
| 29 | 
            +
                    version: 1.5.6
         | 
| 30 30 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 31 | 
             
              name: rspec
         | 
| 32 32 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -133,10 +133,14 @@ files: | |
| 133 133 | 
             
            - documents/3.0/disposition_codes.yml
         | 
| 134 134 | 
             
            - documents/3.0/extract_disposition_codes.rb
         | 
| 135 135 | 
             
            - documents/3.0/heuristic_overrides.yml
         | 
| 136 | 
            -
            - documents/3.1/NCS_Transmission_Schema_3.1. | 
| 136 | 
            +
            - documents/3.1/NCS_Transmission_Schema_3.1.01.00.xsd
         | 
| 137 137 | 
             
            - documents/3.1/disposition_codes.yml
         | 
| 138 138 | 
             
            - documents/3.1/extract_disposition_codes.rb
         | 
| 139 139 | 
             
            - documents/3.1/heuristic_overrides.yml
         | 
| 140 | 
            +
            - documents/3.2/NCS_Transmission_Schema_3.2.00.00.xsd
         | 
| 141 | 
            +
            - documents/3.2/disposition_codes.yml
         | 
| 142 | 
            +
            - documents/3.2/extract_disposition_codes.rb
         | 
| 143 | 
            +
            - documents/3.2/heuristic_overrides.yml
         | 
| 140 144 | 
             
            - lib/ncs_navigator/mdes.rb
         | 
| 141 145 | 
             
            - lib/ncs_navigator/mdes/disposition_code.rb
         | 
| 142 146 | 
             
            - lib/ncs_navigator/mdes/source_documents.rb
         | 
| @@ -169,7 +173,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 169 173 | 
             
                  version: '0'
         | 
| 170 174 | 
             
                  segments:
         | 
| 171 175 | 
             
                  - 0
         | 
| 172 | 
            -
                  hash: - | 
| 176 | 
            +
                  hash: -1622356402615803316
         | 
| 173 177 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 174 178 | 
             
              none: false
         | 
| 175 179 | 
             
              requirements:
         | 
| @@ -178,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 178 182 | 
             
                  version: '0'
         | 
| 179 183 | 
             
                  segments:
         | 
| 180 184 | 
             
                  - 0
         | 
| 181 | 
            -
                  hash: - | 
| 185 | 
            +
                  hash: -1622356402615803316
         | 
| 182 186 | 
             
            requirements: []
         | 
| 183 187 | 
             
            rubyforge_project: 
         | 
| 184 188 | 
             
            rubygems_version: 1.8.24
         |