axi_tdl 0.0.7 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/gem-push.yml +42 -0
  3. data/.github/workflows/ruby.yml +35 -0
  4. data/.travis.yml +9 -0
  5. data/Gemfile +4 -0
  6. data/README.EN.md +317 -0
  7. data/README.md +24 -18
  8. data/Rakefile +1 -5
  9. data/axi_tdl.gemspec +4 -4
  10. data/lib/axi/AXI4/axi4_dpram_cache.rb +1 -0
  11. data/lib/axi/AXI4/axi4_dpram_cache.sv +4 -4
  12. data/lib/axi/AXI4/axis_to_axi4_wr.rb +5 -0
  13. data/lib/axi/AXI4/axis_to_axi4_wr.sv +7 -7
  14. data/lib/axi/AXI4/packet_partition/axi4_partition_rd_verb.sv +1 -1
  15. data/lib/axi/AXI4/packet_partition/data_inf_partition.sv +2 -2
  16. data/lib/axi/AXI_stream/axi_stream_latency.sv +56 -0
  17. data/lib/axi/AXI_stream/axi_stream_split_channel.sv +20 -20
  18. data/lib/axi/AXI_stream/axis_head_cut_verc.rb +99 -43
  19. data/lib/axi/AXI_stream/axis_head_cut_verc.sv +36 -39
  20. data/lib/axi/AXI_stream/axis_insert_copy.sv +1 -1
  21. data/lib/axi/AXI_stream/axis_length_split_with_user.sv +87 -0
  22. data/lib/axi/AXI_stream/axis_pipe_sync_seam.rb +41 -0
  23. data/lib/axi/AXI_stream/axis_pipe_sync_seam.sv +48 -0
  24. data/lib/axi/AXI_stream/axis_rom_contect_sim.rb +1 -0
  25. data/lib/axi/AXI_stream/packet_fifo/axi_stream_packet_long_fifo.sv +37 -16
  26. data/lib/axi/AXI_stream/parse_big_field_table_A2.sv +3 -2
  27. data/lib/axi/data_interface/data_inf_c/data_c_pipe_force_vld_bind_data.sv +1 -1
  28. data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync.sv +70 -0
  29. data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.rb +49 -0
  30. data/lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.sv +84 -0
  31. data/lib/axi_tdl.rb +12 -0
  32. data/lib/axi_tdl/version.rb +1 -1
  33. data/lib/tdl/SDL/axistream/axi_stream_packet_long_fifo_sdl.rb +1 -0
  34. data/lib/tdl/SDL/path_lib.rb +1 -1
  35. data/lib/tdl/SDL/vcs_axi4_comptable.rb +9 -0
  36. data/lib/tdl/SDL/vcs_axis_comptable.rb +17 -0
  37. data/lib/tdl/SDL/vcs_data_c_comptable.rb +9 -0
  38. data/lib/tdl/class_hdl/hdl_always_ff.rb +1 -1
  39. data/lib/tdl/class_hdl/hdl_redefine_opertor.rb +15 -3
  40. data/lib/tdl/examples/11_test_unit/tb_exp_test_unit.sv +1 -0
  41. data/lib/tdl/examples/2_hdl_class/module_def.rb +2 -1
  42. data/lib/tdl/examples/2_hdl_class/test_inst_sugar.rb +3 -1
  43. data/lib/tdl/examples/2_hdl_class/tmp/always_ff_test.sv +1 -1
  44. data/lib/tdl/examples/2_hdl_class/tmp/test_function.sv +2 -2
  45. data/lib/tdl/examples/2_hdl_class/tmp/test_module_var.sv +1 -1
  46. data/lib/tdl/examples/8_top_module/tb_test_top.sv +1 -0
  47. data/lib/tdl/examples/9_itegration/tb_test_tttop.sv +0 -2
  48. data/lib/tdl/exlib/test_point.rb +8 -2
  49. data/lib/tdl/sdlmodule/sdlmodule.rb +64 -0
  50. data/lib/tdl/sdlmodule/sdlmodule_draw.rb +13 -0
  51. data/lib/tdl/sdlmodule/top_module.rb +1 -0
  52. data/lib/tdl/tdl.rb +14 -2
  53. data/lib/tdl/tdlerror/tdlerror.rb +1 -0
  54. metadata +128 -14
  55. data/Gemfile.lock +0 -28
@@ -541,3 +541,4 @@ class SdlModule
541
541
  end
542
542
 
543
543
 
544
+
data/lib/tdl/tdl.rb CHANGED
@@ -89,7 +89,11 @@ require_relative "./exlib/itegration"
89
89
  require_relative "./exlib/itegration_verb"
90
90
  require_relative "./exlib/parse_argv"
91
91
  # require_relative "./tdlmodule_ex"
92
- require_relative "./SDL/path_lib" # require sdlmodule
92
+ # require_relative "./SDL/path_lib" # require sdlmodule
93
+ ## VSC COMPATABLE support
94
+ require_relative "./SDL/vcs_axi4_comptable.rb"
95
+ require_relative "./SDL/vcs_data_c_comptable.rb"
96
+ require_relative "./SDL/vcs_axis_comptable.rb"
93
97
 
94
98
  ## 添加 M2S方法
95
99
  require_relative "./axi_stream/axi_stream_interconnect.rb"
@@ -123,7 +127,7 @@ require_relative "./exlib/dve_tcl.rb"
123
127
 
124
128
  ## === INIT BLOCK Methods =====
125
129
  $argvs_hash = {}
126
- $argvs_hash = Parser.parse(ARGV) unless $_child_argv_
130
+ $argvs_hash = Parser.parse($TdlARGV || ARGV)
127
131
  TopModule.sim = $argvs_hash[:sim]
128
132
 
129
133
  class Tdl
@@ -254,6 +258,14 @@ class Tdl
254
258
  puts TopModule.current.test_unit.echo_units if TopModule.current
255
259
  puts(pagination("SUMMARY"))
256
260
  puts "#{TopModule.sim ? 'SIM' : 'SYNTH'} RUN SPEND #{Time.now - $__start_time__} sec @ TIME : #{Time.now}"
261
+
262
+ ## -----------
263
+ # TopModule.current.ref_modules.uniq.each do |e|
264
+ # unless e.is_a? ClassHDL::ClearSdlModule
265
+ # puts "#{e.real_sv_path}: #{e.module_name}"
266
+ # end
267
+ # end
268
+ ## ===========
257
269
  end
258
270
 
259
271
  end
@@ -1,5 +1,6 @@
1
1
  class TdlError < ScriptError
2
2
  def initialize(arge)
3
+ Tdl.PutsEnable = false
3
4
  head_str0 = String.new("\n+_____________________________________________+\n")
4
5
  head_str1 = "\n|----------------TDL ERROR--------------------|\n"
5
6
  end_str0 = "\n+================TDL ERROR====================+\n"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: axi_tdl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cook.Darwin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-21 00:00:00.000000000 Z
11
+ date: 2021-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -42,43 +42,46 @@ dependencies:
42
42
  name: pry
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.11'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.11'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '5.10'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
69
- description: 'tdl is a hardware Construction language, it like chisel, but more intresting.
70
- It is a DSL and base on ruby. Finally, it convert to systemverilog. '
68
+ version: '5.10'
69
+ description: 'tdl 是一种硬件构造语言, chisel类似, 但是更加有趣, 他是一种基于Ruby的DSL. 最终它会编译输出systemverilog
70
+ '
71
71
  email:
72
72
  - cook_darwin@hotmail.com
73
73
  executables: []
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - ".github/workflows/gem-push.yml"
78
+ - ".github/workflows/ruby.yml"
77
79
  - ".gitignore"
80
+ - ".travis.yml"
78
81
  - CODE_OF_CONDUCT.md
79
82
  - Gemfile
80
- - Gemfile.lock
81
83
  - LICENSE
84
+ - README.EN.md
82
85
  - README.md
83
86
  - Rakefile
84
87
  - axi_tdl.gemspec
@@ -214,6 +217,7 @@ files:
214
217
  - lib/axi/AXI_stream/axi_stream_interconnect_S2M_auto.sv
215
218
  - lib/axi/AXI_stream/axi_stream_interconnect_S2M_with_info.sv
216
219
  - lib/axi/AXI_stream/axi_stream_interconnect_S2M_with_keep.sv.bak
220
+ - lib/axi/AXI_stream/axi_stream_latency.sv
217
221
  - lib/axi/AXI_stream/axi_stream_packet_fifo_with_info.sv.bak
218
222
  - lib/axi/AXI_stream/axi_stream_partition.sv
219
223
  - lib/axi/AXI_stream/axi_stream_partition_A1.sv
@@ -252,12 +256,15 @@ files:
252
256
  - lib/axi/AXI_stream/axis_length_fill.sv
253
257
  - lib/axi/AXI_stream/axis_length_split.sv
254
258
  - lib/axi/AXI_stream/axis_length_split_with_addr.sv
259
+ - lib/axi/AXI_stream/axis_length_split_with_user.sv
255
260
  - lib/axi/AXI_stream/axis_length_split_writh_user.sv
256
261
  - lib/axi/AXI_stream/axis_link_trigger.sv
257
262
  - lib/axi/AXI_stream/axis_master_empty.sv
258
263
  - lib/axi/AXI_stream/axis_mirror_to_master.sv
259
264
  - lib/axi/AXI_stream/axis_mirrors.sv
260
265
  - lib/axi/AXI_stream/axis_orthogonal.sv
266
+ - lib/axi/AXI_stream/axis_pipe_sync_seam.rb
267
+ - lib/axi/AXI_stream/axis_pipe_sync_seam.sv
261
268
  - lib/axi/AXI_stream/axis_ram_buffer.sv
262
269
  - lib/axi/AXI_stream/axis_rom_contect.rb
263
270
  - lib/axi/AXI_stream/axis_rom_contect.sv
@@ -399,6 +406,9 @@ files:
399
406
  - lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_verc_with_addr.sv
400
407
  - lib/axi/data_interface/data_inf_c/data_c_pipe_intc_M2S_verc_with_id.sv
401
408
  - lib/axi/data_interface/data_inf_c/data_c_pipe_latency.sv
409
+ - lib/axi/data_interface/data_inf_c/data_c_pipe_sync.sv
410
+ - lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.rb
411
+ - lib/axi/data_interface/data_inf_c/data_c_pipe_sync_seam.sv
402
412
  - lib/axi/data_interface/data_inf_c/data_c_scaler.sv
403
413
  - lib/axi/data_interface/data_inf_c/data_c_scaler_A1.sv
404
414
  - lib/axi/data_interface/data_inf_c/data_c_tmp_cache.sv
@@ -807,6 +817,9 @@ files:
807
817
  - lib/tdl/SDL/fifo/independent_clock_fifo_sdl.rb
808
818
  - lib/tdl/SDL/fifo/independent_stack_sdl.rb
809
819
  - lib/tdl/SDL/path_lib.rb
820
+ - lib/tdl/SDL/vcs_axi4_comptable.rb
821
+ - lib/tdl/SDL/vcs_axis_comptable.rb
822
+ - lib/tdl/SDL/vcs_data_c_comptable.rb
810
823
  - lib/tdl/VideoInf/simple_video_gen.rb
811
824
  - lib/tdl/VideoInf/video_from_axi4.rb
812
825
  - lib/tdl/VideoInf/video_lib.rb
@@ -819,7 +832,108 @@ files:
819
832
  - lib/tdl/auto_script/import_sdl.rb
820
833
  - lib/tdl/auto_script/test_autogensdl.rb
821
834
  - lib/tdl/auto_script/tmp.rb
835
+ - lib/tdl/auto_script/tmp/TPU_reprogram_wrapper_verb_sdl.rb
836
+ - lib/tdl/auto_script/tmp/acce_iic_bus_upgrade_sdl.rb
837
+ - lib/tdl/auto_script/tmp/arp_tpu_wrapper_sdl.rb
838
+ - lib/tdl/auto_script/tmp/axi4_direct_verc_sdl.rb
839
+ - lib/tdl/auto_script/tmp/axi4_rd_mix_interconnect_M2S_A2_sdl.rb
840
+ - lib/tdl/auto_script/tmp/axi4_wr_auxiliary_gen_without_resp_sdl.rb
841
+ - lib/tdl/auto_script/tmp/axi4_wr_pipe_sdl.rb
842
+ - lib/tdl/auto_script/tmp/axi_stream_cache_35bit_sdl.rb
843
+ - lib/tdl/auto_script/tmp/axi_stream_cache_A1_sdl.rb
844
+ - lib/tdl/auto_script/tmp/axi_stream_cache_sdl.rb
845
+ - lib/tdl/auto_script/tmp/axi_stream_interconnect_M2S_A1_sdl.rb
846
+ - lib/tdl/auto_script/tmp/axi_stream_interconnect_M2S_bind_tuser_sdl.rb
847
+ - lib/tdl/auto_script/tmp/axi_stream_interconnect_S2M_sdl.rb
848
+ - lib/tdl/auto_script/tmp/axi_stream_latency_sdl.rb
849
+ - lib/tdl/auto_script/tmp/axi_stream_long_fifo_sdl.rb
850
+ - lib/tdl/auto_script/tmp/axi_stream_long_fifo_verb_sdl.rb
851
+ - lib/tdl/auto_script/tmp/axi_stream_packet_fifo_sdl.rb
852
+ - lib/tdl/auto_script/tmp/axi_stream_packet_long_fifo_sdl.rb
853
+ - lib/tdl/auto_script/tmp/axi_stream_planer_sdl.rb
854
+ - lib/tdl/auto_script/tmp/axi_streams_scaler_A1_sdl.rb
855
+ - lib/tdl/auto_script/tmp/axis_append_A1_sdl.rb
856
+ - lib/tdl/auto_script/tmp/axis_connect_pipe_right_shift_sdl.rb
857
+ - lib/tdl/auto_script/tmp/axis_connect_pipe_right_shift_verb_sdl.rb
858
+ - lib/tdl/auto_script/tmp/axis_connect_pipe_sdl.rb
859
+ - lib/tdl/auto_script/tmp/axis_connect_pipe_with_info_sdl.rb
860
+ - lib/tdl/auto_script/tmp/axis_direct_sdl.rb
861
+ - lib/tdl/auto_script/tmp/axis_head_cut_sdl.rb
862
+ - lib/tdl/auto_script/tmp/axis_head_cut_verb_sdl.rb
863
+ - lib/tdl/auto_script/tmp/axis_intc_S2M_with_addr_inf_sdl.rb
864
+ - lib/tdl/auto_script/tmp/axis_length_cut_sdl.rb
865
+ - lib/tdl/auto_script/tmp/axis_length_split_with_addr_sdl.rb
866
+ - lib/tdl/auto_script/tmp/axis_length_split_with_user_sdl.rb
867
+ - lib/tdl/auto_script/tmp/axis_master_empty_sdl.rb
868
+ - lib/tdl/auto_script/tmp/axis_mirror_to_master_sdl.rb
869
+ - lib/tdl/auto_script/tmp/axis_pkt_fifo_filter_keep_A1_sdl.rb
870
+ - lib/tdl/auto_script/tmp/axis_pkt_fifo_filter_keep_sdl.rb
871
+ - lib/tdl/auto_script/tmp/axis_slaver_empty_sdl.rb
872
+ - lib/tdl/auto_script/tmp/axis_uncompress_A1_sdl.rb
873
+ - lib/tdl/auto_script/tmp/axis_valve_sdl.rb
874
+ - lib/tdl/auto_script/tmp/axis_valve_with_pipe_sdl.rb
875
+ - lib/tdl/auto_script/tmp/axis_vector_slaver_empty_sdl.rb
876
+ - lib/tdl/auto_script/tmp/axis_width_combin_A1_sdl.rb
877
+ - lib/tdl/auto_script/tmp/axis_width_convert_sdl.rb
878
+ - lib/tdl/auto_script/tmp/axis_width_destruct_sdl.rb
879
+ - lib/tdl/auto_script/tmp/bits_decode_nc_verb_sdl.rb
880
+ - lib/tdl/auto_script/tmp/bits_decode_verb_sdl.rb
881
+ - lib/tdl/auto_script/tmp/clock_rst_verb_sdl.rb
882
+ - lib/tdl/auto_script/tmp/clock_rst_verc_sdl.rb
883
+ - lib/tdl/auto_script/tmp/common_fifo_sdl.rb
884
+ - lib/tdl/auto_script/tmp/data_c_cache_sdl.rb
885
+ - lib/tdl/auto_script/tmp/data_c_pipe_force_vld_bind_data_sdl.rb
886
+ - lib/tdl/auto_script/tmp/data_c_pipe_sync_sdl.rb
887
+ - lib/tdl/auto_script/tmp/data_inf_c_intc_S2M_sdl.rb
888
+ - lib/tdl/auto_script/tmp/data_inf_c_planer_A1_sdl.rb
889
+ - lib/tdl/auto_script/tmp/data_mirrors_sdl.rb
890
+ - lib/tdl/auto_script/tmp/data_valve_sdl.rb
891
+ - lib/tdl/auto_script/tmp/ethernet_wrapper_sdl.rb
892
+ - lib/tdl/auto_script/tmp/full_axi4_to_axis_partition_wr_rd_sdl.rb
893
+ - lib/tdl/auto_script/tmp/full_axi4_to_axis_sdl.rb
894
+ - lib/tdl/auto_script/tmp/gen_big_field_table_sdl.rb
895
+ - lib/tdl/auto_script/tmp/gen_common_frame_table_sdl.rb
896
+ - lib/tdl/auto_script/tmp/general_tap_ack_A3_sdl.rb
897
+ - lib/tdl/auto_script/tmp/general_tap_ack_sdl.rb
898
+ - lib/tdl/auto_script/tmp/general_tap_no_ack_sdl.rb
899
+ - lib/tdl/auto_script/tmp/gvi_k7_ddr3_ip_wrapper_sdl.rb
822
900
  - lib/tdl/auto_script/tmp/hdl_test_sdl.rb
901
+ - lib/tdl/auto_script/tmp/independent_clock_fifo_sdl.rb
902
+ - lib/tdl/auto_script/tmp/inf_time_delay_ctrl_verb_sdl.rb
903
+ - lib/tdl/auto_script/tmp/init_mac_sdl.rb
904
+ - lib/tdl/auto_script/tmp/ip_check_sum_sdl.rb
905
+ - lib/tdl/auto_script/tmp/k7_ethernet_10g_api_mask_shift_sdl.rb
906
+ - lib/tdl/auto_script/tmp/k7_ethernet_10g_api_sdl.rb
907
+ - lib/tdl/auto_script/tmp/mac_to_file_64b_sdl.rb
908
+ - lib/tdl/auto_script/tmp/mac_to_file_sdl.rb
909
+ - lib/tdl/auto_script/tmp/mdio_model_sdl.rb
910
+ - lib/tdl/auto_script/tmp/odata_pool_axi4_A2_sdl.rb
911
+ - lib/tdl/auto_script/tmp/odata_pool_axi4_A3_sdl.rb
912
+ - lib/tdl/auto_script/tmp/pack_ip_mac_B1_sdl.rb
913
+ - lib/tdl/auto_script/tmp/pack_ip_mac_verb_sdl.rb
914
+ - lib/tdl/auto_script/tmp/parse_big_field_table_A2_sdl.rb
915
+ - lib/tdl/auto_script/tmp/parse_big_field_table_sdl.rb
916
+ - lib/tdl/auto_script/tmp/parse_common_frame_table_A1_sdl.rb
917
+ - lib/tdl/auto_script/tmp/sensor_array_ddr_lvds_wrapper_sdl.rb
918
+ - lib/tdl/auto_script/tmp/sim_arp_tpu_sdl.rb
919
+ - lib/tdl/auto_script/tmp/sim_tpu_update_file_sdl.rb
920
+ - lib/tdl/auto_script/tmp/tcp_check_sum_sdl.rb
921
+ - lib/tdl/auto_script/tmp/tcp_option_split_sdl.rb
922
+ - lib/tdl/auto_script/tmp/time_step_module_A1_sdl.rb
923
+ - lib/tdl/auto_script/tmp/tpu_simple_boot_sdl.rb
924
+ - lib/tdl/auto_script/tmp/trigger_data_inf_c_sdl.rb
925
+ - lib/tdl/auto_script/tmp/udp_check_sum_sdl.rb
926
+ - lib/tdl/auto_script/tmp/udp_ctrl_set_A1_sdl.rb
927
+ - lib/tdl/auto_script/tmp/udp_fpga_ports_route_sdl.rb
928
+ - lib/tdl/auto_script/tmp/udp_socket_ddr_pump_A3_sdl.rb
929
+ - lib/tdl/auto_script/tmp/udp_socket_ddr_pump_verb_sdl.rb
930
+ - lib/tdl/auto_script/tmp/unpack_mac_ip_udp_D1_sdl.rb
931
+ - lib/tdl/auto_script/tmp/unpack_mac_ip_udp_tcp_sdl.rb
932
+ - lib/tdl/auto_script/tmp/unpack_mac_ip_udp_verd_sdl.rb
933
+ - lib/tdl/auto_script/tmp/wide_axis_to_axi4_wr_sdl.rb
934
+ - lib/tdl/auto_script/tmp/width_convert_verb_sdl.rb
935
+ - lib/tdl/auto_script/tmp/xilinx_hdl_dpram_sdl.rb
936
+ - lib/tdl/auto_script/tmp/xilinx_hdl_dpram_sim_sdl.rb
823
937
  - lib/tdl/axi4/axi4_combin_wr_rd_batch_auto.rb
824
938
  - lib/tdl/axi4/axi4_direct.rb
825
939
  - lib/tdl/axi4/axi4_direct_A1_auto.rb
@@ -1283,5 +1397,5 @@ requirements: []
1283
1397
  rubygems_version: 3.0.6
1284
1398
  signing_key:
1285
1399
  specification_version: 4
1286
- summary: Axi is a light weight axi library. Tdl is a hardware Construction language
1400
+ summary: Axi 是一个轻量级的AXI4库. Tdl 是一种硬件构造语言
1287
1401
  test_files: []
data/Gemfile.lock DELETED
@@ -1,28 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- axi_tdl (0.0.7)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- coderay (1.1.3)
10
- method_source (1.0.0)
11
- minitest (5.14.3)
12
- pry (0.14.0)
13
- coderay (~> 1.1)
14
- method_source (~> 1.0)
15
- rake (10.5.0)
16
-
17
- PLATFORMS
18
- ruby
19
-
20
- DEPENDENCIES
21
- axi_tdl!
22
- bundler (~> 1.16)
23
- minitest
24
- pry
25
- rake (~> 10.0)
26
-
27
- BUNDLED WITH
28
- 1.17.3