stacker_bee 2.1.0.pre232 → 2.1.0.pre236

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTk2OTE3ZWYwM2UxNDdjMjFiNDMzZGFhNTA0NTYyYmYzYTIzMTliNA==
4
+ ZGMwMTczNmU3MjVmMjM2ZGM2OGI1MzU1M2NhNDI1MTE0NDdiYjhiYQ==
5
5
  data.tar.gz: !binary |-
6
- ZDMyNTJjOWJkMTI1YmIwZGMwZGM2NjA1MTNlMTAyMmQ4MTRlMGMwMQ==
6
+ ZDZkZWJjMDkyNWNjMTc2YmUxYmFkYzYxOTgzZTlkMDNlMjEzY2NmMQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZDRjNzdmMGZkZTBiZDAxZDFmMzZlNGFiNWI1MTY1ZTEwNGUzYmY2NDkxMmEx
10
- YzRiZjAwNGNlM2Y1MGRkNTM5YzM3YTkwMDYwMWY4MDg3NjUwZmZkNWY2OThj
11
- N2UyMzVjMzQxOTk1NTI4MjE2OGNlZDZmNjg2YWMxMWQzNzU5ZTk=
9
+ NDhhNmFjNWJlY2FjMTQzNDk1MzFjOGU5NGFhZDA3ODMwYzU1YjBlNzJkNmFl
10
+ ZWUyNTY5YmVjM2VkZWE3Y2VmYjk1YTdhODczOGFhMWM2ZGYzNmRjZWQyN2Q0
11
+ ZmYxNzE5OTJiZDVlZWJkZTZjYzA2ZGI1ZDI3YWUxMGNmNGIwN2M=
12
12
  data.tar.gz: !binary |-
13
- ZmJjZWZmNTZkNTRhYjJkMDdiNzBiMzJiZTg0ZmMxYzdhNjNmZTQ2MDBjNWE4
14
- ZGEyNTNjYTg2NTBmYzQ0ODMzYzEwMjA5ZTE3MmU5M2VhNDA5M2QyNDRmYzMz
15
- ZGI2OTVmMDRlMzk0ZTA3ZjYzOWMxZjAxMWNmZTYwYWY2MmQwZWQ=
13
+ ZjUxZTg3YmE0ZmVlYTBmNjUwNmE1ZWNkYjg3MWM4ODYwOGFkOTc3ZmQ1Mjdl
14
+ MGE0NzkzNTJhZTYzYjZjOTI2ZWIwNWY2ZTc3ZmZkODY0MGY2ZGYzMjNlY2I1
15
+ YzA0MDdmYTBlZGE4MzJiMTAzNjkyOGQyYmY1NDEwNzU3N2UwODI=
@@ -25,7 +25,7 @@ module StackerBee
25
25
 
26
26
  def flatten_map_values(params, hashes)
27
27
  hashes.each do |hash_name, hash|
28
- remove_empties(hash).each_with_index do |(key, value), index|
28
+ remove_falseish(hash).each_with_index do |(key, value), index|
29
29
  hash_url_key = self.class.tokenize("#{hash_name}[#{index}]")
30
30
 
31
31
  params["#{hash_url_key}.key"] = key
@@ -37,8 +37,8 @@ module StackerBee
37
37
  end
38
38
 
39
39
  # TODO: isn't this done with the RemoveEmptyStrings middleware?
40
- def remove_empties(hash)
41
- hash.reject { |_, v| v.nil? || v == "" }
40
+ def remove_falseish(hash)
41
+ hash.reject { |_, v| v == "" || v =~ /false/i || !v }
42
42
  end
43
43
  end
44
44
  end
@@ -19,31 +19,43 @@ describe StackerBee::Middleware::DictionaryFlattener do
19
19
  describe ".new" do
20
20
  subject { described_class.new.params(params) }
21
21
 
22
- def prefix(number)
22
+ def param(number)
23
23
  described_class.tokenize "rebels[#{number}]"
24
24
  end
25
25
 
26
26
  let(:params) do
27
27
  { "time" => "long ago",
28
- "rebels" => { "r2" => "d2", "r1" => "", "father" => false } }
28
+ "rebels" => {
29
+ "r2" => "d2",
30
+ "blank" => "",
31
+ "falsey" => "false",
32
+ "false" => false,
33
+ "droid" => true } }
29
34
  end
30
35
 
31
36
  it "flattens objects in the manner that cloudstack expects" do
32
- subject["#{prefix(0)}.name"].should eq "r2"
33
- subject["#{prefix(0)}.key"].should eq "r2"
34
- subject["#{prefix(0)}.value"].should eq "d2"
37
+ subject["#{param(0)}.name"].should eq "r2"
38
+ subject["#{param(0)}.key"].should eq "r2"
39
+ subject["#{param(0)}.value"].should eq "d2"
35
40
  end
36
41
 
37
42
  it "does not flatten empty hashes" do
38
- subject.should_not have_key "#{prefix(2)}.name"
43
+ subject.should_not have_key "#{param(2)}.name"
39
44
  end
40
45
 
41
- it "handles booleans" do
42
- subject["#{prefix(1)}.name"].should eq "father"
46
+ it "handles true booleans" do
47
+ subject["#{param(1)}.name"].should eq "droid"
48
+ subject["#{param(1)}.value"].should be_true
43
49
  end
44
50
 
45
51
  it "removes original map params" do
46
52
  subject.should_not have_key "rebels"
47
53
  end
54
+
55
+ it "doesnt send false to CloudStack" do
56
+ # This assumption is based on CloudStack UI behavior
57
+ subject.values.should_not include false
58
+ subject.values.should_not include "false"
59
+ end
48
60
  end
49
61
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stacker_bee
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.pre232
4
+ version: 2.1.0.pre236
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Sterndale
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-16 00:00:00.000000000 Z
12
+ date: 2014-06-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday