alinta-cucumber-rest-bdd 0.5.8 → 0.5.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cucumber-rest-bdd/types.rb +23 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc3affbddafe52faf5c995a213a055d717228882
|
4
|
+
data.tar.gz: 845eca8241d3d85389fbaf034ba8a62e4db1f39d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 928840fe9666f63e56df84269a2c23d743dd2807efd4a9b9eb7a963ae6dd7c4909ba070fd489350330f07136fc66d6150cfa7212cc82b78a3f7ab92df4b5b2ad
|
7
|
+
data.tar.gz: 670bec83ec40969685862cf378f924fe8b3741ced46b433476ea895b313fb5dc7c04f0572864f0e34296b7a8955cff841796a3e5e55b0d2fda959eff0891ed02
|
@@ -116,13 +116,13 @@ def get_json_path(names)
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def get_parameters(names)
|
119
|
-
return names.split(':').map { |n| get_parameter(n) }
|
119
|
+
return names.split(':').map { |n| get_parameter(n.strip) }
|
120
120
|
end
|
121
121
|
|
122
122
|
def get_parameter(name)
|
123
123
|
if name[0] == '`' && name[-1] == '`'
|
124
124
|
name = name[1..-2]
|
125
|
-
|
125
|
+
elsif name[0] != '[' || name[-1] != ']'
|
126
126
|
separator = ENV.has_key?('field_separator') ? ENV['field_separator'] : '_'
|
127
127
|
name = name.parameterize(separator: separator)
|
128
128
|
name = name.camelize(:lower) if (ENV.has_key?('field_camel') && ENV['field_camel'] == 'true')
|
@@ -137,7 +137,26 @@ def get_attributes(hashes)
|
|
137
137
|
value.gsub!(/\\n/, "\n")
|
138
138
|
type = parse_type(type)
|
139
139
|
names = get_parameters(name)
|
140
|
-
new_hash = names.reverse.inject(value.to_type(type.camelize.constantize)) { |a, n|
|
141
|
-
hash.deep_merge!(new_hash)
|
140
|
+
new_hash = names.reverse.inject(value.to_type(type.camelize.constantize)) { |a, n| add_to_hash(a, n) }
|
141
|
+
hash.deep_merge!(new_hash) { |key, old, new| new.kind_of?(Array) ? merge_arrays(old, new) : new }
|
142
142
|
end
|
143
143
|
end
|
144
|
+
|
145
|
+
def add_to_hash(a, n)
|
146
|
+
result = nil
|
147
|
+
if (n[0] == '[' && n[-1] == ']') then
|
148
|
+
array = Array.new(n[1..-2].to_i() + 1)
|
149
|
+
array[n[1..-2].to_i()] = a
|
150
|
+
result = array
|
151
|
+
end
|
152
|
+
result != nil ? result : { n => a };
|
153
|
+
end
|
154
|
+
|
155
|
+
def merge_arrays(a, b)
|
156
|
+
new_length = [a.length, b.length].max
|
157
|
+
new_array = Array.new(new_length)
|
158
|
+
new_length.times do |n|
|
159
|
+
new_array[n] = b[n] == nil ? a[n] : b[n]
|
160
|
+
end
|
161
|
+
return new_array
|
162
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alinta-cucumber-rest-bdd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Bragg
|
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.6.
|
94
|
+
rubygems_version: 2.6.13
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: BDD Rest API specifics for cucumber
|