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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f7257eb4d31f2a2fae0379708133ecb33eb05ade
4
- data.tar.gz: f416fac845e041017ed21d987ef2597b72b83121
3
+ metadata.gz: bc3affbddafe52faf5c995a213a055d717228882
4
+ data.tar.gz: 845eca8241d3d85389fbaf034ba8a62e4db1f39d
5
5
  SHA512:
6
- metadata.gz: b9503caa143790b5ddbee289d664ae2a8e3287bca477ec54f8c41756c0b354fa7aa76eb76c6434ebfd2b518666c69421d5455cc6207988d3790eaf63a5714bb3
7
- data.tar.gz: 2a882dabe3dc34f770360d988c1aa2d0a7ee86c0ad73b59ca2c5bf8cc320443f615fc9a1882f0f89e8a7d86a8c8004ac42ed05998e843ac564097c4ce8bdce01
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
- else
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| { n => a } }
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.8
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.14
94
+ rubygems_version: 2.6.13
95
95
  signing_key:
96
96
  specification_version: 4
97
97
  summary: BDD Rest API specifics for cucumber