openc3 6.10.4 → 7.0.0.pre.rc2

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.
Files changed (350) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Guardfile +4 -9
  4. data/LICENSE.md +85 -0
  5. data/README.md +8 -8
  6. data/Rakefile +3 -9
  7. data/bin/cstol_converter +3 -8
  8. data/bin/openc3cli +64 -35
  9. data/data/config/command_modifiers.yaml +18 -1
  10. data/data/config/interface_modifiers.yaml +0 -2
  11. data/data/config/plugins.yaml +14 -18
  12. data/data/config/screen.yaml +1 -1
  13. data/data/config/target.yaml +26 -79
  14. data/data/config/telemetry_modifiers.yaml +15 -0
  15. data/data/config/widgets.yaml +32 -32
  16. data/ext/openc3/ext/array/array.c +4 -9
  17. data/ext/openc3/ext/buffered_file/buffered_file.c +4 -9
  18. data/ext/openc3/ext/burst_protocol/burst_protocol.c +3 -8
  19. data/ext/openc3/ext/config_parser/config_parser.c +2 -7
  20. data/ext/openc3/ext/crc/crc.c +3 -8
  21. data/ext/openc3/ext/openc3_io/openc3_io.c +4 -9
  22. data/ext/openc3/ext/packet/packet.c +7 -9
  23. data/ext/openc3/ext/platform/platform.c +3 -8
  24. data/ext/openc3/ext/polynomial_conversion/polynomial_conversion.c +16 -12
  25. data/ext/openc3/ext/string/string.c +4 -9
  26. data/ext/openc3/ext/structure/structure.c +5 -9
  27. data/ext/openc3/ext/tabbed_plots_config/tabbed_plots_config.c +4 -9
  28. data/ext/openc3/ext/telemetry/telemetry.c +8 -12
  29. data/lib/cosmos.rb +4 -9
  30. data/lib/cosmosc2.rb +4 -9
  31. data/lib/openc3/accessors/accessor.rb +10 -13
  32. data/lib/openc3/accessors/binary_accessor.rb +18 -17
  33. data/lib/openc3/accessors/cbor_accessor.rb +3 -8
  34. data/lib/openc3/accessors/form_accessor.rb +4 -9
  35. data/lib/openc3/accessors/html_accessor.rb +3 -8
  36. data/lib/openc3/accessors/http_accessor.rb +4 -9
  37. data/lib/openc3/accessors/json_accessor.rb +4 -9
  38. data/lib/openc3/accessors/template_accessor.rb +4 -9
  39. data/lib/openc3/accessors/xml_accessor.rb +4 -9
  40. data/lib/openc3/accessors.rb +3 -8
  41. data/lib/openc3/api/README.md +1 -1
  42. data/lib/openc3/api/api.rb +3 -8
  43. data/lib/openc3/api/authorized_api.rb +4 -9
  44. data/lib/openc3/api/cmd_api.rb +3 -8
  45. data/lib/openc3/api/config_api.rb +3 -8
  46. data/lib/openc3/api/interface_api.rb +4 -9
  47. data/lib/openc3/api/limits_api.rb +3 -8
  48. data/lib/openc3/api/metrics_api.rb +2 -19
  49. data/lib/openc3/api/offline_access_api.rb +2 -7
  50. data/lib/openc3/api/router_api.rb +5 -10
  51. data/lib/openc3/api/settings_api.rb +3 -8
  52. data/lib/openc3/api/stash_api.rb +2 -7
  53. data/lib/openc3/api/target_api.rb +3 -8
  54. data/lib/openc3/api/tlm_api.rb +15 -38
  55. data/lib/openc3/bridge/bridge.rb +3 -8
  56. data/lib/openc3/bridge/bridge_config.rb +5 -10
  57. data/lib/openc3/bridge/bridge_interface_thread.rb +4 -9
  58. data/lib/openc3/bridge/bridge_router_thread.rb +4 -9
  59. data/lib/openc3/ccsds/ccsds_packet.rb +4 -9
  60. data/lib/openc3/ccsds/ccsds_parser.rb +3 -8
  61. data/lib/openc3/config/config_parser.rb +3 -8
  62. data/lib/openc3/config/meta_config_parser.rb +3 -8
  63. data/lib/openc3/conversions/bit_reverse_conversion.rb +3 -8
  64. data/lib/openc3/conversions/conversion.rb +3 -8
  65. data/lib/openc3/conversions/generic_conversion.rb +3 -8
  66. data/lib/openc3/conversions/ip_read_conversion.rb +3 -8
  67. data/lib/openc3/conversions/ip_write_conversion.rb +3 -8
  68. data/lib/openc3/conversions/object_read_conversion.rb +3 -8
  69. data/lib/openc3/conversions/object_write_conversion.rb +3 -8
  70. data/lib/openc3/conversions/packet_time_formatted_conversion.rb +4 -9
  71. data/lib/openc3/conversions/packet_time_seconds_conversion.rb +4 -9
  72. data/lib/openc3/conversions/polynomial_conversion.rb +6 -8
  73. data/lib/openc3/conversions/processor_conversion.rb +3 -8
  74. data/lib/openc3/conversions/received_count_conversion.rb +4 -9
  75. data/lib/openc3/conversions/received_time_formatted_conversion.rb +4 -9
  76. data/lib/openc3/conversions/received_time_seconds_conversion.rb +4 -9
  77. data/lib/openc3/conversions/segmented_polynomial_conversion.rb +6 -8
  78. data/lib/openc3/conversions/unix_time_conversion.rb +3 -8
  79. data/lib/openc3/conversions/unix_time_formatted_conversion.rb +3 -8
  80. data/lib/openc3/conversions/unix_time_seconds_conversion.rb +3 -8
  81. data/lib/openc3/conversions.rb +3 -8
  82. data/lib/openc3/core_ext/array.rb +3 -8
  83. data/lib/openc3/core_ext/binding.rb +4 -9
  84. data/lib/openc3/core_ext/class.rb +4 -9
  85. data/lib/openc3/core_ext/exception.rb +3 -8
  86. data/lib/openc3/core_ext/file.rb +4 -9
  87. data/lib/openc3/core_ext/io.rb +4 -9
  88. data/lib/openc3/core_ext/kernel.rb +3 -8
  89. data/lib/openc3/core_ext/math.rb +4 -9
  90. data/lib/openc3/core_ext/matrix.rb +4 -9
  91. data/lib/openc3/core_ext/objectspace.rb +4 -9
  92. data/lib/openc3/core_ext/openc3_io.rb +4 -9
  93. data/lib/openc3/core_ext/range.rb +4 -9
  94. data/lib/openc3/core_ext/socket.rb +4 -9
  95. data/lib/openc3/core_ext/string.rb +3 -8
  96. data/lib/openc3/core_ext/stringio.rb +4 -9
  97. data/lib/openc3/core_ext/tempfile.rb +4 -9
  98. data/lib/openc3/core_ext/time.rb +3 -8
  99. data/lib/openc3/core_ext.rb +3 -8
  100. data/lib/openc3/interfaces/file_interface.rb +3 -8
  101. data/lib/openc3/interfaces/http_client_interface.rb +3 -8
  102. data/lib/openc3/interfaces/http_server_interface.rb +3 -8
  103. data/lib/openc3/interfaces/interface.rb +3 -8
  104. data/lib/openc3/interfaces/mqtt_interface.rb +3 -8
  105. data/lib/openc3/interfaces/mqtt_stream_interface.rb +3 -8
  106. data/lib/openc3/interfaces/protocols/burst_protocol.rb +3 -8
  107. data/lib/openc3/interfaces/protocols/cmd_response_protocol.rb +3 -8
  108. data/lib/openc3/interfaces/protocols/cobs_protocol.rb +3 -8
  109. data/lib/openc3/interfaces/protocols/crc_protocol.rb +3 -8
  110. data/lib/openc3/interfaces/protocols/fixed_protocol.rb +3 -8
  111. data/lib/openc3/interfaces/protocols/ignore_packet_protocol.rb +3 -8
  112. data/lib/openc3/interfaces/protocols/length_protocol.rb +3 -8
  113. data/lib/openc3/interfaces/protocols/preidentified_protocol.rb +3 -8
  114. data/lib/openc3/interfaces/protocols/protocol.rb +3 -8
  115. data/lib/openc3/interfaces/protocols/slip_protocol.rb +3 -8
  116. data/lib/openc3/interfaces/protocols/template_protocol.rb +3 -8
  117. data/lib/openc3/interfaces/protocols/terminated_protocol.rb +3 -8
  118. data/lib/openc3/interfaces/serial_interface.rb +3 -8
  119. data/lib/openc3/interfaces/simulated_target_interface.rb +3 -8
  120. data/lib/openc3/interfaces/stream_interface.rb +3 -8
  121. data/lib/openc3/interfaces/tcpip_client_interface.rb +3 -8
  122. data/lib/openc3/interfaces/tcpip_server_interface.rb +3 -8
  123. data/lib/openc3/interfaces/udp_interface.rb +3 -8
  124. data/lib/openc3/interfaces.rb +3 -8
  125. data/lib/openc3/io/buffered_file.rb +4 -9
  126. data/lib/openc3/io/io_multiplexer.rb +4 -9
  127. data/lib/openc3/io/json_api.rb +3 -8
  128. data/lib/openc3/io/json_api_object.rb +4 -9
  129. data/lib/openc3/io/json_drb.rb +3 -8
  130. data/lib/openc3/io/json_drb_object.rb +4 -9
  131. data/lib/openc3/io/json_drb_rack.rb +4 -9
  132. data/lib/openc3/io/json_rpc.rb +3 -8
  133. data/lib/openc3/io/posix_serial_driver.rb +3 -8
  134. data/lib/openc3/io/serial_driver.rb +3 -8
  135. data/lib/openc3/io/stderr.rb +4 -9
  136. data/lib/openc3/io/stdout.rb +4 -9
  137. data/lib/openc3/io/udp_sockets.rb +3 -8
  138. data/lib/openc3/io/win32_serial_driver.rb +4 -9
  139. data/lib/openc3/logs/buffered_packet_log_reader.rb +3 -8
  140. data/lib/openc3/logs/buffered_packet_log_writer.rb +3 -8
  141. data/lib/openc3/logs/log_writer.rb +3 -8
  142. data/lib/openc3/logs/packet_log_constants.rb +3 -8
  143. data/lib/openc3/logs/packet_log_reader.rb +3 -8
  144. data/lib/openc3/logs/packet_log_writer.rb +3 -8
  145. data/lib/openc3/logs/stream_log.rb +3 -8
  146. data/lib/openc3/logs/stream_log_pair.rb +3 -8
  147. data/lib/openc3/logs/text_log_writer.rb +3 -8
  148. data/lib/openc3/logs.rb +3 -8
  149. data/lib/openc3/microservices/cleanup_microservice.rb +4 -14
  150. data/lib/openc3/microservices/decom_microservice.rb +3 -8
  151. data/lib/openc3/microservices/interface_decom_common.rb +3 -8
  152. data/lib/openc3/microservices/interface_microservice.rb +5 -9
  153. data/lib/openc3/microservices/log_microservice.rb +3 -8
  154. data/lib/openc3/microservices/microservice.rb +24 -12
  155. data/lib/openc3/microservices/multi_microservice.rb +2 -7
  156. data/lib/openc3/microservices/periodic_microservice.rb +3 -8
  157. data/lib/openc3/microservices/plugin_microservice.rb +3 -8
  158. data/lib/openc3/microservices/queue_microservice.rb +3 -8
  159. data/lib/openc3/microservices/router_microservice.rb +3 -8
  160. data/lib/openc3/microservices/scope_cleanup_microservice.rb +3 -8
  161. data/lib/openc3/microservices/text_log_microservice.rb +3 -8
  162. data/lib/openc3/migrations/20251213120000_reinstall_plugins.rb +45 -0
  163. data/lib/openc3/migrations/20260204000000_remove_decom_reducer.rb +60 -0
  164. data/lib/openc3/models/activity_model.rb +4 -8
  165. data/lib/openc3/models/auth_model.rb +57 -38
  166. data/lib/openc3/models/cvt_model.rb +203 -62
  167. data/lib/openc3/models/environment_model.rb +4 -9
  168. data/lib/openc3/models/gem_model.rb +3 -8
  169. data/lib/openc3/models/info_model.rb +4 -9
  170. data/lib/openc3/models/interface_model.rb +6 -10
  171. data/lib/openc3/models/interface_status_model.rb +4 -9
  172. data/lib/openc3/models/metadata_model.rb +3 -8
  173. data/lib/openc3/models/metric_model.rb +3 -8
  174. data/lib/openc3/models/microservice_model.rb +24 -10
  175. data/lib/openc3/models/microservice_status_model.rb +3 -8
  176. data/lib/openc3/models/migration_model.rb +3 -8
  177. data/lib/openc3/models/model.rb +3 -8
  178. data/lib/openc3/models/news_model.rb +3 -8
  179. data/lib/openc3/models/note_model.rb +3 -8
  180. data/lib/openc3/models/offline_access_model.rb +3 -8
  181. data/lib/openc3/models/ping_model.rb +4 -9
  182. data/lib/openc3/models/plugin_model.rb +14 -9
  183. data/lib/openc3/models/plugin_store_model.rb +21 -17
  184. data/lib/openc3/models/process_status_model.rb +4 -9
  185. data/lib/openc3/models/python_package_model.rb +3 -8
  186. data/lib/openc3/models/queue_model.rb +3 -8
  187. data/lib/openc3/models/reaction_model.rb +9 -10
  188. data/lib/openc3/models/router_model.rb +4 -9
  189. data/lib/openc3/models/router_status_model.rb +4 -9
  190. data/lib/openc3/models/scope_model.rb +4 -9
  191. data/lib/openc3/models/script_engine_model.rb +3 -8
  192. data/lib/openc3/models/script_status_model.rb +3 -8
  193. data/lib/openc3/models/secret_model.rb +3 -8
  194. data/lib/openc3/models/setting_model.rb +3 -8
  195. data/lib/openc3/models/sorted_model.rb +3 -8
  196. data/lib/openc3/models/stash_model.rb +3 -8
  197. data/lib/openc3/models/target_model.rb +99 -229
  198. data/lib/openc3/models/timeline_model.rb +3 -8
  199. data/lib/openc3/models/tool_config_model.rb +3 -8
  200. data/lib/openc3/models/tool_model.rb +10 -10
  201. data/lib/openc3/models/trigger_group_model.rb +3 -8
  202. data/lib/openc3/models/trigger_model.rb +3 -8
  203. data/lib/openc3/models/widget_model.rb +3 -8
  204. data/lib/openc3/operators/microservice_operator.rb +7 -8
  205. data/lib/openc3/operators/operator.rb +3 -8
  206. data/lib/openc3/packets/command_validator.rb +3 -8
  207. data/lib/openc3/packets/commands.rb +32 -14
  208. data/lib/openc3/packets/json_packet.rb +7 -19
  209. data/lib/openc3/packets/limits.rb +3 -8
  210. data/lib/openc3/packets/limits_response.rb +3 -8
  211. data/lib/openc3/packets/packet.rb +38 -32
  212. data/lib/openc3/packets/packet_config.rb +23 -13
  213. data/lib/openc3/packets/packet_item.rb +3 -8
  214. data/lib/openc3/packets/packet_item_limits.rb +3 -8
  215. data/lib/openc3/packets/parsers/format_string_parser.rb +3 -8
  216. data/lib/openc3/packets/parsers/limits_parser.rb +3 -8
  217. data/lib/openc3/packets/parsers/limits_response_parser.rb +3 -8
  218. data/lib/openc3/packets/parsers/packet_item_parser.rb +7 -8
  219. data/lib/openc3/packets/parsers/packet_parser.rb +3 -8
  220. data/lib/openc3/packets/parsers/processor_parser.rb +3 -8
  221. data/lib/openc3/packets/parsers/state_parser.rb +3 -8
  222. data/lib/openc3/packets/parsers/xtce_converter.rb +12 -9
  223. data/lib/openc3/packets/parsers/xtce_parser.rb +3 -8
  224. data/lib/openc3/packets/structure.rb +14 -11
  225. data/lib/openc3/packets/structure_item.rb +4 -9
  226. data/lib/openc3/packets/telemetry.rb +7 -11
  227. data/lib/openc3/processors/processor.rb +5 -10
  228. data/lib/openc3/processors/statistics_processor.rb +4 -9
  229. data/lib/openc3/processors/watermark_processor.rb +4 -9
  230. data/lib/openc3/processors.rb +4 -9
  231. data/lib/openc3/script/api_shared.rb +8 -37
  232. data/lib/openc3/script/autonomic.rb +3 -8
  233. data/lib/openc3/script/calendar.rb +3 -8
  234. data/lib/openc3/script/commands.rb +3 -8
  235. data/lib/openc3/script/critical_cmd.rb +3 -8
  236. data/lib/openc3/script/exceptions.rb +4 -9
  237. data/lib/openc3/script/extract.rb +3 -8
  238. data/lib/openc3/script/limits.rb +3 -8
  239. data/lib/openc3/script/metadata.rb +3 -8
  240. data/lib/openc3/script/packages.rb +3 -8
  241. data/lib/openc3/script/plugins.rb +3 -8
  242. data/lib/openc3/script/queue.rb +3 -8
  243. data/lib/openc3/script/screen.rb +7 -8
  244. data/lib/openc3/script/script.rb +3 -8
  245. data/lib/openc3/script/script_runner.rb +3 -8
  246. data/lib/openc3/script/storage.rb +6 -10
  247. data/lib/openc3/script/suite.rb +3 -8
  248. data/lib/openc3/script/suite_results.rb +3 -8
  249. data/lib/openc3/script/suite_runner.rb +3 -8
  250. data/lib/openc3/script/tables.rb +3 -8
  251. data/lib/openc3/script/telemetry.rb +3 -8
  252. data/lib/openc3/script/web_socket_api.rb +8 -13
  253. data/lib/openc3/script.rb +4 -9
  254. data/lib/openc3/script_engines/script_engine.rb +3 -8
  255. data/lib/openc3/streams/mqtt_stream.rb +3 -8
  256. data/lib/openc3/streams/serial_stream.rb +3 -8
  257. data/lib/openc3/streams/stream.rb +3 -8
  258. data/lib/openc3/streams/tcpip_client_stream.rb +3 -8
  259. data/lib/openc3/streams/tcpip_socket_stream.rb +3 -8
  260. data/lib/openc3/streams/web_socket_client_stream.rb +3 -8
  261. data/lib/openc3/system/system.rb +3 -8
  262. data/lib/openc3/system/target.rb +3 -8
  263. data/lib/openc3/system.rb +3 -8
  264. data/lib/openc3/tools/cmd_tlm_server/api.rb +4 -9
  265. data/lib/openc3/tools/cmd_tlm_server/interface_thread.rb +3 -8
  266. data/lib/openc3/tools/table_manager/table.rb +3 -8
  267. data/lib/openc3/tools/table_manager/table_config.rb +3 -8
  268. data/lib/openc3/tools/table_manager/table_item.rb +4 -9
  269. data/lib/openc3/tools/table_manager/table_item_parser.rb +3 -8
  270. data/lib/openc3/tools/table_manager/table_manager_core.rb +3 -8
  271. data/lib/openc3/tools/table_manager/table_parser.rb +3 -8
  272. data/lib/openc3/tools/test_runner/test.rb +4 -9
  273. data/lib/openc3/top_level.rb +3 -8
  274. data/lib/openc3/topics/autonomic_topic.rb +4 -9
  275. data/lib/openc3/topics/calendar_topic.rb +4 -9
  276. data/lib/openc3/topics/command_decom_topic.rb +14 -17
  277. data/lib/openc3/topics/command_topic.rb +14 -10
  278. data/lib/openc3/topics/config_topic.rb +3 -8
  279. data/lib/openc3/topics/decom_interface_topic.rb +3 -8
  280. data/lib/openc3/topics/interface_topic.rb +3 -8
  281. data/lib/openc3/topics/limits_event_topic.rb +3 -8
  282. data/lib/openc3/topics/notebook_topic.rb +32 -0
  283. data/lib/openc3/topics/queue_topic.rb +3 -8
  284. data/lib/openc3/topics/router_topic.rb +3 -8
  285. data/lib/openc3/topics/system_events_topic.rb +3 -8
  286. data/lib/openc3/topics/telemetry_decom_topic.rb +12 -12
  287. data/lib/openc3/topics/telemetry_topic.rb +3 -8
  288. data/lib/openc3/topics/timeline_topic.rb +4 -9
  289. data/lib/openc3/topics/topic.rb +3 -8
  290. data/lib/openc3/utilities/authentication.rb +29 -10
  291. data/lib/openc3/utilities/authorization.rb +4 -9
  292. data/lib/openc3/utilities/aws_bucket.rb +126 -16
  293. data/lib/openc3/utilities/bucket.rb +9 -9
  294. data/lib/openc3/utilities/bucket_file_cache.rb +3 -13
  295. data/lib/openc3/utilities/bucket_require.rb +3 -8
  296. data/lib/openc3/utilities/bucket_utilities.rb +3 -10
  297. data/lib/openc3/utilities/cli_generator.rb +11 -16
  298. data/lib/openc3/utilities/cmd_log.rb +3 -8
  299. data/lib/openc3/utilities/crc.rb +3 -8
  300. data/lib/openc3/utilities/csv.rb +4 -9
  301. data/lib/openc3/utilities/local_bucket.rb +5 -10
  302. data/lib/openc3/utilities/local_mode.rb +14 -18
  303. data/lib/openc3/utilities/logger.rb +3 -8
  304. data/lib/openc3/utilities/message_log.rb +3 -8
  305. data/lib/openc3/utilities/metric.rb +3 -8
  306. data/lib/openc3/utilities/migration.rb +3 -8
  307. data/lib/openc3/utilities/open_telemetry.rb +3 -8
  308. data/lib/openc3/utilities/process_manager.rb +3 -8
  309. data/lib/openc3/utilities/python_proxy.rb +3 -8
  310. data/lib/openc3/utilities/quaternion.rb +3 -8
  311. data/lib/openc3/utilities/questdb_client.rb +210 -0
  312. data/lib/openc3/utilities/redis_secrets.rb +3 -8
  313. data/lib/openc3/utilities/ruby_lex_utils.rb +3 -8
  314. data/lib/openc3/utilities/running_script.rb +13 -11
  315. data/lib/openc3/utilities/s3_autoload.rb +9 -2
  316. data/lib/openc3/utilities/secrets.rb +8 -9
  317. data/lib/openc3/utilities/simulated_target.rb +4 -9
  318. data/lib/openc3/utilities/sleeper.rb +3 -8
  319. data/lib/openc3/utilities/store.rb +4 -9
  320. data/lib/openc3/utilities/store_autoload.rb +7 -14
  321. data/lib/openc3/utilities/store_queued.rb +6 -9
  322. data/lib/openc3/utilities/target_file.rb +3 -8
  323. data/lib/openc3/utilities/thread_manager.rb +3 -8
  324. data/lib/openc3/utilities/throttle.rb +3 -8
  325. data/lib/openc3/utilities/zip.rb +4 -9
  326. data/lib/openc3/utilities.rb +4 -9
  327. data/lib/openc3/version.rb +8 -8
  328. data/lib/openc3/win32/excel.rb +4 -9
  329. data/lib/openc3/win32/win32.rb +4 -9
  330. data/lib/openc3/win32/win32_main.rb +3 -8
  331. data/lib/openc3.rb +3 -12
  332. data/tasks/gemfile_stats.rake +4 -9
  333. data/tasks/spec.rake +4 -9
  334. data/templates/plugin/README.md +2 -2
  335. data/templates/plugin/plugin.gemspec +1 -1
  336. data/templates/tool_angular/package.json +1 -1
  337. data/templates/tool_vue/package.json +3 -3
  338. data/templates/tool_vue/vite.config.js +2 -1
  339. data/templates/widget/package.json +3 -3
  340. data/templates/widget/vite.config.js +1 -1
  341. metadata +49 -26
  342. data/LICENSE.txt +0 -729
  343. data/bin/rubysloc +0 -142
  344. data/ext/openc3/ext/reducer_microservice/extconf.rb +0 -13
  345. data/ext/openc3/ext/reducer_microservice/reducer_microservice.c +0 -165
  346. data/lib/openc3/microservices/reducer_microservice.rb +0 -640
  347. data/lib/openc3/models/reducer_model.rb +0 -72
  348. data/lib/openc3/topics/telemetry_reduced_topics.rb +0 -80
  349. /data/templates/plugin/{LICENSE.txt → LICENSE.md} +0 -0
  350. /data/templates/widget/{LICENSE.txt → LICENSE.md} +0 -0
data/bin/rubysloc DELETED
@@ -1,142 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # encoding: ascii-8bit
3
-
4
- # Copyright 2022 Ball Aerospace & Technologies Corp.
5
- # All Rights Reserved.
6
- #
7
- # This program is free software; you can modify and/or redistribute it
8
- # under the terms of the GNU Affero General Public License
9
- # as published by the Free Software Foundation; version 3 with
10
- # attribution addendums as found in the LICENSE.txt
11
- #
12
- # This program is distributed in the hope that it will be useful,
13
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- # GNU Affero General Public License for more details.
16
-
17
- # Modified by OpenC3, Inc.
18
- # All changes Copyright 2022, OpenC3, Inc.
19
- # All Rights Reserved
20
- #
21
- # This file may also be used under the terms of a commercial license
22
- # if purchased from OpenC3, Inc.
23
-
24
- # This file provides a simple ruby sloc counter.
25
- # Blank lines and comment lines are ignored. All other
26
- # lines count as one line.
27
-
28
- require 'ostruct'
29
- require 'optparse'
30
-
31
- options = OpenStruct.new
32
- options.filename = nil
33
- options.sort_column = nil
34
-
35
- opts = OptionParser.new do |opts|
36
- opts.banner = "Usage: rubysloc"
37
- opts.separator ""
38
- opts.separator "Recursively calculate SLOC for all ruby files (*.rb) sorted by filename"
39
- opts.separator ""
40
- opts.on("-h", "--help", "Show this message") do
41
- puts opts
42
- exit
43
- end
44
- opts.on("-i DIRECTORY/FILENAME", "--input DIRECTORY/FILENAME",
45
- "Parse only the specified directory/filename (relative or absolute path)") do |arg|
46
- options.filename = arg
47
- end
48
- opts.on("-s SORT", "--sort SORT", "Sort by the specified column. Must be one of LINES, COMMENTS, SLOC, or RATIO.") do |arg|
49
- case arg
50
- when 'LINES'
51
- options.sort_column = 1
52
- when 'COMMENTS'
53
- options.sort_column = 2
54
- when 'SLOC'
55
- options.sort_column = 3
56
- when 'RATIO'
57
- options.sort_column = 4
58
- else
59
- puts opts
60
- exit
61
- end
62
- end
63
- end
64
-
65
- begin
66
- opts.parse!(ARGV)
67
- rescue => err
68
- puts err
69
- puts opts
70
- exit
71
- end
72
-
73
- files = []
74
- if options.filename
75
- options.filename = File.join(Dir.pwd, options.filename) unless File.exist?(options.filename)
76
- if File.exist?(options.filename)
77
- if File.directory?(options.filename)
78
- # Dir only works with unix paths so swap backslashes
79
- files = Dir[File.join(options.filename.gsub('\\', '/'), '**', '*.rb')]
80
- else
81
- files << options.filename
82
- end
83
- else
84
- puts "File #{options.filename} not found."
85
- puts opts
86
- exit
87
- end
88
- else
89
- files = Dir['**/*.rb']
90
- end
91
-
92
- # Build results over all found ruby files
93
- longest_path = 1
94
- results = []
95
- files.each do |full_filename|
96
- filename = File.basename(full_filename)
97
- File.open(full_filename, 'r') do |file|
98
- lines = 0
99
- slocs = 0
100
- comments = 0
101
- file.each_line do |line|
102
- lines += 1
103
- split_line = line.split
104
- if split_line[0].nil?
105
- # Blank Line - Do Nothing
106
- elsif split_line[0].to_s[0..0] == '#'
107
- comments += 1
108
- else
109
- slocs += 1
110
- end
111
- end
112
- results << [full_filename, lines, comments, slocs, comments.to_f / slocs.to_f]
113
- longest_path = full_filename.length if full_filename.length > longest_path
114
- end
115
- end
116
-
117
- results.sort_by! { |col| col[options.sort_column].finite? ? col[options.sort_column] : -1 } if options.sort_column
118
-
119
- # Print results to STDOUT
120
- total_files = 0
121
- total_lines = 0
122
- total_comments = 0
123
- total_slocs = 0
124
- total_ratio = 0
125
-
126
- puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-" * longest_path)
127
- puts sprintf("| %-#{longest_path}s | Lines | Comments | SLOCs | Ratio |", "Filename")
128
- puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-" * longest_path)
129
- results.each do |filename, lines, comments, slocs, ratio|
130
- # filename = filename[0..32] if filename.length > 33
131
- puts sprintf("| %-#{longest_path}s | %8d | %8d | %8d | %6.2f |",
132
- filename, lines, comments, slocs, ratio)
133
- total_files += 1
134
- total_lines += lines
135
- total_comments += comments
136
- total_slocs += slocs
137
- end
138
- total_ratio = total_comments.to_f / total_slocs.to_f if total_slocs != 0
139
- puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-" * longest_path)
140
- puts sprintf("| %-#{longest_path}s | %8d | %8d | %8d | %6.2f |",
141
- "Totals - #{total_files} Files", total_lines, total_comments, total_slocs, total_ratio)
142
- puts sprintf("|-%-#{longest_path}s-|----------|----------|----------|--------|", "-" * longest_path)
@@ -1,13 +0,0 @@
1
- require 'mkmf'
2
-
3
- unless $CFLAGS.gsub!(/ -O[\dsz]?/, ' -O3')
4
- $CFLAGS << ' -O3'
5
- end
6
- if /gcc/.match?(CONFIG['CC'])
7
- $CFLAGS << ' -Wall'
8
- if $DEBUG && !$CFLAGS.gsub!(/ -O[\dsz]?/, ' -O0 -ggdb')
9
- $CFLAGS << ' -O0 -ggdb'
10
- end
11
- end
12
-
13
- create_makefile 'openc3/ext/reducer_microservice'
@@ -1,165 +0,0 @@
1
- /*
2
- # Copyright 2022 Ball Aerospace & Technologies Corp.
3
- # All Rights Reserved.
4
- #
5
- # This program is free software; you can modify and/or redistribute it
6
- # under the terms of the GNU Affero General Public License
7
- # as published by the Free Software Foundation; version 3 with
8
- # attribution addendums as found in the LICENSE.txt
9
- #
10
- # This program is distributed in the hope that it will be useful,
11
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- # GNU Affero General Public License for more details.
14
- */
15
-
16
- /*
17
- # Modified by OpenC3, Inc.
18
- # All changes Copyright 2022, OpenC3, Inc.
19
- # All Rights Reserved
20
- #
21
- # This file may also be used under the terms of a commercial license
22
- # if purchased from OpenC3, Inc.
23
- */
24
-
25
- #include "ruby.h"
26
- #include "stdio.h"
27
- #include "math.h"
28
-
29
- VALUE mOpenC3;
30
- VALUE cMicroservice;
31
- VALUE cReducerMicroservice;
32
-
33
- static ID id_method_raw_values = 0;
34
- static ID id_method_converted_values = 0;
35
- static ID id_method_less_than = 0;
36
- static ID id_method_greater_than = 0;
37
-
38
- static int reducer_microservice_update_min_stats_raw_value(VALUE key, VALUE value, VALUE reduced)
39
- {
40
- volatile VALUE vals_key = Qnil;
41
- volatile VALUE n_key = Qnil;
42
- volatile VALUE x_key = Qnil;
43
- volatile VALUE reduced_entry = Qnil;
44
-
45
- if (RTEST(value))
46
- {
47
- vals_key = rb_str_new(RSTRING_PTR(key), RSTRING_LEN(key));
48
- rb_str_append(vals_key, rb_str_new2("__VALS"));
49
- reduced_entry = rb_hash_aref(reduced, vals_key);
50
- if (!(RTEST(reduced_entry)))
51
- {
52
- reduced_entry = rb_ary_new();
53
- rb_hash_aset(reduced, vals_key, reduced_entry);
54
- }
55
- rb_ary_push(reduced_entry, value);
56
-
57
- n_key = rb_str_new(RSTRING_PTR(key), RSTRING_LEN(key));
58
- rb_str_append(n_key, rb_str_new2("__N"));
59
- reduced_entry = rb_hash_aref(reduced, n_key);
60
- if (!(RTEST(reduced_entry)))
61
- {
62
- reduced_entry = value;
63
- rb_hash_aset(reduced, n_key, value);
64
- }
65
- if (RTEST(rb_funcall(value, id_method_less_than, 1, reduced_entry)))
66
- {
67
- rb_hash_aset(reduced, n_key, value);
68
- }
69
-
70
- x_key = rb_str_new(RSTRING_PTR(key), RSTRING_LEN(key));
71
- rb_str_append(x_key, rb_str_new2("__X"));
72
- reduced_entry = rb_hash_aref(reduced, x_key);
73
- if (!(RTEST(reduced_entry)))
74
- {
75
- reduced_entry = value;
76
- rb_hash_aset(reduced, x_key, value);
77
- }
78
- if (RTEST(rb_funcall(value, id_method_greater_than, 1, reduced_entry)))
79
- {
80
- rb_hash_aset(reduced, x_key, value);
81
- }
82
- }
83
-
84
- return ST_CONTINUE;
85
- }
86
-
87
- static int reducer_microservice_update_min_stats_converted_value(VALUE key, VALUE value, VALUE reduced)
88
- {
89
- volatile VALUE cvals_key = Qnil;
90
- volatile VALUE cn_key = Qnil;
91
- volatile VALUE cx_key = Qnil;
92
- volatile VALUE reduced_entry = Qnil;
93
-
94
- if (RTEST(value))
95
- {
96
- cvals_key = rb_str_new(RSTRING_PTR(key), RSTRING_LEN(key));
97
- rb_str_append(cvals_key, rb_str_new2("__CVALS"));
98
- reduced_entry = rb_hash_aref(reduced, cvals_key);
99
- if (!(RTEST(reduced_entry)))
100
- {
101
- reduced_entry = rb_ary_new();
102
- rb_hash_aset(reduced, cvals_key, reduced_entry);
103
- }
104
- rb_ary_push(reduced_entry, value);
105
-
106
- cn_key = rb_str_new(RSTRING_PTR(key), RSTRING_LEN(key));
107
- rb_str_append(cn_key, rb_str_new2("__CN"));
108
- reduced_entry = rb_hash_aref(reduced, cn_key);
109
- if (!(RTEST(reduced_entry)))
110
- {
111
- reduced_entry = value;
112
- rb_hash_aset(reduced, cn_key, value);
113
- }
114
- if (RTEST(rb_funcall(value, id_method_less_than, 1, reduced_entry)))
115
- {
116
- rb_hash_aset(reduced, cn_key, value);
117
- }
118
-
119
- cx_key = rb_str_new(RSTRING_PTR(key), RSTRING_LEN(key));
120
- rb_str_append(cx_key, rb_str_new2("__CX"));
121
- reduced_entry = rb_hash_aref(reduced, cx_key);
122
- if (!(RTEST(reduced_entry)))
123
- {
124
- reduced_entry = value;
125
- rb_hash_aset(reduced, cx_key, value);
126
- }
127
- if (RTEST(rb_funcall(value, id_method_greater_than, 1, reduced_entry)))
128
- {
129
- rb_hash_aset(reduced, cx_key, value);
130
- }
131
- }
132
-
133
- return ST_CONTINUE;
134
- }
135
-
136
- static VALUE reducer_microservice_update_min_stats(VALUE self, VALUE reduced, VALUE state)
137
- {
138
- volatile VALUE raw_values = rb_funcall(state, id_method_raw_values, 0);
139
- volatile VALUE converted_values = rb_funcall(state, id_method_converted_values, 0);
140
-
141
- /* Update statistics for this packet's raw values */
142
- rb_hash_foreach(raw_values, reducer_microservice_update_min_stats_raw_value, reduced);
143
-
144
- /* Update statistics for this packet's converted values */
145
- rb_hash_foreach(converted_values, reducer_microservice_update_min_stats_converted_value, reduced);
146
-
147
- return Qnil;
148
- }
149
-
150
- /*
151
- * Initialize methods for ReducerMicroservice
152
- */
153
- void Init_reducer_microservice(void)
154
- {
155
- id_method_raw_values = rb_intern("raw_values");
156
- id_method_converted_values = rb_intern("converted_values");
157
- id_method_less_than = rb_intern("<");
158
- id_method_greater_than = rb_intern(">");
159
-
160
- mOpenC3 = rb_define_module("OpenC3");
161
- rb_require("openc3/conversions/conversion");
162
- cMicroservice = rb_const_get(mOpenC3, rb_intern("Microservice"));
163
- cReducerMicroservice = rb_define_class_under(mOpenC3, "ReducerMicroservice", cMicroservice);
164
- rb_define_method(cReducerMicroservice, "update_min_stats", reducer_microservice_update_min_stats, 2);
165
- }