quby-compiler 0.4.13 → 0.4.15
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/exe/quby-compile +1 -1
- data/lib/quby/compiler/dsl/questionnaire_builder.rb +8 -0
- data/lib/quby/compiler/entities/anonymous_conditions.rb +23 -0
- data/lib/quby/compiler/entities/question.rb +1 -1
- data/lib/quby/compiler/entities/questionnaire.rb +2 -0
- data/lib/quby/compiler/entities.rb +1 -0
- data/lib/quby/compiler/outputs/roqua_serializer.rb +2 -0
- data/lib/quby/compiler/version.rb +1 -1
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: dc2baf7860d3a8c906f3e3cafef35525bdad0e02ed5fc78848061e9ed4ffe7cc
         | 
| 4 | 
            +
              data.tar.gz: 9d53e98b35d034369731244fac42869ab7e90c06e30696e11f673e749ee8195f
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c89d1de0be9a9d7959d072f1e473ae597ff3c00b90da846dff1c1c9da03492988f289687d8f800fd40be7895cf720c857d95f50efcaa09f7d3dbb6af5e87ff2e
         | 
| 7 | 
            +
              data.tar.gz: 9d95cd492d5ef6fb4ebaafa242d9855d71fe7fbc9f8c0f89e30a76b341636b8cbcc57f5ffaa8de8a11c10ebcfe6544b2e23b3ffade8179433a3ad95a83624628
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/exe/quby-compile
    CHANGED
    
    | @@ -40,7 +40,7 @@ paths.each do |path| | |
| 40 40 | 
             
              definition = Quby::Compiler.validate(key, sourcecode, lookup_tables: lookup_tables)
         | 
| 41 41 | 
             
              if definition.errors.any?
         | 
| 42 42 | 
             
                error = definition.errors[:sourcecode].first
         | 
| 43 | 
            -
                STDERR.puts | 
| 43 | 
            +
                STDERR.puts(error)
         | 
| 44 44 | 
             
                validation_errors_found = true
         | 
| 45 45 | 
             
                next # let's not create new output files for questionnaires with errors
         | 
| 46 46 | 
             
              end
         | 
| @@ -147,6 +147,14 @@ module Quby | |
| 147 147 | 
             
                      @questionnaire.default_answer_value = value
         | 
| 148 148 | 
             
                    end
         | 
| 149 149 |  | 
| 150 | 
            +
                    def hide_pii_from_researchers(value)
         | 
| 151 | 
            +
                      @questionnaire.anonymous_conditions = @questionnaire.anonymous_conditions.new(hide_pii_from_researchers: value)
         | 
| 152 | 
            +
                    end
         | 
| 153 | 
            +
             | 
| 154 | 
            +
                    def hide_values_from_professionals(value)
         | 
| 155 | 
            +
                      @questionnaire.anonymous_conditions = @questionnaire.anonymous_conditions.new(hide_values_from_professionals: value)
         | 
| 156 | 
            +
                    end
         | 
| 157 | 
            +
             | 
| 150 158 | 
             
                    def panel(title = nil, options = {}, &block)
         | 
| 151 159 | 
             
                      panel = PanelBuilder.build(title, **options, **default_panel_options, &block)
         | 
| 152 160 | 
             
                      @questionnaire.add_panel(panel)
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            module Quby
         | 
| 2 | 
            +
              module Compiler
         | 
| 3 | 
            +
                module Entities
         | 
| 4 | 
            +
                  class AnonymousConditions < Dry::Struct
         | 
| 5 | 
            +
                    class ConstantRule < Dry::Struct
         | 
| 6 | 
            +
                      attribute :type, Types::String.constrained(eql: "constant")
         | 
| 7 | 
            +
                      attribute :value, Types::Bool
         | 
| 8 | 
            +
                    end
         | 
| 9 | 
            +
             | 
| 10 | 
            +
                    class BasedOnValueRule < Dry::Struct
         | 
| 11 | 
            +
                      attribute :type, Types::String.constrained(eql: "based_on_value")
         | 
| 12 | 
            +
                      attribute :question_key, Types::String
         | 
| 13 | 
            +
                      attribute :question_value, Types::String
         | 
| 14 | 
            +
                    end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    Rule = ConstantRule | BasedOnValueRule
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                    attribute? :hide_pii_from_researchers, Rule.optional
         | 
| 19 | 
            +
                    attribute? :hide_values_from_professionals, Rule.optional
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -240,7 +240,7 @@ module Quby | |
| 240 240 | 
             
                        title: Quby::MarkdownParser.new(title).to_html,
         | 
| 241 241 | 
             
                        description: Quby::MarkdownParser.new(description).to_html,
         | 
| 242 242 | 
             
                        type: type,
         | 
| 243 | 
            -
                        size: size,
         | 
| 243 | 
            +
                        size: size.presence && Integer(size), # 2022-11: 4k string and 7k integer
         | 
| 244 244 | 
             
                        hidden: hidden?,
         | 
| 245 245 | 
             
                        displayModes: display_modes,
         | 
| 246 246 | 
             
                        defaultInvisible: default_invisible,
         | 
| @@ -53,6 +53,7 @@ module Quby | |
| 53 53 | 
             
                      @lookup_tables = {}
         | 
| 54 54 | 
             
                      @versions = []
         | 
| 55 55 | 
             
                      @seeds_patch = {}
         | 
| 56 | 
            +
                      @anonymous_conditions = Entities::AnonymousConditions.new
         | 
| 56 57 | 
             
                    end
         | 
| 57 58 |  | 
| 58 59 | 
             
                    attr_accessor :key
         | 
| @@ -100,6 +101,7 @@ module Quby | |
| 100 101 | 
             
                    attr_accessor :outcome_tables
         | 
| 101 102 | 
             
                    attr_accessor :score_schemas
         | 
| 102 103 | 
             
                    attr_accessor :lookup_tables
         | 
| 104 | 
            +
                    attr_accessor :anonymous_conditions
         | 
| 103 105 |  | 
| 104 106 | 
             
                    delegate :question_hash, :input_keys, :answer_keys, :expand_input_keys, to: :fields
         | 
| 105 107 |  | 
| @@ -7,6 +7,7 @@ require 'quby/compiler/entities/version' | |
| 7 7 | 
             
            require 'quby/compiler/entities/question_option'
         | 
| 8 8 | 
             
            require 'quby/compiler/entities/item'
         | 
| 9 9 | 
             
            require 'quby/compiler/entities/score_calculation'
         | 
| 10 | 
            +
            require 'quby/compiler/entities/anonymous_conditions'
         | 
| 10 11 |  | 
| 11 12 | 
             
            require 'quby/compiler/entities/subscore_schema'
         | 
| 12 13 | 
             
            require 'quby/compiler/entities/score_schema'
         | 
| @@ -36,6 +36,7 @@ module Quby | |
| 36 36 | 
             
                        outcome_tables_schema: outcome_tables_schema,
         | 
| 37 37 | 
             
                        questions: questions,
         | 
| 38 38 | 
             
                        scores: scores,
         | 
| 39 | 
            +
                        anonymous_conditions: questionnaire.anonymous_conditions,
         | 
| 39 40 | 
             
                        license: questionnaire.license,
         | 
| 40 41 | 
             
                        licensor: questionnaire.licensor,
         | 
| 41 42 | 
             
                      }
         | 
| @@ -271,6 +272,7 @@ module Quby | |
| 271 272 | 
             
                      end \
         | 
| 272 273 | 
             
                        .text
         | 
| 273 274 | 
             
                        .gsub(/\s+/, ' ')
         | 
| 275 | 
            +
                        .strip
         | 
| 274 276 | 
             
                        .presence
         | 
| 275 277 | 
             
                    end
         | 
| 276 278 | 
             
                  end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: quby-compiler
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.15
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Marten Veldthuis
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022- | 
| 11 | 
            +
            date: 2022-11-07 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activemodel
         | 
| @@ -186,6 +186,7 @@ files: | |
| 186 186 | 
             
            - lib/quby/compiler/dsl/standardized_panel_generators.rb
         | 
| 187 187 | 
             
            - lib/quby/compiler/dsl/table_builder.rb
         | 
| 188 188 | 
             
            - lib/quby/compiler/entities.rb
         | 
| 189 | 
            +
            - lib/quby/compiler/entities/anonymous_conditions.rb
         | 
| 189 190 | 
             
            - lib/quby/compiler/entities/charting/bar_chart.rb
         | 
| 190 191 | 
             
            - lib/quby/compiler/entities/charting/chart.rb
         | 
| 191 192 | 
             
            - lib/quby/compiler/entities/charting/charts.rb
         |