logstash-filter-mutate 3.5.7 → 3.5.8

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: b2e5b32e8796c3dc7709a89d2e345fbd720f4c144dc90150833e357c052473b6
4
- data.tar.gz: ce9ac9d9dc6b3ea1e87e3628c6f7a3725aa4defaea47feffbbfbc966824c8113
3
+ metadata.gz: a35944145cf520f4dc7a0249e8d4c75e60abcf0c454545f0fb9a4a70af223bea
4
+ data.tar.gz: 431b8427123636a98fa9c51a4460157d6018cd594c927e95e9028048f49c2e3a
5
5
  SHA512:
6
- metadata.gz: 24571cc6195435dc6edfc23cd3c4abae6c6041f77acc5749c5e944ad10f2ed71457b89bbc8c152d836855460ee3b8b0ddbb82139d4b4f1c398f2e9602005161a
7
- data.tar.gz: 2be971ad1a39c3e86a6af402c3a08710db26c86fecb7e8a28878bb87ca4e1cb7f72eb7d4290f49079af78252dd3165c17928e0f5d5da7aaf069bf11beb2476f3
6
+ metadata.gz: 1c7c36f559f8733d38ba8d87f2017418b380c1178100fb4a7641cb5c80e5440b06e5e6aaed46b3f9c53be3a5aeaa245bb3f2fd90a90a41ddd105c3ff00046ffb
7
+ data.tar.gz: b8b4c405276c6714db052d3cd1a46a5286c4ef787dd9aad33b7861468e6d83410f13eea597dc41aee0a03d6e110a40ace196bb687efba0caa417114bfdeb6bb3
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 3.5.8
2
+ - Fix "Can't modify frozen string" error when converting boolean to `string` [#171](https://github.com/logstash-plugins/logstash-filter-mutate/pull/171)
3
+
1
4
  ## 3.5.7
2
5
  - Clarify that `split` and `join` also support strings [#164](https://github.com/logstash-plugins/logstash-filter-mutate/pull/164)
3
6
 
@@ -330,7 +330,8 @@ class LogStash::Filters::Mutate < LogStash::Filters::Base
330
330
  # target encoding and only change if necessary, so calling
331
331
  # valid_encoding? is redundant
332
332
  # see https://twitter.com/jordansissel/status/444613207143903232
333
- value.to_s.force_encoding(Encoding::UTF_8)
333
+ # use + since .to_s on nil/boolean returns a frozen string since ruby 2.7
334
+ (+value.to_s).force_encoding(Encoding::UTF_8)
334
335
  end
335
336
 
336
337
  def convert_boolean(value)
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-mutate'
4
- s.version = '3.5.7'
4
+ s.version = '3.5.8'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Performs mutations on fields"
7
7
  s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"
@@ -34,7 +34,7 @@ describe 'LogStash::Filters::Mutate' do
34
34
  CONFIG
35
35
  end
36
36
 
37
- sample("message" => "hello WORLD", "lower1" => "PPQQRRSS", "lower2" => "pppqqq") do
37
+ sample({"message" => "hello WORLD", "lower1" => "PPQQRRSS", "lower2" => "pppqqq"}) do
38
38
  result = results.first
39
39
  expect(result.get("bar")).to eq('world')
40
40
  expect(result.get("lower1")).to eq("ppqqrrss")
@@ -428,7 +428,7 @@ describe LogStash::Filters::Mutate do
428
428
  }
429
429
  }'
430
430
 
431
- sample("unicorns" => 1234) do
431
+ sample({"unicorns" => 1234}) do
432
432
  expect(subject.get("unicorns")).to eq "1234"
433
433
  end
434
434
  end
@@ -561,25 +561,25 @@ describe LogStash::Filters::Mutate do
561
561
  end
562
562
 
563
563
  context 'when field is the true value' do
564
- sample('field' => true) do
564
+ sample({'field' => true}) do
565
565
  expect(subject.get('field')).to eq(1.0)
566
566
  end
567
567
  end
568
568
 
569
569
  context 'when field is the false value' do
570
- sample('field' => false) do
570
+ sample({'field' => false}) do
571
571
  expect(subject.get('field')).to eq(0.0)
572
572
  end
573
573
  end
574
574
 
575
575
  context 'when field is nil' do
576
- sample('field' => nil) do
576
+ sample({'field' => nil}) do
577
577
  expect(subject.get('field')).to be_nil
578
578
  end
579
579
  end
580
580
 
581
581
  context 'when field is not set' do
582
- sample('field' => nil) do
582
+ sample({'field' => nil}) do
583
583
  expect(subject.get('field')).to be_nil
584
584
  end
585
585
  end
@@ -634,25 +634,25 @@ describe LogStash::Filters::Mutate do
634
634
  end
635
635
 
636
636
  context 'when field is the true value' do
637
- sample('field' => true) do
637
+ sample({'field' => true}) do
638
638
  expect(subject.get('field')).to eq(1.0)
639
639
  end
640
640
  end
641
641
 
642
642
  context 'when field is the false value' do
643
- sample('field' => false) do
643
+ sample({'field' => false}) do
644
644
  expect(subject.get('field')).to eq(0.0)
645
645
  end
646
646
  end
647
647
 
648
648
  context 'when field is nil' do
649
- sample('field' => nil) do
649
+ sample({'field' => nil}) do
650
650
  expect(subject.get('field')).to be_nil
651
651
  end
652
652
  end
653
653
 
654
654
  context 'when field is not set' do
655
- sample('field' => nil) do
655
+ sample({'field' => nil}) do
656
656
  expect(subject.get('field')).to be_nil
657
657
  end
658
658
  end
@@ -666,7 +666,7 @@ describe LogStash::Filters::Mutate do
666
666
  }
667
667
  }'
668
668
 
669
- sample("unicorns" => "Magnificient, but extinct, animals") do
669
+ sample({"unicorns" => "Magnificient, but extinct, animals"}) do
670
670
  expect(subject.get("unicorns")).to eq "Magnificient, and common, animals"
671
671
  end
672
672
  end
@@ -679,8 +679,8 @@ describe LogStash::Filters::Mutate do
679
679
  }
680
680
  }'
681
681
 
682
- sample("unicorns" => [
683
- "Magnificient extinct animals", "Other extinct ideas" ]
682
+ sample({"unicorns" => [
683
+ "Magnificient extinct animals", "Other extinct ideas" ]}
684
684
  ) do
685
685
  expect(subject.get("unicorns")).to eq [
686
686
  "Magnificient common animals",
@@ -698,7 +698,7 @@ describe LogStash::Filters::Mutate do
698
698
  }
699
699
  }'
700
700
 
701
- sample("colors" => "One red car", "shapes" => "Four red squares") do
701
+ sample({"colors" => "One red car", "shapes" => "Four red squares"}) do
702
702
  expect(subject.get("colors")).to eq "One blue car"
703
703
  expect(subject.get("shapes")).to eq "Four red circles"
704
704
  end
@@ -712,7 +712,7 @@ describe LogStash::Filters::Mutate do
712
712
  }
713
713
  }'
714
714
 
715
- sample("colors" => "red3") do
715
+ sample({"colors" => "red3"}) do
716
716
  expect(subject.get("colors")).to eq "redblue"
717
717
  end
718
718
  end
@@ -758,7 +758,7 @@ describe LogStash::Filters::Mutate do
758
758
  }
759
759
  CONFIG
760
760
 
761
- sample("field_one" => "value", "x" => "one") do
761
+ sample({"field_one" => "value", "x" => "one"}) do
762
762
  expect(subject).to_not include("field_one")
763
763
  expect(subject).to include("destination")
764
764
  end
@@ -773,7 +773,7 @@ describe LogStash::Filters::Mutate do
773
773
  }
774
774
  CONFIG
775
775
 
776
- sample("field_one" => "value", "x" => "one") do
776
+ sample({"field_one" => "value", "x" => "one"}) do
777
777
  expect(subject).to_not include("origin")
778
778
  expect(subject).to include("field_one")
779
779
  end
@@ -934,6 +934,26 @@ describe LogStash::Filters::Mutate do
934
934
  end
935
935
  end
936
936
 
937
+ describe "convert auto-frozen values to string" do
938
+ config <<-CONFIG
939
+ filter {
940
+ mutate {
941
+ convert => {
942
+ "true_field" => "string"
943
+ "false_field" => "string"
944
+ }
945
+ }
946
+ }
947
+ CONFIG
948
+
949
+ sample({ "true_field" => true, "false_field" => false }) do
950
+ expect(subject.get("true_field")).to eq "true"
951
+ expect(subject.get("true_field")).to be_a(String)
952
+ expect(subject.get("false_field")).to eq "false"
953
+ expect(subject.get("false_field")).to be_a(String)
954
+ end
955
+ end
956
+
937
957
  #LOGSTASH-1529
938
958
  describe "gsub on a String with dynamic fields (%{}) in pattern" do
939
959
  config '
@@ -943,7 +963,7 @@ describe LogStash::Filters::Mutate do
943
963
  }
944
964
  }'
945
965
 
946
- sample("unicorns" => "Unicorns of type blue are common", "unicorn_type" => "blue") do
966
+ sample({"unicorns" => "Unicorns of type blue are common", "unicorn_type" => "blue"}) do
947
967
  expect(subject.get("unicorns")).to eq "Unicorns green are common"
948
968
  end
949
969
  end
@@ -957,7 +977,7 @@ describe LogStash::Filters::Mutate do
957
977
  }
958
978
  }'
959
979
 
960
- sample("unicorns2" => "Unicorns of type blue are common", "unicorn_color" => "blue") do
980
+ sample({"unicorns2" => "Unicorns of type blue are common", "unicorn_color" => "blue"}) do
961
981
  expect(subject.get("unicorns2")).to eq "Unicorns blue and green are common"
962
982
  end
963
983
  end
@@ -971,9 +991,9 @@ describe LogStash::Filters::Mutate do
971
991
  }
972
992
  }'
973
993
 
974
- sample("unicorns_array" => [
994
+ sample({"unicorns_array" => [
975
995
  "Unicorns of type blue are found in Alaska", "Unicorns of type blue are extinct" ],
976
- "color" => "blue"
996
+ "color" => "blue" }
977
997
  ) do
978
998
  expect(subject.get("unicorns_array")).to eq [
979
999
  "Unicorns blue and green are found in Alaska",
@@ -990,7 +1010,7 @@ describe LogStash::Filters::Mutate do
990
1010
  }
991
1011
  }'
992
1012
 
993
- sample("foo" => "bar") do
1013
+ sample({"foo" => "bar"}) do
994
1014
  expect(subject.get("list")).to eq ["bar"]
995
1015
  expect(subject.get("foo")).to eq "bar"
996
1016
  end
@@ -1004,7 +1024,7 @@ describe LogStash::Filters::Mutate do
1004
1024
  }
1005
1025
  }'
1006
1026
 
1007
- sample("foo" => "bar", "list" => []) do
1027
+ sample({"foo" => "bar", "list" => []}) do
1008
1028
  expect(subject.get("list")).to eq ["bar"]
1009
1029
  expect(subject.get("foo")).to eq "bar"
1010
1030
  end
@@ -1018,7 +1038,7 @@ describe LogStash::Filters::Mutate do
1018
1038
  }
1019
1039
  }'
1020
1040
 
1021
- sample("foo" => "bar", "list" => ["baz"]) do
1041
+ sample({"foo" => "bar", "list" => ["baz"]}) do
1022
1042
  expect(subject.get("list")).to eq ["baz", "bar"]
1023
1043
  expect(subject.get("foo")).to eq "bar"
1024
1044
  end
@@ -1032,7 +1052,7 @@ describe LogStash::Filters::Mutate do
1032
1052
  }
1033
1053
  }'
1034
1054
 
1035
- sample("foo" => ["bar"], "list" => ["baz"]) do
1055
+ sample({"foo" => ["bar"], "list" => ["baz"]}) do
1036
1056
  expect(subject.get("list")).to eq ["baz", "bar"]
1037
1057
  expect(subject.get("foo")).to eq ["bar"]
1038
1058
  end
@@ -1046,7 +1066,7 @@ describe LogStash::Filters::Mutate do
1046
1066
  }
1047
1067
  }'
1048
1068
 
1049
- sample("foo" => [], "list" => ["baz"]) do
1069
+ sample({"foo" => [], "list" => ["baz"]}) do
1050
1070
  expect(subject.get("list")).to eq ["baz"]
1051
1071
  expect(subject.get("foo")).to eq []
1052
1072
  end
@@ -1060,7 +1080,7 @@ describe LogStash::Filters::Mutate do
1060
1080
  }
1061
1081
  }'
1062
1082
 
1063
- sample("foo" => ["bar"], "list" => "baz") do
1083
+ sample({"foo" => ["bar"], "list" => "baz"}) do
1064
1084
  expect(subject.get("list")).to eq ["baz", "bar"]
1065
1085
  expect(subject.get("foo")).to eq ["bar"]
1066
1086
  end
@@ -1074,7 +1094,7 @@ describe LogStash::Filters::Mutate do
1074
1094
  }
1075
1095
  }'
1076
1096
 
1077
- sample("foo" => "bar", "list" => "baz") do
1097
+ sample({"foo" => "bar", "list" => "baz"}) do
1078
1098
  expect(subject.get("list")).to eq ["baz", "bar"]
1079
1099
  expect(subject.get("foo")).to eq "bar"
1080
1100
  end
@@ -1094,7 +1114,7 @@ describe LogStash::Filters::Mutate do
1094
1114
  }'
1095
1115
 
1096
1116
 
1097
- sample("field1" => nil, "field2" => nil, "field3" => nil, "field4" => true) do
1117
+ sample({"field1" => nil, "field2" => nil, "field3" => nil, "field4" => true}) do
1098
1118
  expect(subject.get("field1")).to eq("Hello")
1099
1119
  expect(subject.get("field2")).to eq("Bye")
1100
1120
  expect(subject.get("field3")).to eq("5")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-mutate
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.7
4
+ version: 3.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-05-11 00:00:00.000000000 Z
11
+ date: 2023-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement