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
|