data_magic 0.21 → 0.22
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 +4 -0
- data/data_magic.gemspec +1 -1
- data/features/data_magic.feature +12 -2
- data/features/step_definitions/data_magic_steps.rb +16 -1
- data/features/yaml/example.yml +3 -0
- data/lib/data_magic.rb +5 -2
- data/lib/data_magic/version.rb +1 -1
- metadata +20 -20
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f8e3fd3732d4db189c086a0d1f249477d7dbc629
         | 
| 4 | 
            +
              data.tar.gz: 902996720a2c99cfae0aff452508cc8abe6c7dc5
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: dfd5ea7be34a9deb10f2514d7f50ca4dfe998ec25346d2fdd383008235695a1756b2aa438c59945f59b3f6e7b0c5d48bf81d8a98bdfe428dc21582c51d10ca65
         | 
| 7 | 
            +
              data.tar.gz: a08950ff0dc236fe3ea6161e7c62810851b6aa4fa5e67bb5f58a3d858121c367cc02abc0ba3ecd28b62722f529d7b735934fbe4bd82cd92d980d8aa2776bb8f7
         | 
    
        data/ChangeLog
    CHANGED
    
    
    
        data/data_magic.gemspec
    CHANGED
    
    | @@ -18,7 +18,7 @@ Gem::Specification.new do |gem| | |
| 18 18 | 
             
              gem.require_paths = ["lib"]
         | 
| 19 19 |  | 
| 20 20 | 
             
              gem.add_dependency 'faker', '>= 1.1.2'
         | 
| 21 | 
            -
              gem.add_dependency 'yml_reader', '>= 0. | 
| 21 | 
            +
              gem.add_dependency 'yml_reader', '>= 0.6'
         | 
| 22 22 |  | 
| 23 23 | 
             
              gem.add_development_dependency 'rspec', '>= 2.12.0'
         | 
| 24 24 | 
             
              gem.add_development_dependency 'cucumber', '>= 1.2.0'
         | 
    
        data/features/data_magic.feature
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            Feature: Functionality of the data_magic gem
         | 
| 2 | 
            -
             | 
| 2 | 
            +
             | 
| 3 3 | 
             
              Background:
         | 
| 4 4 | 
             
                Given I have read the yaml file from features/yaml
         | 
| 5 5 | 
             
                When I ask for the data for "dm"
         | 
| @@ -101,7 +101,7 @@ Feature: Functionality of the data_magic gem | |
| 101 101 |  | 
| 102 102 | 
             
              Scenario: Getting a random month name
         | 
| 103 103 | 
             
                Then the value for "some_month" should be a valid month
         | 
| 104 | 
            -
             | 
| 104 | 
            +
             | 
| 105 105 | 
             
              Scenario: Getting a random month abbreviation
         | 
| 106 106 | 
             
                Then the value for "month_abbr" should be a valid month abbreviation
         | 
| 107 107 |  | 
| @@ -118,6 +118,16 @@ Feature: Functionality of the data_magic gem | |
| 118 118 | 
             
              Scenario: Getting values from nested entries
         | 
| 119 119 | 
             
                Then the nested value for this is_nested should be "Nested Value"
         | 
| 120 120 |  | 
| 121 | 
            +
              Scenario Outline: Translate values from nested hahs
         | 
| 122 | 
            +
                Given overwrite @data with translate_nested
         | 
| 123 | 
            +
                Then the nested hash should include <key>
         | 
| 124 | 
            +
                And the value for "<key>" should <validate>
         | 
| 125 | 
            +
                And the value for "<key>" should not mach <negative_validate>
         | 
| 126 | 
            +
                Examples:
         | 
| 127 | 
            +
                  | key        | validate                  | negative_validate |
         | 
| 128 | 
            +
                  | full_name  | have a minimum of 2 words | ~full_name        |
         | 
| 129 | 
            +
                  | first_name | be 1 word long            | ~first_name       |
         | 
| 130 | 
            +
             | 
| 121 131 | 
             
              Scenario: Should be able to call the translator methods on DataMagic module
         | 
| 122 132 | 
             
                Then I should be able to call the full_name translator
         | 
| 123 133 | 
             
                And I should be able to call the state translator
         | 
| @@ -28,7 +28,7 @@ Then /^the value for "(.+)" should be (true|false)$/ do |key, value| | |
| 28 28 | 
             
            end
         | 
| 29 29 |  | 
| 30 30 | 
             
            Then /^the value for "(.+)" should be (\d+) word|words long$/ do |key, length|
         | 
| 31 | 
            -
             | 
| 31 | 
            +
                expect(@data[key].split(' ').size).to eql length.to_i
         | 
| 32 32 | 
             
            end
         | 
| 33 33 |  | 
| 34 34 | 
             
            Then /^the value for "(.+)" should have a minimum of (\d+) word|wordss$/ do |key, length|
         | 
| @@ -147,6 +147,10 @@ Then(/^the nested value for this is_nested should be "(.*?)"$/) do |value| | |
| 147 147 | 
             
              expect(@data['this']['is_nested']).to eql value
         | 
| 148 148 | 
             
            end
         | 
| 149 149 |  | 
| 150 | 
            +
            Then(/^the nested hash should include (.*?)$/) do |value|
         | 
| 151 | 
            +
              expect(@data.keys).to include value
         | 
| 152 | 
            +
            end
         | 
| 153 | 
            +
             | 
| 150 154 | 
             
            Then(/^the value for "(.*?)" should be a phone number$/) do |value|
         | 
| 151 155 | 
             
              phone = @data[value]
         | 
| 152 156 | 
             
              if phone.split(' ').length == 2
         | 
| @@ -161,3 +165,14 @@ Then(/^I should be able to call the (.+) translator$/) do |method| | |
| 161 165 | 
             
              value = DataMagic.send method
         | 
| 162 166 | 
             
              expect(value).not_to be_empty
         | 
| 163 167 | 
             
            end
         | 
| 168 | 
            +
             | 
| 169 | 
            +
             | 
| 170 | 
            +
            And(/^the value for "([^"]*)" should not mach (.*)$/) do |key, value|
         | 
| 171 | 
            +
              expect(@data[key]).not_to eql value
         | 
| 172 | 
            +
            end
         | 
| 173 | 
            +
             | 
| 174 | 
            +
             | 
| 175 | 
            +
            Given(/^overwrite @data with (.*)$/) do |hash|
         | 
| 176 | 
            +
              # This is a bit dangerous but quick way to make all steps to work with nested data
         | 
| 177 | 
            +
              @data = @data['this'][hash]
         | 
| 178 | 
            +
            end
         | 
    
        data/features/yaml/example.yml
    CHANGED
    
    
    
        data/lib/data_magic.rb
    CHANGED
    
    | @@ -50,8 +50,11 @@ module DataMagic | |
| 50 50 | 
             
                data.each do |key, value|
         | 
| 51 51 | 
             
                  unless value.nil?
         | 
| 52 52 | 
             
                    next if !value.respond_to?('[]') || value.is_a?(Numeric)
         | 
| 53 | 
            -
                     | 
| 54 | 
            -
             | 
| 53 | 
            +
                    if value.is_a?(Hash)
         | 
| 54 | 
            +
                      data[key] = prep_data(value)
         | 
| 55 | 
            +
                    else  
         | 
| 56 | 
            +
                      data[key] = translate(value[1..-1]) if value[0,1] == "~"
         | 
| 57 | 
            +
                    end
         | 
| 55 58 | 
             
                  end
         | 
| 56 59 | 
             
                end
         | 
| 57 60 | 
             
                data
         | 
    
        data/lib/data_magic/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,69 +1,69 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: data_magic
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: '0. | 
| 4 | 
            +
              version: '0.22'
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jeff Morgan
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015- | 
| 11 | 
            +
            date: 2015-12-02 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: faker
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - '>='
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: 1.1.2
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - '>='
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: 1.1.2
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: yml_reader
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - '>='
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '0. | 
| 33 | 
            +
                    version: '0.6'
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - '>='
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '0. | 
| 40 | 
            +
                    version: '0.6'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: rspec
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - '>='
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 47 | 
             
                    version: 2.12.0
         | 
| 48 48 | 
             
              type: :development
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - '>='
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 54 | 
             
                    version: 2.12.0
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: cucumber
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 59 | 
            +
                - - '>='
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: 1.2.0
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 66 | 
            +
                - - '>='
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: 1.2.0
         | 
| 69 69 | 
             
            description: Provides datasets to application stored in YAML files
         | 
| @@ -73,11 +73,11 @@ executables: [] | |
| 73 73 | 
             
            extensions: []
         | 
| 74 74 | 
             
            extra_rdoc_files: []
         | 
| 75 75 | 
             
            files:
         | 
| 76 | 
            -
            -  | 
| 77 | 
            -
            -  | 
| 78 | 
            -
            -  | 
| 79 | 
            -
            -  | 
| 80 | 
            -
            -  | 
| 76 | 
            +
            - .gitignore
         | 
| 77 | 
            +
            - .rspec
         | 
| 78 | 
            +
            - .ruby-gemset
         | 
| 79 | 
            +
            - .ruby-version
         | 
| 80 | 
            +
            - .travis.yml
         | 
| 81 81 | 
             
            - ChangeLog
         | 
| 82 82 | 
             
            - Gemfile
         | 
| 83 83 | 
             
            - Guardfile
         | 
| @@ -114,17 +114,17 @@ require_paths: | |
| 114 114 | 
             
            - lib
         | 
| 115 115 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 116 116 | 
             
              requirements:
         | 
| 117 | 
            -
              - -  | 
| 117 | 
            +
              - - '>='
         | 
| 118 118 | 
             
                - !ruby/object:Gem::Version
         | 
| 119 119 | 
             
                  version: '0'
         | 
| 120 120 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
              requirements:
         | 
| 122 | 
            -
              - -  | 
| 122 | 
            +
              - - '>='
         | 
| 123 123 | 
             
                - !ruby/object:Gem::Version
         | 
| 124 124 | 
             
                  version: '0'
         | 
| 125 125 | 
             
            requirements: []
         | 
| 126 126 | 
             
            rubyforge_project: 
         | 
| 127 | 
            -
            rubygems_version: 2. | 
| 127 | 
            +
            rubygems_version: 2.0.14
         | 
| 128 128 | 
             
            signing_key: 
         | 
| 129 129 | 
             
            specification_version: 4
         | 
| 130 130 | 
             
            summary: Provides datasets to application via YAML files
         |