oxidized 0.29.0 → 0.29.1

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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/.github/dependabot.yml +31 -0
  3. data/.github/workflows/codeql.yml +76 -0
  4. data/.github/workflows/publishdocker.yml +3 -1
  5. data/.github/workflows/stale.yml +16 -0
  6. data/.rubocop_todo.yml +3 -3
  7. data/CHANGELOG.md +10 -0
  8. data/Dockerfile +2 -0
  9. data/README.md +3 -6
  10. data/docs/Creating-Models.md +14 -15
  11. data/docs/Ruby-API.md +12 -8
  12. data/lib/oxidized/model/acmepacket.rb +2 -0
  13. data/lib/oxidized/model/acos.rb +3 -1
  14. data/lib/oxidized/model/acsw.rb +2 -0
  15. data/lib/oxidized/model/adtran.rb +2 -0
  16. data/lib/oxidized/model/adva.rb +2 -0
  17. data/lib/oxidized/model/aen.rb +2 -0
  18. data/lib/oxidized/model/aireos.rb +2 -0
  19. data/lib/oxidized/model/airfiber.rb +2 -0
  20. data/lib/oxidized/model/airos.rb +2 -0
  21. data/lib/oxidized/model/alteonos.rb +2 -0
  22. data/lib/oxidized/model/alvarion.rb +2 -0
  23. data/lib/oxidized/model/aos.rb +2 -0
  24. data/lib/oxidized/model/aos7.rb +2 -0
  25. data/lib/oxidized/model/aoscx.rb +2 -0
  26. data/lib/oxidized/model/aosw.rb +3 -1
  27. data/lib/oxidized/model/apc_aos.rb +2 -0
  28. data/lib/oxidized/model/arbos.rb +2 -0
  29. data/lib/oxidized/model/aricentiss.rb +2 -0
  30. data/lib/oxidized/model/asa.rb +2 -0
  31. data/lib/oxidized/model/asyncos.rb +2 -0
  32. data/lib/oxidized/model/audiocodes.rb +2 -0
  33. data/lib/oxidized/model/audiocodesmp.rb +2 -0
  34. data/lib/oxidized/model/awplus.rb +2 -0
  35. data/lib/oxidized/model/axos.rb +2 -0
  36. data/lib/oxidized/model/bdcom.rb +2 -0
  37. data/lib/oxidized/model/boss.rb +3 -1
  38. data/lib/oxidized/model/br6910.rb +2 -0
  39. data/lib/oxidized/model/c4cmts.rb +2 -0
  40. data/lib/oxidized/model/cambium.rb +2 -0
  41. data/lib/oxidized/model/cambiumepmp.rb +2 -0
  42. data/lib/oxidized/model/casa.rb +2 -0
  43. data/lib/oxidized/model/catos.rb +2 -0
  44. data/lib/oxidized/model/ciscoce.rb +2 -0
  45. data/lib/oxidized/model/cisconga.rb +2 -0
  46. data/lib/oxidized/model/ciscosma.rb +2 -0
  47. data/lib/oxidized/model/ciscosmb.rb +2 -0
  48. data/lib/oxidized/model/ciscovpn3k.rb +2 -0
  49. data/lib/oxidized/model/cnos.rb +2 -0
  50. data/lib/oxidized/model/comnetms.rb +2 -0
  51. data/lib/oxidized/model/comtrol.rb +2 -0
  52. data/lib/oxidized/model/comware.rb +1 -0
  53. data/lib/oxidized/model/coriant8600.rb +2 -0
  54. data/lib/oxidized/model/coriantgroove.rb +2 -0
  55. data/lib/oxidized/model/corianttmos.rb +2 -0
  56. data/lib/oxidized/model/cumulus.rb +2 -0
  57. data/lib/oxidized/model/datacom.rb +2 -0
  58. data/lib/oxidized/model/dcnos.rb +2 -0
  59. data/lib/oxidized/model/dellx.rb +2 -0
  60. data/lib/oxidized/model/dlink.rb +2 -0
  61. data/lib/oxidized/model/dnos.rb +2 -0
  62. data/lib/oxidized/model/eciapollo.rb +2 -0
  63. data/lib/oxidized/model/edgecos.rb +2 -0
  64. data/lib/oxidized/model/edgeos.rb +2 -0
  65. data/lib/oxidized/model/edgeswitch.rb +2 -0
  66. data/lib/oxidized/model/eltex.rb +2 -0
  67. data/lib/oxidized/model/enterasys.rb +2 -0
  68. data/lib/oxidized/model/enterasys800.rb +2 -0
  69. data/lib/oxidized/model/eos.rb +2 -0
  70. data/lib/oxidized/model/fabricos.rb +2 -0
  71. data/lib/oxidized/model/fastiron.rb +2 -0
  72. data/lib/oxidized/model/fiberdriver.rb +2 -0
  73. data/lib/oxidized/model/firebrick.rb +2 -0
  74. data/lib/oxidized/model/firelinuxos.rb +2 -0
  75. data/lib/oxidized/model/firewareos.rb +2 -0
  76. data/lib/oxidized/model/fortios.rb +2 -0
  77. data/lib/oxidized/model/fortiwlc.rb +2 -0
  78. data/lib/oxidized/model/ftos.rb +2 -0
  79. data/lib/oxidized/model/fujitsupy.rb +2 -0
  80. data/lib/oxidized/model/gaiaos.rb +2 -0
  81. data/lib/oxidized/model/gcombnps.rb +2 -0
  82. data/lib/oxidized/model/grandstream.rb +2 -0
  83. data/lib/oxidized/model/h3c.rb +2 -0
  84. data/lib/oxidized/model/hatteras.rb +2 -0
  85. data/lib/oxidized/model/hios.rb +2 -0
  86. data/lib/oxidized/model/hirschmann.rb +2 -0
  87. data/lib/oxidized/model/hpebladesystem.rb +2 -0
  88. data/lib/oxidized/model/hpemsa.rb +2 -0
  89. data/lib/oxidized/model/hpmsm.rb +2 -0
  90. data/lib/oxidized/model/ibos.rb +2 -0
  91. data/lib/oxidized/model/icotera.rb +2 -0
  92. data/lib/oxidized/model/ios.rb +2 -0
  93. data/lib/oxidized/model/iosxr.rb +2 -0
  94. data/lib/oxidized/model/ipos.rb +2 -0
  95. data/lib/oxidized/model/ironware.rb +2 -0
  96. data/lib/oxidized/model/isam.rb +2 -0
  97. data/lib/oxidized/model/junos.rb +2 -0
  98. data/lib/oxidized/model/lancom.rb +2 -0
  99. data/lib/oxidized/model/lenovonos.rb +2 -0
  100. data/lib/oxidized/model/linksyssrw.rb +2 -0
  101. data/lib/oxidized/model/linuxgeneric.rb +2 -0
  102. data/lib/oxidized/model/masteros.rb +2 -0
  103. data/lib/oxidized/model/mlnxos.rb +2 -0
  104. data/lib/oxidized/model/model.rb +6 -5
  105. data/lib/oxidized/model/mtrlrfs.rb +2 -0
  106. data/lib/oxidized/model/ndms.rb +3 -1
  107. data/lib/oxidized/model/necix.rb +2 -0
  108. data/lib/oxidized/model/netgear.rb +2 -0
  109. data/lib/oxidized/model/netonix.rb +2 -0
  110. data/lib/oxidized/model/netscaler.rb +2 -0
  111. data/lib/oxidized/model/nodegrid.rb +2 -0
  112. data/lib/oxidized/model/nos.rb +2 -0
  113. data/lib/oxidized/model/nsxconfig.rb +2 -0
  114. data/lib/oxidized/model/nsxfirewall.rb +2 -0
  115. data/lib/oxidized/model/nxos.rb +2 -0
  116. data/lib/oxidized/model/oneos.rb +2 -0
  117. data/lib/oxidized/model/openbsd.rb +2 -0
  118. data/lib/oxidized/model/opengear.rb +2 -0
  119. data/lib/oxidized/model/openwrt.rb +2 -0
  120. data/lib/oxidized/model/opnsense.rb +2 -0
  121. data/lib/oxidized/model/os10.rb +2 -0
  122. data/lib/oxidized/model/outputs.rb +2 -0
  123. data/lib/oxidized/model/panos.rb +2 -0
  124. data/lib/oxidized/model/panos_api.rb +2 -0
  125. data/lib/oxidized/model/pfsense.rb +2 -0
  126. data/lib/oxidized/model/planet.rb +2 -0
  127. data/lib/oxidized/model/powerconnect.rb +2 -0
  128. data/lib/oxidized/model/procurve.rb +2 -0
  129. data/lib/oxidized/model/purityos.rb +2 -0
  130. data/lib/oxidized/model/qtech.rb +2 -0
  131. data/lib/oxidized/model/quantaos.rb +2 -0
  132. data/lib/oxidized/model/raisecom.rb +2 -0
  133. data/lib/oxidized/model/routeros.rb +2 -0
  134. data/lib/oxidized/model/saos.rb +2 -0
  135. data/lib/oxidized/model/screenos.rb +2 -0
  136. data/lib/oxidized/model/sgos.rb +2 -0
  137. data/lib/oxidized/model/siklu.rb +2 -0
  138. data/lib/oxidized/model/slxos.rb +2 -0
  139. data/lib/oxidized/model/smartax.rb +2 -0
  140. data/lib/oxidized/model/smartcs.rb +2 -0
  141. data/lib/oxidized/model/sonicos.rb +2 -0
  142. data/lib/oxidized/model/speedtouch.rb +2 -0
  143. data/lib/oxidized/model/sros.rb +3 -1
  144. data/lib/oxidized/model/srosmd.rb +2 -0
  145. data/lib/oxidized/model/stoneos.rb +2 -0
  146. data/lib/oxidized/model/swos.rb +2 -0
  147. data/lib/oxidized/model/tdre.rb +2 -0
  148. data/lib/oxidized/model/telco.rb +2 -0
  149. data/lib/oxidized/model/tmos.rb +3 -1
  150. data/lib/oxidized/model/tplink.rb +2 -0
  151. data/lib/oxidized/model/trango.rb +2 -0
  152. data/lib/oxidized/model/truenas.rb +2 -0
  153. data/lib/oxidized/model/ucs.rb +2 -0
  154. data/lib/oxidized/model/viptela.rb +2 -0
  155. data/lib/oxidized/model/voltaire.rb +2 -0
  156. data/lib/oxidized/model/voss.rb +2 -0
  157. data/lib/oxidized/model/vrp.rb +2 -0
  158. data/lib/oxidized/model/vyatta.rb +2 -0
  159. data/lib/oxidized/model/weos.rb +2 -0
  160. data/lib/oxidized/model/xos.rb +2 -0
  161. data/lib/oxidized/model/yamaha.rb +2 -0
  162. data/lib/oxidized/model/zhoneolt.rb +2 -0
  163. data/lib/oxidized/model/zteolt.rb +2 -0
  164. data/lib/oxidized/model/zy1308.rb +2 -0
  165. data/lib/oxidized/model/zynos.rb +2 -0
  166. data/lib/oxidized/model/zynoscli.rb +2 -0
  167. data/lib/oxidized/model/zynosgs.rb +2 -0
  168. data/lib/oxidized/output/git.rb +2 -1
  169. data/lib/oxidized/version.rb +2 -2
  170. data/lib/oxidized.rb +1 -1
  171. data/lib/refinements.rb +43 -0
  172. metadata +6 -4
  173. data/.github/no-response.yml +0 -13
  174. data/lib/oxidized/string.rb +0 -42
@@ -1,4 +1,6 @@
1
1
  class PfSense < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # use other use than 'admin' user, 'admin' user cannot get ssh/exec. See issue #535
3
5
 
4
6
  cmd :secret do |cfg|
@@ -1,4 +1,6 @@
1
1
  class Planet < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^\r?([\w.@()-]+[#>]\s?)$/
3
5
  comment '! '
4
6
 
@@ -1,4 +1,6 @@
1
1
  class PowerConnect < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^([\w\s.@-]+(\(\S*\))?[#>]\s?)$/ # allow spaces in hostname..dell does not limit it.. #
3
5
 
4
6
  comment '! '
@@ -1,4 +1,6 @@
1
1
  class Procurve < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # previous command is repeated followed by "\eE", which sometimes ends up on last line
3
5
  # ssh switches prompt may start with \r, followed by the prompt itself, regex ([\w\s.-]+[#>] ), which ends the line
4
6
  # telnet switches may start with various vt100 control characters, regex (\e\[24;[0-9][hH]), followed by the prompt, followed
@@ -1,4 +1,6 @@
1
1
  class PurityOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Pure Storage Purity OS
3
5
 
4
6
  prompt /\w+@\S+(\s+\S+)*\s?>\s?$/
@@ -1,4 +1,6 @@
1
1
  class QTECH < Oxidized::Model
2
+ using Refinements
3
+
2
4
  comment '! '
3
5
 
4
6
  cmd :all do |cfg|
@@ -1,4 +1,6 @@
1
1
  class QuantaOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^\((\w|\S)+\) (>|#)$/
3
5
  comment '! '
4
6
 
@@ -1,4 +1,6 @@
1
1
  class RAISECOM < Oxidized::Model
2
+ using Refinements
3
+
2
4
  comment '! '
3
5
  prompt /([\w.@-]+[#>]\s?)$/
4
6
 
@@ -1,4 +1,6 @@
1
1
  class RouterOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /\[\w+@\S+(\s+\S+)*\]\s?>\s?$/
3
5
  comment "# "
4
6
 
@@ -1,4 +1,6 @@
1
1
  class SAOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Ciena SAOS switch
3
5
  # used for 6.x devices
4
6
 
@@ -1,4 +1,6 @@
1
1
  class ScreenOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Netscreen ScreenOS model #
3
5
 
4
6
  comment '! '
@@ -1,4 +1,6 @@
1
1
  class SGOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  comment '!- '
3
5
  prompt /\w+>|#/
4
6
 
@@ -1,4 +1,6 @@
1
1
  class Siklu < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Siklu EtherHaul #
3
5
 
4
6
  prompt /^[\^M\s]{0,}[\w\-\s\.\"]+>$/
@@ -1,4 +1,6 @@
1
1
  class SLXOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^.*[>#]\s?$/i
3
5
  comment '! '
4
6
 
@@ -1,4 +1,6 @@
1
1
  class SmartAX < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Huawei SmartAX GPON/EPON/DOCSIS network access devices
3
5
  prompt /^([\w.-]+[>#])$/
4
6
 
@@ -1,4 +1,6 @@
1
1
  class SmartCS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^\r?([\w.@() -]+[#>]\s?)$/
3
5
  comment '# '
4
6
 
@@ -1,4 +1,6 @@
1
1
  class SonicOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Applies to Sonicwall NSA series firewalls
3
5
 
4
6
  prompt /^\w+@\w+[>]\(?.+\)?\s?/
@@ -1,4 +1,6 @@
1
1
  class SpeedTouch < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /([\w{}=]+[>])$/
3
5
  comment '! '
4
6
 
@@ -1,10 +1,12 @@
1
1
  class SROS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  #
3
5
  # Nokia SR OS (TiMOS) (formerly TiMetra, Alcatel, Alcatel-Lucent).
4
6
  # Used in 7705 SAR, 7210 SAS, 7450 ESS, 7750 SR, 7950 XRS, and NSP.
5
7
  #
6
8
 
7
- comment '# '
9
+ comment '# '
8
10
 
9
11
  prompt /^([-\w.:>*]+\s?[#>]\s?)$/
10
12
 
@@ -1,4 +1,6 @@
1
1
  class SROSMD < Oxidized::Model
2
+ using Refinements
3
+
2
4
  #
3
5
  # Nokia SR OS (TiMOS) (formerly TiMetra, Alcatel, Alcatel-Lucent)
4
6
  # Working in Model-Driven CLI mode.
@@ -1,4 +1,6 @@
1
1
  class StoneOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Hillstone Networks StoneOS software
3
5
 
4
6
  prompt /^\r?[\w.()-]+~?[#>](\s)?$/
@@ -1,5 +1,7 @@
1
1
  # Mikrotik SwOS (Lite)
2
2
  class SwOS < Oxidized::Model
3
+ using Refinements
4
+
3
5
  cmd '/backup.swb'
4
6
  cfg :http do
5
7
  @username = @node.auth[:username]
@@ -1,4 +1,6 @@
1
1
  class TDRE < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^>$/
3
5
  cmd "get -f"
4
6
 
@@ -1,4 +1,6 @@
1
1
  class TELCO < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Telco Systems T-Marc 3306
3
5
 
4
6
  prompt /^(\r?[\w.@_()-]+[#]\s?)$/
@@ -1,5 +1,7 @@
1
1
  class TMOS < Oxidized::Model
2
- comment '# '
2
+ using Refinements
3
+
4
+ comment '# '
3
5
 
4
6
  cmd :secret do |cfg|
5
7
  cfg.gsub!(/^([\s\t]*)secret \S+/, '\1secret <secret removed>')
@@ -1,4 +1,6 @@
1
1
  class TPLink < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # tp-link prompt
3
5
  prompt /^\r?([\w.@()-]+[#>]\s?)$/
4
6
  comment '! '
@@ -1,4 +1,6 @@
1
1
  class Trango < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # take a Trangolink sysinfo output and turn it into a configuration file
3
5
 
4
6
  prompt /^#>\s?/
@@ -1,4 +1,6 @@
1
1
  class TrueNAS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  comment '# '
3
5
 
4
6
  cmd('uname -a') { |cfg| comment cfg }
@@ -1,4 +1,6 @@
1
1
  class UCS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^(\r?[\w.@_()-]+[#]\s?)$/
3
5
  comment '! '
4
6
 
@@ -1,4 +1,6 @@
1
1
  class Viptela < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Cisco Vipetla
3
5
 
4
6
  prompt /[-\w]+#\s$/
@@ -1,4 +1,6 @@
1
1
  class VOLTAIRE < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /([\w.@()-\[:\s\]]+[#>]\s|(One or more tests have failed.*))$/
3
5
  comment '## '
4
6
 
@@ -1,4 +1,6 @@
1
1
  class Voss < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Extreme/Avaya VSP Operating System Software(VOSS)
3
5
  # Created by danielcoxman@gmail.com
4
6
  # March 16, 2019
@@ -1,4 +1,6 @@
1
1
  class VRP < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Huawei VRP
3
5
 
4
6
  prompt /^.*(<[\w.-]+>)$/
@@ -1,4 +1,6 @@
1
1
  class Vyatta < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Brocade Vyatta / VyOS model #
3
5
 
4
6
  prompt /@.*?:~\$\s/
@@ -1,4 +1,6 @@
1
1
  class WEOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Westell WEOS, works with Westell 8178G, Westell 8266G
3
5
 
4
6
  prompt /^(\s[\w.@-]+[#>]\s?)$/
@@ -1,4 +1,6 @@
1
1
  class XOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Extreme Networks XOS
3
5
 
4
6
  prompt /^\s?\*?\s?[-\w]+\s?[-\w.~]+(:\d+)? [#>] $/
@@ -1,4 +1,6 @@
1
1
  class Yamaha < Oxidized::Model
2
+ using Refinements
3
+
2
4
  prompt /^([\w.@()-]+[#>]\s?)$/
3
5
  comment '# '
4
6
 
@@ -1,4 +1,6 @@
1
1
  class ZhoneOLT < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Zhone OLT/MetroE/DSL devices (ONT uses a completely different CLI)
3
5
 
4
6
  # the prompt can be anything on zhone, but it defaults to 'zXX>' and we
@@ -1,4 +1,6 @@
1
1
  class ZTEOLT < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Tested with C320 and C300 olt, firware 1.2.5P3 and 2.1.0
3
5
 
4
6
  prompt /^([\w.@()-]+[#>]\s?)$/
@@ -1,5 +1,7 @@
1
1
  # For Zyxel OLTs series 1308
2
2
  class Zy1308 < Oxidized::Model
3
+ using Refinements
4
+
3
5
  # For Zyxel OLTs series 1308
4
6
 
5
7
  cmd '/config_OLT-1308S-22.log'
@@ -1,4 +1,6 @@
1
1
  class ZyNOS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Used in Zyxel DSLAMs, such as SAM1316
3
5
 
4
6
  comment '! '
@@ -1,4 +1,6 @@
1
1
  class ZyNOSCLI < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Used in Zyxel DSLAMs, such as SAM1316
3
5
 
4
6
  # Typical prompt "XGS4600#"
@@ -1,4 +1,6 @@
1
1
  class ZyNOSGS < Oxidized::Model
2
+ using Refinements
3
+
2
4
  # Used in Zyxel GS1900 switches, tested with GS1900-8
3
5
  prompt /^.*# $/
4
6
  comment '! '
@@ -79,7 +79,8 @@ module Oxidized
79
79
  i = -1
80
80
  tab = []
81
81
  walker.each do |commit|
82
- next if commit.diff(paths: [path]).empty?
82
+ # Diabled rubocop because the suggested .empty? does not work here.
83
+ next if commit.diff(paths: [path]).size.zero? # rubocop:disable Style/ZeroLengthPredicate
83
84
 
84
85
  hash = {}
85
86
  hash[:date] = commit.time.to_s
@@ -1,6 +1,6 @@
1
1
  module Oxidized
2
- VERSION = '0.29.0'.freeze
3
- VERSION_FULL = '0.29.0'.freeze
2
+ VERSION = '0.29.1'.freeze
3
+ VERSION_FULL = '0.29.1'.freeze
4
4
  def self.version_set
5
5
  version_full = %x(git describe --tags).chop rescue ""
6
6
  version = %x(git describe --tags --abbrev=0).chop rescue ""
data/lib/oxidized.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'fileutils'
2
+ require 'refinements'
2
3
 
3
4
  module Oxidized
4
5
  class OxidizedError < StandardError; end
@@ -6,7 +7,6 @@ module Oxidized
6
7
  Directory = File.expand_path(File.join(File.dirname(__FILE__), '../'))
7
8
 
8
9
  require 'oxidized/version'
9
- require 'oxidized/string'
10
10
  require 'oxidized/config'
11
11
  require 'oxidized/config/vars'
12
12
  require 'oxidized/worker'
@@ -0,0 +1,43 @@
1
+ module Refinements
2
+ # Use the 'refine' keyword to define refinements for the String class
3
+ refine String do
4
+ attr_accessor :type, :cmd, :name
5
+
6
+ # @return [String] copy of self with last line removed
7
+ def cut_tail(lines = 1)
8
+ return "" if length.zero?
9
+
10
+ each_line.to_a[0..(-1 - lines)].join
11
+ end
12
+
13
+ # @return [String] copy of self with first line removed
14
+ def cut_head(lines = 1)
15
+ return "" if length.zero?
16
+
17
+ each_line.to_a[lines..-1].join
18
+ end
19
+
20
+ # @return [String] copy of self with first and last lines removed
21
+ def cut_both(head = 1, tail = 1)
22
+ return "" if length.zero?
23
+
24
+ each_line.to_a[head..(-1 - tail)].join
25
+ end
26
+
27
+ # sets @cmd and @name unless @name is already set
28
+ def set_cmd(command)
29
+ @cmd = command
30
+ @name ||= @cmd.to_s.strip.gsub(/\s+/, '_') # what to do when command is proc? #to_s seems ghetto
31
+ end
32
+
33
+ # Initializes the String instance variables from another String instance
34
+ # when the given str is an instance of String with Oxidized refinements applied
35
+ def init_from_string(str = '')
36
+ raise TypeError unless str.instance_of?(String)
37
+
38
+ @cmd = str.instance_variable_get(:@cmd)
39
+ @name = str.instance_variable_get(:@name)
40
+ @type = str.instance_variable_get(:@type)
41
+ end
42
+ end
43
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oxidized
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.0
4
+ version: 0.29.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saku Ytti
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2023-04-13 00:00:00.000000000 Z
13
+ date: 2023-04-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: asetus
@@ -290,9 +290,11 @@ extra_rdoc_files: []
290
290
  files:
291
291
  - ".codeclimate.yml"
292
292
  - ".github/PULL_REQUEST_TEMPLATE.md"
293
- - ".github/no-response.yml"
293
+ - ".github/dependabot.yml"
294
+ - ".github/workflows/codeql.yml"
294
295
  - ".github/workflows/publishdocker.yml"
295
296
  - ".github/workflows/ruby.yml"
297
+ - ".github/workflows/stale.yml"
296
298
  - ".gitignore"
297
299
  - ".rubocop.yml"
298
300
  - ".rubocop_todo.yml"
@@ -546,9 +548,9 @@ files:
546
548
  - lib/oxidized/source/http.rb
547
549
  - lib/oxidized/source/source.rb
548
550
  - lib/oxidized/source/sql.rb
549
- - lib/oxidized/string.rb
550
551
  - lib/oxidized/version.rb
551
552
  - lib/oxidized/worker.rb
553
+ - lib/refinements.rb
552
554
  - oxidized.gemspec
553
555
  homepage: http://github.com/ytti/oxidized
554
556
  licenses:
@@ -1,13 +0,0 @@
1
- # Configuration for probot-no-response - https://github.com/probot/no-response
2
-
3
- # Number of days of inactivity before an Issue is closed for lack of response
4
- daysUntilClose: 21
5
- # Label requiring a response
6
- responseRequiredLabel: user_pending
7
- # Comment to post when closing an Issue for lack of response. Set to `false` to disable
8
- closeComment: >
9
- This issue has been automatically closed because there has been no response
10
- to our request for more information from the original author. The information
11
- that is currently in the issue is insufficient to take further action.
12
- Feel free to re-open this issue if additional information becomes available,
13
- or if you believe it has been closed in error.
@@ -1,42 +0,0 @@
1
- module Oxidized
2
- # Used in models, contains convenience methods
3
- class String < String
4
- attr_accessor :type, :cmd, :name
5
-
6
- # @return [Oxidized::String] copy of self with last line removed
7
- def cut_tail(lines = 1)
8
- return Oxidized::String.new("") if length.zero?
9
-
10
- Oxidized::String.new each_line.to_a[0..(-1 - lines)].join
11
- end
12
-
13
- # @return [Oxidized::String] copy of self with first line removed
14
- def cut_head(lines = 1)
15
- return Oxidized::String.new("") if length.zero?
16
-
17
- Oxidized::String.new each_line.to_a[lines..-1].join
18
- end
19
-
20
- # @return [Oxidized::String] copy of self with first and last lines removed
21
- def cut_both(head = 1, tail = 1)
22
- return Oxidized::String.new("") if length.zero?
23
-
24
- Oxidized::String.new each_line.to_a[head..(-1 - tail)].join
25
- end
26
-
27
- # sets @cmd and @name unless @name is already set
28
- def set_cmd(command)
29
- @cmd = command
30
- @name ||= @cmd.to_s.strip.gsub(/\s+/, '_') # what to do when command is proc? #to_s seems ghetto
31
- end
32
-
33
- def initialize(str = '')
34
- super
35
- return unless str.instance_of?(Oxidized::String)
36
-
37
- @cmd = str.cmd
38
- @name = str.name
39
- @type = str.type
40
- end
41
- end
42
- end