testcentricity_web 4.6.7 → 4.6.9

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: 182dd10878593e23060b0db2787e26b0819f7d87750e6dfe9607d2c63c903713
4
- data.tar.gz: 78c8c0b47ae8a5f7b75bf1121c945f738ed3e5ab1d3996fe520f86a93b3c631c
3
+ metadata.gz: 48391198c0afc8b42f948c2e3dd6dbf77b0b8ff486fa4e9746bbaf2ec34c0231
4
+ data.tar.gz: e377c0af90d0b0478ea4dcad9ef08b1df337facc87dabc0215cbbed6c2a51a31
5
5
  SHA512:
6
- metadata.gz: 237057b41a1f58832c386b7707ea4f5e95c1b72c72b343f52327cdf7d69008c015df149501ff79ac0572965b3f159d0d77b0690a22e10e31c5ee08ce8c7800a1
7
- data.tar.gz: 447075ba7e918097d53316ff73bc9939f25688057ac0f6cab0c001b47282f512178b7354eaeb2a8e2e2f0a1eed29f5b8c38c2eed960d2c1f64f9410b9cbabfbe
6
+ metadata.gz: 762285729fbfcfc5f56b56a060f5a32d0e23f9f865417733621be3241dc9da01ca6b562991aa0d871989702d6a1b54952f3f2a7c7d640e9f68c726e5dd1ad0f4
7
+ data.tar.gz: fc982517f54bf55c571f5b0062abd1237e6df518badda8711a9ac2812faebfaba58d59703d739c91b25a9bf9e4187399160dc15449fa637f6a5e4d263a9651e8
data/CHANGELOG.md CHANGED
@@ -2,6 +2,41 @@
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
4
 
5
+ ## [4.6.9] - 31-OCT-2025
6
+
7
+ ### Added
8
+
9
+ * Added `Table.get_footer_columns` and `Table.get_footer_column`methods.
10
+ * Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of the following
11
+ `Table` properties:
12
+ * `:column_footers`
13
+ * `:column_footer`
14
+ * `:column_header`
15
+
16
+ ### Changed
17
+
18
+ * `UIElement.get_max` now works with HTML `<progress>` elements.
19
+
20
+
21
+ ## [4.6.8] - 27-OCT-2025
22
+
23
+ ### Changed
24
+
25
+ * `UIElement.aria_valuemax`, `UIElement.aria_valuemin`, and `UIElement.aria_valuenow` now return `Integer` or `Float`
26
+ instead of `String` result.
27
+ * `UIElement.aria_rowcount` and `UIElement.aria_colcount` now return `Integer` instead of `String` result.
28
+
29
+ ### Added
30
+ * Updated `PageObject.verify_ui_states` and `PageSection.verify_ui_states` methods to support verification of the following
31
+ `Table` properties:
32
+ * `:cell_attribute`
33
+ * `:row_attribute`
34
+ * `:aria_rowindex`
35
+
36
+ ### Fixed
37
+ * `Table.get_row_data` and `Table.get_row_attribute` methods now return data for row 1 instead of `nil`.
38
+
39
+
5
40
  ## [4.6.7] - 21-OCT-2025
6
41
 
7
42
  ### Added
data/README.md CHANGED
@@ -24,7 +24,7 @@ The TestCentricity™ For Web gem supports connecting to, and running automated
24
24
  * [TestingBot](https://testingbot.com/features)
25
25
  * [LambdaTest](https://www.lambdatest.com/selenium-automation)
26
26
  * web portals utilizing JavaScript front end application frameworks like Ember, React, Angular, and GWT
27
- * web pages containing HTML5 Video and Audio objects
27
+ * web pages containing HTML5 Video and Audio objects, including text caption tracks
28
28
  * locally hosted emulated iOS Mobile Safari, Android, Windows Phone, or Blackberry mobile browsers (running within a local instance of Chrome)
29
29
 
30
30
 
@@ -40,15 +40,15 @@ Cucumber can be found [here](https://github.com/TestCentricity/tc_multi_webdrive
40
40
 
41
41
  ### Which gem should I use?
42
42
 
43
- * The [TestCentricity For **Web** gem](https://rubygems.org/gems/testcentricity_web) supports testing of web interfaces via desktop and mobile web browsers
43
+ * The [TestCentricity For **Web** gem](https://rubygems.org/gems/testcentricity_web) supports testing of web apps via desktop and mobile web browsers
44
44
  * The [TestCentricity For **Mobile** gem](https://rubygems.org/gems/testcentricity_mobile) supports testing of native iOS and Android mobile apps
45
45
  * The [TestCentricity For **Apps** gem](https://rubygems.org/gems/testcentricity_apps) supports testing of MacOS desktop apps and native iOS and Android mobile apps
46
46
 
47
- | Tested platforms | TestCentricity For Web | TestCentricity For Mobile | TestCentricity For Apps |
48
- |---------------------------------------------|:-:|:-:|:-:|
49
- | Desktop/mobile web browsers only | Yes | No | No |
50
- | Native mobile iOS and/or Android apps only | No | Yes | Yes |
51
- | MacOS desktop apps | No | No | Yes |
47
+ | Tested platforms | TestCentricity For Web | TestCentricity For Mobile | TestCentricity For Apps |
48
+ |--------------------------------------------|:----------------------:|:-------------------------:|:-----------------------:|
49
+ | Desktop/mobile web apps only | Yes | No | No |
50
+ | Native mobile iOS and/or Android apps only | No | Yes | Yes |
51
+ | MacOS desktop apps | No | No | Yes |
52
52
 
53
53
 
54
54
  ## Installation
@@ -781,12 +781,18 @@ The `verify_ui_states` method supports the following property/state pairs:
781
781
 
782
782
  **Tables**
783
783
 
784
- :rowcount Integer
785
- :columncount Integer
786
- :columnheaders Array of String
787
- :cell Hash
788
- :row Hash
789
- :column Hash
784
+ :rowcount Integer
785
+ :columncount Integer
786
+ :columnheaders Array of String
787
+ :columnfooters Array of String
788
+ :cell Hash
789
+ :row Hash
790
+ :column Hash
791
+ :column_header Hash
792
+ :column_footer Hash
793
+ :cell_attribute Integer, Float, or String
794
+ :row_attribute Integer, Float, or String
795
+ :aria_rowindex Integer
790
796
 
791
797
  **Audio/Video Media Objects**
792
798
 
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '4.6.7'
2
+ VERSION = '4.6.9'
3
3
  end
@@ -151,8 +151,6 @@ module TestCentricity
151
151
  ui_object.active_track_source
152
152
  when :all_tracks_data
153
153
  ui_object.all_tracks_data
154
- when :crossorigin
155
- ui_object.crossorigin
156
154
  when :preload
157
155
  ui_object.preload
158
156
  when :poster
@@ -167,6 +165,8 @@ module TestCentricity
167
165
  ui_object.get_group_headings
168
166
  when :column_headers
169
167
  ui_object.get_header_columns
168
+ when :column_footers
169
+ ui_object.get_footer_columns
170
170
  when :count, :count_visible
171
171
  ui_object.count(visible = true)
172
172
  when :all_items, :all_list_items
@@ -177,19 +177,43 @@ module TestCentricity
177
177
  ui_object.style
178
178
  when :href
179
179
  ui_object.href
180
+ when :content_editable
181
+ ui_object.content_editable?
180
182
  when :role
181
183
  ui_object.role
182
184
  when :aria_disabled
183
185
  ui_object.aria_disabled?
184
- # :nocov:
185
- when :count_all
186
- ui_object.count(visible = :all)
187
186
  when :aria_label
188
187
  ui_object.aria_label
189
- when :tabindex
190
- ui_object.tabindex
191
188
  when :aria_labelledby
192
189
  ui_object.aria_labelledby
190
+ when :aria_required
191
+ ui_object.aria_required?
192
+ when :aria_checked
193
+ ui_object.aria_checked?
194
+ when :aria_readonly
195
+ ui_object.aria_readonly?
196
+ when :aria_rowcount
197
+ ui_object.aria_rowcount
198
+ when :aria_colcount
199
+ ui_object.aria_colcount
200
+ when :aria_valuemax
201
+ ui_object.aria_valuemax
202
+ when :aria_valuemin
203
+ ui_object.aria_valuemin
204
+ when :aria_valuenow
205
+ ui_object.aria_valuenow
206
+ when :aria_orientation
207
+ ui_object.aria_orientation
208
+ when :aria_multiline
209
+ ui_object.aria_multiline?
210
+ when :aria_multiselectable
211
+ ui_object.aria_multiselectable?
212
+ # :nocov:
213
+ when :count_all
214
+ ui_object.count(visible = :all)
215
+ when :tabindex
216
+ ui_object.tabindex
193
217
  when :aria_describedby
194
218
  ui_object.aria_describedby
195
219
  when :aria_live
@@ -202,34 +226,16 @@ module TestCentricity
202
226
  ui_object.aria_hidden?
203
227
  when :aria_expanded
204
228
  ui_object.aria_expanded?
205
- when :aria_required
206
- ui_object.aria_required?
207
- when :aria_invalid
229
+ when :aria_invalid
208
230
  ui_object.aria_invalid?
209
- when :aria_checked
210
- ui_object.aria_checked?
211
- when :aria_readonly
212
- ui_object.aria_readonly?
213
231
  when :aria_pressed
214
232
  ui_object.aria_pressed?
215
233
  when :aria_haspopup
216
234
  ui_object.aria_haspopup?
217
235
  when :aria_sort
218
236
  ui_object.aria_sort
219
- when :aria_rowcount
220
- ui_object.aria_rowcount
221
- when :aria_colcount
222
- ui_object.aria_colcount
223
- when :aria_valuemax
224
- ui_object.aria_valuemax
225
- when :aria_valuemin
226
- ui_object.aria_valuemin
227
- when :aria_valuenow
228
- ui_object.aria_valuenow
229
237
  when :aria_valuetext
230
238
  ui_object.aria_valuetext
231
- when :aria_orientation
232
- ui_object.aria_orientation
233
239
  when :aria_keyshortcuts
234
240
  ui_object.aria_keyshortcuts
235
241
  when :aria_roledescription
@@ -240,12 +246,8 @@ module TestCentricity
240
246
  ui_object.aria_controls
241
247
  when :aria_modal
242
248
  ui_object.aria_modal?
243
- when :aria_multiline
244
- ui_object.aria_multiline?
245
- when :aria_multiselectable
246
- ui_object.aria_multiselectable?
247
- when :content_editable
248
- ui_object.content_editable?
249
+ when :crossorigin
250
+ ui_object.crossorigin
249
251
  # :nocov:
250
252
  when :validation_message
251
253
  ui_object.validation_message
@@ -281,12 +283,22 @@ module TestCentricity
281
283
  ui_object.get_table_row(value.to_i)
282
284
  when :column
283
285
  ui_object.get_table_column(value.to_i)
286
+ when :column_header
287
+ ui_object.get_header_column(value.to_i)
288
+ when :column_footer
289
+ ui_object.get_footer_column(value.to_i)
284
290
  when :item
285
291
  ui_object.get_list_item(value.to_i)
286
292
  when :attribute
287
293
  ui_object.get_attribute(value)
288
294
  when :native_attribute
289
295
  ui_object.get_native_attribute(value)
296
+ when :cell_attribute
297
+ ui_object.get_cell_attribute(value[0].to_i, value[1].to_i, value[2])
298
+ when :row_attribute
299
+ ui_object.get_row_attribute(value[0].to_i, value[1])
300
+ when :aria_rowindex
301
+ ui_object.get_row_attribute(value.to_i, 'aria-rowindex')
290
302
  else
291
303
  raise "#{key} is not a valid property key"
292
304
  end
@@ -8,6 +8,9 @@ module TestCentricity
8
8
  attr_accessor :table_header
9
9
  attr_accessor :header_row
10
10
  attr_accessor :header_column
11
+ attr_accessor :table_footer
12
+ attr_accessor :footer_row
13
+ attr_accessor :footer_column
11
14
  attr_accessor :row_header
12
15
  attr_accessor :tree_expand
13
16
  attr_accessor :tree_collapse
@@ -24,6 +27,9 @@ module TestCentricity
24
27
  table_header: 'thead',
25
28
  header_row: 'tr',
26
29
  header_column: 'th',
30
+ table_footer: 'tfoot',
31
+ footer_row: 'tr',
32
+ footer_column: 'th',
27
33
  row_header: nil
28
34
  }
29
35
 
@@ -55,6 +61,12 @@ module TestCentricity
55
61
  @header_row = value
56
62
  when :header_column
57
63
  @header_column = value
64
+ when :table_footer
65
+ @table_footer = value
66
+ when :footer_row
67
+ @footer_row = value
68
+ when :footer_column
69
+ @footer_column = value
58
70
  when :row_header
59
71
  @row_header = value
60
72
  when :tree_expand
@@ -317,13 +329,9 @@ module TestCentricity
317
329
  raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
318
330
  case @locator_type
319
331
  when :xpath
320
- row > 1 ?
321
- set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]") :
322
- set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}")
332
+ set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]")
323
333
  when :css
324
- row > 1 ?
325
- set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})") :
326
- set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}")
334
+ set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})")
327
335
  end
328
336
  value = get_value if exists?
329
337
  clear_alt_locator
@@ -431,7 +439,15 @@ module TestCentricity
431
439
  set_table_cell_locator(row, column)
432
440
  result = get_native_attribute(attrib)
433
441
  clear_alt_locator
434
- result
442
+ unless result.blank?
443
+ if result.is_int?
444
+ result.to_i
445
+ elsif result.is_float?
446
+ result.to_f
447
+ else
448
+ result
449
+ end
450
+ end
435
451
  end
436
452
 
437
453
  def get_row_attribute(row, attrib)
@@ -439,17 +455,21 @@ module TestCentricity
439
455
  raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
440
456
  case @locator_type
441
457
  when :xpath
442
- row > 1 ?
443
- set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]") :
444
- set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}")
458
+ set_alt_locator("#{@locator}/#{@table_body}/#{@table_row}[#{row}]")
445
459
  when :css
446
- row > 1 ?
447
- set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})") :
448
- set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}")
460
+ set_alt_locator("#{@locator} > #{@table_body} > #{@table_row}:nth-of-type(#{row})")
449
461
  end
450
462
  result = get_native_attribute(attrib)
451
463
  clear_alt_locator
452
- result
464
+ unless result.blank?
465
+ if result.is_int?
466
+ result.to_i
467
+ elsif result.is_float?
468
+ result.to_f
469
+ else
470
+ result
471
+ end
472
+ end
453
473
  end
454
474
 
455
475
  def find_row_attribute(attrib, search_value)
@@ -568,6 +588,36 @@ module TestCentricity
568
588
  columns
569
589
  end
570
590
 
591
+ def get_footer_column(column)
592
+ column_count = get_column_count
593
+ raise "Column #{column} exceeds number of columns (#{column_count}) in table footer #{object_ref_message}" if column > column_count
594
+ case @locator_type
595
+ when :xpath
596
+ set_alt_locator("#{@locator}//#{@table_footer}/#{@footer_row}/#{@footer_column}[#{column}]")
597
+ when :css
598
+ set_alt_locator("#{@locator} #{@table_footer} > #{@footer_row} > #{@footer_column}:nth-of-type(#{column})")
599
+ end
600
+ value = get_value(:all) if exists?(:all)
601
+ clear_alt_locator
602
+ value
603
+ end
604
+
605
+ def get_footer_columns
606
+ columns = []
607
+ column_count = get_column_count
608
+ (1..column_count).each do |column|
609
+ case @locator_type
610
+ when :xpath
611
+ set_alt_locator("#{@locator}//#{@table_footer}/#{@footer_row}/#{@footer_column}[#{column}]")
612
+ when :css
613
+ set_alt_locator("#{@locator} #{@table_footer} > #{@footer_row} > #{@footer_column}:nth-of-type(#{column})")
614
+ end
615
+ columns.push(get_value(:all)) if exists?(:all)
616
+ end
617
+ clear_alt_locator
618
+ columns
619
+ end
620
+
571
621
  def is_table_row_expanded?(row, column)
572
622
  row_count = get_row_count
573
623
  raise "Row #{row} exceeds number of rows (#{row_count}) in table #{object_ref_message}" if row > row_count
@@ -92,27 +92,6 @@ module TestCentricity
92
92
  end
93
93
  end
94
94
 
95
- # Return max attribute of a number type text field.
96
- #
97
- # @return [Integer]
98
- # @example
99
- # max_points_value = points_field.get_max
100
- #
101
- def get_max
102
- obj, = find_element
103
- object_not_found_exception(obj, nil)
104
- max = obj.native.attribute('max')
105
- unless max.blank?
106
- if max.is_int?
107
- max.to_i
108
- elsif max.is_float?
109
- max.to_f
110
- else
111
- max
112
- end
113
- end
114
- end
115
-
116
95
  # Return step attribute of a number type text field.
117
96
  #
118
97
  # @return [Integer]
@@ -577,13 +577,15 @@ module TestCentricity
577
577
  def get_value(visible = true)
578
578
  obj, type = find_element(visible)
579
579
  object_not_found_exception(obj, type)
580
- text = case obj.tag_name.downcase
581
- when 'input', 'select', 'textarea'
582
- obj.value
583
- else
584
- obj.text
585
- end
586
- text.gsub(/[[:space:]]+/, ' ').strip unless text.nil?
580
+ value = case obj.tag_name.downcase
581
+ when 'input', 'select', 'textarea'
582
+ obj.value
583
+ when 'progress'
584
+ obj.value.to_i
585
+ else
586
+ obj.text
587
+ end
588
+ value.is_a?(String) ? value.gsub(/[[:space:]]+/, ' ').strip : value
587
589
  end
588
590
 
589
591
  alias get_caption get_value
@@ -700,6 +702,27 @@ module TestCentricity
700
702
  )
701
703
  end
702
704
 
705
+ # Return max attribute of a number type text field or a progress bar.
706
+ #
707
+ # @return [Integer]
708
+ # @example
709
+ # max_points_value = points_field.get_max
710
+ #
711
+ def get_max
712
+ obj, = find_element
713
+ object_not_found_exception(obj, nil)
714
+ max = obj.native.attribute('max')
715
+ unless max.blank?
716
+ if max.is_int?
717
+ max.to_i
718
+ elsif max.is_float?
719
+ max.to_f
720
+ else
721
+ max
722
+ end
723
+ end
724
+ end
725
+
703
726
  # Return UI object's style property
704
727
  #
705
728
  # @return [String]
@@ -787,7 +810,14 @@ module TestCentricity
787
810
  # user_grid.aria_rowcount
788
811
  #
789
812
  def aria_rowcount
790
- get_attribute('aria-rowcount')
813
+ rows = get_attribute('aria-rowcount')
814
+ unless rows.blank?
815
+ if rows.is_int?
816
+ rows.to_i
817
+ else
818
+ rows
819
+ end
820
+ end
791
821
  end
792
822
 
793
823
  # Return state of UI object's aria-colcount property
@@ -797,7 +827,14 @@ module TestCentricity
797
827
  # user_grid.aria_colcount
798
828
  #
799
829
  def aria_colcount
800
- get_attribute('aria-colcount')
830
+ cols = get_attribute('aria-colcount')
831
+ unless cols.blank?
832
+ if cols.is_int?
833
+ cols.to_i
834
+ else
835
+ cols
836
+ end
837
+ end
801
838
  end
802
839
 
803
840
  # Return state of UI object's aria-valuemax property
@@ -807,7 +844,16 @@ module TestCentricity
807
844
  # volume_slider.aria_valuemax
808
845
  #
809
846
  def aria_valuemax
810
- get_attribute('aria-valuemax')
847
+ max = get_attribute('aria-valuemax')
848
+ unless max.blank?
849
+ if max.is_int?
850
+ max.to_i
851
+ elsif max.is_float?
852
+ max.to_f
853
+ else
854
+ max
855
+ end
856
+ end
811
857
  end
812
858
 
813
859
  # Return state of UI object's aria-valuemin property
@@ -817,7 +863,16 @@ module TestCentricity
817
863
  # volume_slider.aria_valuemin
818
864
  #
819
865
  def aria_valuemin
820
- get_attribute('aria-valuemin')
866
+ min = get_attribute('aria-valuemin')
867
+ unless min.blank?
868
+ if min.is_int?
869
+ min.to_i
870
+ elsif min.is_float?
871
+ min.to_f
872
+ else
873
+ min
874
+ end
875
+ end
821
876
  end
822
877
 
823
878
  # Return state of UI object's aria-valuenow property
@@ -827,12 +882,21 @@ module TestCentricity
827
882
  # volume_slider.aria_valuenow
828
883
  #
829
884
  def aria_valuenow
830
- get_attribute('aria-valuenow')
885
+ result = get_attribute('aria-valuenow')
886
+ unless result.blank?
887
+ if result.is_int?
888
+ result.to_i
889
+ elsif result.is_float?
890
+ result.to_f
891
+ else
892
+ result
893
+ end
894
+ end
831
895
  end
832
896
 
833
897
  # Return state of UI object's aria-valuetext property
834
898
  #
835
- # @return [Integer]
899
+ # @return [String]
836
900
  # @example
837
901
  # volume_slider.aria_valuetext
838
902
  #
@@ -842,7 +906,7 @@ module TestCentricity
842
906
 
843
907
  # Return state of UI object's aria-orientation property
844
908
  #
845
- # @return [Integer]
909
+ # @return [String]
846
910
  # @example
847
911
  # volume_slider.aria_orientation
848
912
  #
@@ -852,7 +916,7 @@ module TestCentricity
852
916
 
853
917
  # Return state of UI object's aria-keyshortcuts property
854
918
  #
855
- # @return [Integer]
919
+ # @return [String]
856
920
  # @example
857
921
  # play_button.aria_keyshortcuts
858
922
  #
@@ -862,7 +926,7 @@ module TestCentricity
862
926
 
863
927
  # Return state of UI object's aria-roledescription property
864
928
  #
865
- # @return [Integer]
929
+ # @return [String]
866
930
  # @example
867
931
  # editor_button.aria_roledescription
868
932
  #
@@ -872,7 +936,7 @@ module TestCentricity
872
936
 
873
937
  # Return state of UI object's aria-autocomplete property
874
938
  #
875
- # @return [Integer]
939
+ # @return [Boolean]
876
940
  # @example
877
941
  # email_field.aria_autocomplete
878
942
  #
@@ -882,7 +946,7 @@ module TestCentricity
882
946
 
883
947
  # Return state of UI object's aria-controls property
884
948
  #
885
- # @return [Integer]
949
+ # @return [String]
886
950
  # @example
887
951
  # video_menu.aria_controls
888
952
  #
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: testcentricity_web
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.6.7
4
+ version: 4.6.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - A.J. Mrozinski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-20 00:00:00.000000000 Z
11
+ date: 2025-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 4.37.0
145
+ version: 4.38.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 4.37.0
152
+ version: 4.38.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: simplecov
155
155
  requirement: !ruby/object:Gem::Requirement