stackup 1.8.1 → 1.9.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 48207a7fb9a121bb113246ad4a4be125ace21cb48b3998efc11475ffb1b64783
4
- data.tar.gz: 4cc7841ae3a55bcfec0891ae91ff905491e172f14f2dd3064f308f56975b4d91
3
+ metadata.gz: 69cdd62ad2bb3be36ed7990f24d9e14b3714e3f273acd2e977d0ec175061385d
4
+ data.tar.gz: 6725bad04804d6ae53041e6b710930be51653ac3e24eac4eedff7223b9eb634e
5
5
  SHA512:
6
- metadata.gz: 9143a0ef0d496bf9f054aa241f0be4877f6e4b10acc8341364221ebaef747ef39162a7377be91f31f46c0794ab6cbb73132e875a63a76aa6a208b0e20ae74807
7
- data.tar.gz: 7cd6106353e24e78bd555f6366192fcba0b87e6850ef9a7ca0d0197cc5e4d200e30b0579be9d08f0c9d86d5c5a8db6d0b71de6ee02b83455e22358d18ec2d4ce
6
+ metadata.gz: c5eb54e984f3114f1c802ac49be06a4ee26d58391fa1e7a9a55e594990c9cdb326fc5b7ec307cfad4883ebe0422c5796720ddb2ecff812ff524d7b48f7819098
7
+ data.tar.gz: 13913200ac349f177e811868854c9841b67eabd7dec644052956264fc31a4aaafdaf41e92943fef841c29812ebc61018c949876b707c01a2f847a56584c6cea9
data/CHANGES.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGES
2
2
 
3
+ ## 1.9.0 (2025-02-27)
4
+
5
+ * Fix: Convert param input to String [#105](https://github.com/realestate-com-au/stackup/pull/105)
6
+
3
7
  ## 1.8.1 (2023-09-12)
4
8
 
5
9
  * Addresses rate limiting errors in #87 by configuring the following retry behaviours:
@@ -45,7 +45,7 @@ module Stackup
45
45
  if value == :use_previous_value
46
46
  record[:use_previous_value] = true
47
47
  else
48
- record[:parameter_value] = value
48
+ record[:parameter_value] = ParameterValue.new(value).to_param
49
49
  end
50
50
  end
51
51
  end
@@ -75,7 +75,26 @@ module Stackup
75
75
  if use_previous_value
76
76
  :use_previous_value
77
77
  else
78
- parameter_value
78
+ ParameterValue.new(parameter_value).to_param
79
+ end
80
+ end
81
+
82
+ end
83
+
84
+ class ParameterValue
85
+
86
+ def initialize(value)
87
+ @value = value
88
+ end
89
+
90
+ def to_param
91
+ case @value
92
+ when TrueClass, FalseClass, Integer then
93
+ @value.to_s
94
+ when Array
95
+ @value.map { |v| ParameterValue.new(v).to_param }.join(",")
96
+ else
97
+ @value
79
98
  end
80
99
  end
81
100
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Stackup
4
4
 
5
- VERSION = "1.8.1"
5
+ VERSION = "1.9.0"
6
6
 
7
7
  end
@@ -146,6 +146,51 @@ describe Stackup::Parameters do
146
146
 
147
147
  end
148
148
 
149
+ context "with non-string values" do
150
+
151
+ let(:input_records) do
152
+ [
153
+ { :parameter_key => "Integer", :parameter_value => 123_456_789 },
154
+ { :parameter_key => "Truthy", :parameter_value => true },
155
+ { :parameter_key => "Falsey", :parameter_value => false },
156
+ { :parameter_key => "Null", :parameter_value => nil },
157
+ { :parameter_key => "Array", :parameter_value => ["one", 2] },
158
+ { :parameter_key => "String", :parameter_value => "string" }
159
+ ]
160
+ end
161
+
162
+ subject(:parameters) { Stackup::Parameters.new(input_records) }
163
+
164
+ describe "#to_hash" do
165
+ it "converts the to strings where appropriate" do
166
+ expected = {
167
+ "Integer" => "123456789",
168
+ "Truthy" => "true",
169
+ "Falsey" => "false",
170
+ "Null" => nil,
171
+ "Array" => "one,2",
172
+ "String" => "string"
173
+ }
174
+ expect(parameters.to_hash).to eql(expected)
175
+ end
176
+ end
177
+
178
+ describe "#to_a" do
179
+ it "converts the to strings where appropriate" do
180
+ expected = [
181
+ { :parameter_key => "Integer", :parameter_value => "123456789" },
182
+ { :parameter_key => "Truthy", :parameter_value => "true" },
183
+ { :parameter_key => "Falsey", :parameter_value => "false" },
184
+ { :parameter_key => "Null", :parameter_value => nil },
185
+ { :parameter_key => "Array", :parameter_value => "one,2" },
186
+ { :parameter_key => "String", :parameter_value => "string" }
187
+ ]
188
+ expect(parameters.to_a).to eql(expected)
189
+ end
190
+ end
191
+
192
+ end
193
+
149
194
  context "with empty parameter file" do
150
195
 
151
196
  let(:input_records) { false }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stackup
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.1
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danial Pearce
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-09-12 00:00:00.000000000 Z
12
+ date: 2025-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aws-sdk-cloudformation