From 49d09b90b39139acd20f821a71674fe59f4049ab Mon Sep 17 00:00:00 2001 From: Will Clark Date: Thu, 3 Jul 2025 13:16:14 -0700 Subject: [PATCH 1/4] Upgrading ruby to 3.4 --- .ruby-version | 1 + kickplan-sdk-0.1.0.gem | Bin 9216 -> 9728 bytes 2 files changed, 1 insertion(+) create mode 100644 .ruby-version diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..f989260 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.4.4 diff --git a/kickplan-sdk-0.1.0.gem b/kickplan-sdk-0.1.0.gem index ea4aff0b36acbf8b5f399a509989c0698f0b1f57..bf34c7c01961460f3cf72b594b4d7dc52588da84 100644 GIT binary patch delta 6836 zcmZvhWm{B%qDBW1X=x-RL{jOL5D)?B?(RmA?oEUA&|T8qB}jL7GaxD5J+tpQ-|lmt z`ybx5-Ve)P%3m%ngoKX|!okhU&cn{j&CbIKVdvoD=HY@+vnLoMnbjj9AtM1FtOzY$ zAfIT%99DU8{T2* znU8 zKaX>ZUVu<+xRa+?_zJXoDm@~Ss%rRK#;*N+{GtTh+wTa;9>`u-UH?nijyj0B`y(SL z&`F_p_+I@n2hA6|wbleqDh0p(ROr{%JV*ZHem}-?kaU{G9$g`~%*WPie$grQ)tQ#5 zt%V)BK}XP(Xw#-ow}*Odd*09G==d_dIz4N7SgbbE+9HX?PzV6oCt;&II^;jp*X1%P zV~%q#mJ_4LBdKyJ>C#hWFm$k${#ipG*i3ChrGTiaJnqumZa8v zUDs5NXN0Eji1;3xp**G~K-y|dUqeO4ba)%Iko1h!5WD%AAIs{o-izxe&!#dupEEma z;IA7xqaIhTSm~+cS=tf?uD~BA60(;HgQ6xcrX!SLcp-rOvT5IjW#Oi_HZqZ+${#G* zp~CuQl?U~#umVS0?$*)i z!QyVTaJ>c5U3n7&O*793b5w$SVw3yT^^>;OJ_+Ii>vNQIvL5Y~KE5pb=_~<%p1p~C zIYxx9=)S15Q@T)OrcQDLshO>nl$HAvY7qH>=Z=l(Cw#LX4-rJfVU_zF+v~iuXF{f{ zlAU)-HZejhRk{zL!<(Wiq-GK*-q-k7L1di&<@*1i&c*xxp?<9I?YuHnHwp8JXmwgA zRIBAQGF{AzPrwZ_{ch)oG?ASc8~Hx6+lqxYMsmrR0=QefikHNpbbE`+knd(1=jBD2 zj&Qw`Q#>k|2e(^Xr|j<1tNrGR)mW2m-P{e6?imoxDl6sfAI?sb%0$)6H2nY68CL!g zE7Sxg&(rW==ebPHrcoz!F6F0#f_GxV43)wHO>)P$nWGdfv#pl;(Y}d%mY-}CjIIr1+dmlLdP{{9X|-beN^2eAz**OHuOw67?_j<4^wBbJ|N3B>Heg>i*~>F4 zBeP6|`tSJvixS1L5{$I^`??Yj9;w}2R4=ke93%@(_e`f`W|8?;jVPOwsBjwc@%LM`j77@G=tXUc;Jk*U*FuGhwwdJ`gIJb05=+KzsWB-dN~;XAa}c=Z535-G@wh2b09 z@To_G7cSLcGZwkLe(e04v!d5GR6NSnfb$YqzhR%Rfs^GXn4=qQfoy$4`MeNuFsT8S zI4^t?ovv(tGE~~fonJMaD%SX|EItloxn*=v9=bSJCd_VY5L7j;pblC_YdpPwgzTwZVT=5fo0 zM6u=itU@*VJfFY)?|I>4F_!TJi{I5>D;=?UM0#=N1k0$XX3LyzxU76rns6vw6gpjW zsbU`wN}SiMdirtXt+e62KN2)ivIIU=H7i7vD2tQ=c6BNgn=|9eoErky`^pIh`8V@h zok4!(vqkHl4jP{H@3n&s+@8Jw(;~VZ7I^c&D=8`BdcW@%r2gtfrxS=mPqgLZeOV1olqo9is%y1H~>`&^bc>P2zPGf%UKar@bu z^Cr~UpX-ZGt>1B27Xceo#}18OR~0ymuBfm*+Xjd~D&5OoU$Zg0&d{ZKEY$2fQ{9x+ zMKR=qjoryO&`Aa1{;_af4#6jiV7nmt|gybqHcm!ha=HgWbe1kSO+w!!q^4#w+`%aMp(Z7>nqb6lkUV6#sR5W&rZBeWS|` zT^mctE(raFK^48_b(6Jj)Rq&?BB{0}SL`y|M=OUeX-hTH(9XvxC6`>{;zbyaN8`(m zLOzLVn??dtnXTCP)TS?JURR-2I8mE?`Rw5ywe6;I?1Yu*X3RBDQfqXNXis|{n_lNb z5FOIS)8EJ{qJaB>|1^7C;UeZiHc`>GG)UHD9@qWy$<#gEX8(Dsvi-Q=7loT5P+`B`cY>t0#A|u}^rC;G{FbW(( zK+o6H_^N$EC{cu&L;MU={aKjTCmFdC5T4{L%fnD5TQ#I3ni-3U#_bIOq*2grT|#>u z{PuAt|Ax~;U6*h(f9r|TWsT%TFvqhp|)Kh+qP6zMDiwLppK)-*l_obVr02oCZb&a2uIcYUp->LTTM0GXE%AQ%0Y*Gd~+u zQ?y30!)B86P0b$PFfZ;vYkZnDU?R3r=$tJdc8DcIRhY&Z*+*UZIW4M`sO1X!K(ni` zAm)m@RAqJWf#5IhAqknYg=XZ7F#!!J+;mTWhMuy}kz&@dIg?JdV{^Pavj`jP;GsJ`f(=5m)2jr zERa`g@<0}Jtur_HrNlDkqR&4xvWZh|*N!+~#+_VhX62m#rW3gw_NXeQM6L(1aQvor z%_TabbX+ur>yI=$IAdT!i|;38v1owpUZw-IcPk8@)jnbD>z zB3LKS8<<8L@FuBxkHSTHh>n`2LEH8U`EStfvrbAVqrIro{lGbM5K*!(zUF2Aw8XGs z>BVcLSTd82KOD!TRl}@@`P}?(3|Xf-PRUhoQ}aSgk8mq);rM1dWW$0gxDvBrOJRB4 zc-qhcAA@JbIROYTi*_C3;6EWrMuZ%#gQ&B&W7`of+mYb1y&NUOczQQrbiQL;AxhXM z+7;_C&03i)kGWdYXF!Ag2ES{ ze0+SN0>Kjqm?Sxa=#x@7E@gr}4@2bvB)ILaPs zXNH8s*=}ue1hCB1pT9M>zkz|P>yrzh!P2A1G-b13i{v#55iHHp#2gcvVX$eJSwqaa zCKII}`^pCB<2^2sky@`(jlR005qQ7Eie`L@6_xjKwS(J^@E_rek8zR7SZ)ai^qMrO z3KOHs3;pIrGtzdEP^S3sAfguqqPVVuYUmJUFUcSeS~+W7hq)U8iy!Oz&8JJS9+5^m zBwC;50{Vwt!j}GcIM%VSh#`SItB^oU@EC>jajODghhFxv=#@6EanBs@iT)QJYi+#w z&@H&-TdA%u_*Kmq*PKC``S(;96RIBqlI}a331A=!O57GmUk&zg@P;qMh4o)T<<)M# zqIx^XxCiMVHF!z8;5*X)+LWs~uH~!IPcUX0PKn&@@%$&&94%}2X8K6B#Z_Oa1{dQ8 zWd#Iieqgo#`FC`y&*b2MJmzOmAaZTv1*_t6nXp)VVvk}X1~LW~Fm_ z_!z45CtC%NVdK@%EPB z0``0PaZ+*%3`g~X#5v^cEtcA+C9_>**ARK&VFYgEMi|HtuHD|B9^D!SS6vpY?dgjD zMd*ysiPzZ^cW@g8?ERCKI&7ur{te_+EG&@U%=*>KDz2aJYQ-pxyKOhj+T3lmNpAB? z*?X_1>UcStOgQlP^{ldgD6&mmr1Chx(5);Q#i2=*s1gp(A!JQ*@~N?D z1m7dIu~6^yHpN}ilDuCbBcb&?m7z<-GYhQL8>B4JVG=#5H>ejZ0qic7(E)|nJF=Xq z@rCt$i{{0{hO@?9<&ILXx@E)|4&QF0Vr7tG@!-vEuAk%7@y#pvM6pH2%GK5fUpvE( zRbN!oE{d^y`kGPN@zZ&t(=y4s7NcVri8+Z zo5To4Gn?z?S@1b`!ubqL1a9#!VDpCx$)G9MBAANEMdiP@K>9O&=hI6{Mj1wbh42>edOW)~tSO@uNA10Gn<3^(Tj9a)p&0B-WPp|P5WC;34 z7LqG8%yA{-CBA*JrXHMVI$E?uEZua4kyaI%L-AyX{a)Tn?ig~E0Ib-7IZTN9hKwPw z-f($&cn9D*0Yh|OFer0bV!nOqVk$W>jI`FU)e7w&x#-`@i{ld0)Cw}+DJ;Z1SjV_+ zJohWe>ui;%mqHMQ9sV{pGDpO&ry{DmQsltS#Csfln1+H!anP4KLUndL299fmX>$5! z8?{uf+`RB>JuON=kniw&JersL ztB>Tj`S(XiK6@z>u@Qp(Wb4lR;1W!}0z6HrzY@u40`CA+Mda4KzZD`mCOrFL*J&H) z_Dz)AN!zuDp&gYqhg1tPC zk0k`C5-ADgVIr;GYf4{p77v4k-qn8}O?)Byj$0lvdkCkL)1m|C?-4+uTuLzK15Er$ zQ4jC0+#C?S=5_58gf^GNg+^;gh%uRVPva`^w|MiBkc)&@RCT5#kmT9_c8Gd=YGoVx zPWh$*>x&hzDL}!>n;DqQK>!Pk{M- z+AvuC4zzpa+j-u(eeu8{u%0#Js@JQ)V${>?3NRr1+1MhPm0VxiQJmOF8Quw*Qp$Vh zHe}7bPIjSo@{_NWD>?jvKbx$6&-$|aUMXCEwVhspe_F#D@Ri?=jEttty#vGpW?kC5$sG`6m z8-OPO^wxgfuMPk$?Ow6;f-Yv0kk821SW^H#f*}RZFBddqO-VoiJgcDZk9&YbUaV#X ze1k$llG_|PbvEN_Z}&-gXS;>L0cm9V*j;n!m!bZx0{3IIyNtwVyz2+;0--!652)nR zNL|bnn?&2PJpnW{*zfC|fN%La?9&~PIf1D!$|4!cm?VcaE4JSKq%y=3uv0>h9WfC4 z0Tb;R`@)df5y(NV;Y2W4gJ)((ot*SpMXmMf0(epzcUP8ymW6|sw4)iqyfcvEW|f1 z$fGLEb*c4FzehwAJuchN0LGNEpU+f%Wh_mB~Y81qn=8 z4hH4(T`3{u2sm>5N0w+$Jb*tg(AC=>C9B~~a~fSxbX2b$)(1u^7BEb|EI$XD)qbu5 zqzH$0I73kcemBbBsgK!2Y7s z5{rNAT&z(=OPxIbu^L5b_ETiAce#^o@gHK^Nw^}uC-zd=>4nEzV1-XvfQMMvO4DoO zX03;|xjCC-Tvjr~oHY1>z+3#yedy+jzE*PeJsx~WgLSb7q(;4U-UJn_`FcS^2)O$Q z`*i`>b3=LhFAUhji*Hz&k&dtVUKi{~O>(V^sF z%B}^MM$B6}UWq{W3?43Kg|evpmpQ8ex8)Hj_Alp%MRlf20&DCy$?}TqR7ZvoSOptb zvM=k`^PHbx&xLn-NUr)(C({FXTX$cb5(b*U`Ov|?NpFtG+XGcA7kUvdj1oNR&(+CD zHH5Sf{Y>Ti6JVX8OeVNmY4OyVK@BRpBVv#4!`_0CfW?j3t!RxeK|ikBkYIa?>TCM? zC8ZlIB`FQ1f9VrgQIbtf%%$3MMKY5cDA(!LlY6#Z%>HEaBr*-A<9A5TTbRik4Ta(c zMvT7uD|QjjsPZ0F&urdFGBluU5y+I20qADN9)k6sc}HUZEAyP=1mC*J$meGf2m}Ix$dFR1i%>{e z0teM%{M!hE|D9L<+gkpgykZ_F=tjtn1$p}1Z(!tEX9k}s{I&n`aY>E4T`iN6j&80= zlFO^ZAeIUSgYKSO_#gzRrZ4bdeh5!*o51*O`NZ?_4y2WZ!_W;Tui8GfOzFw#zXNl^ znFX2HBb@DQ3*Vj*e?w+xb~PKnXifjZVC#vQe5Vd=l!yctHuh=XvM183piekY9k0hfjcy7m0_LUw~f-iGe5iGqOb^GBPSMK!omU ziGq4&pyj+OL>PEbyY-lquHuy=gpAg7IE5xR?MZMqg-nAHT=-tdT6-=oMaOd~&_6!u zbgsIvV^w=m+5wgLLNbwFia!3Yf>uAYPt5+c&=cxUjX;A<8oE z@XV|BV`bUE&J55YYDYVn;Y774BP0~SQrwrd!4%Fa6(_})_tj{3cVJ5D(u}57DA_i- z=v-X&tty7$s^rdt0|I+-p3BV24z#O9WnTcLy-Bf3F$deKN;ufv5 z!=G60-b!ym>fr;~@%A!~TtNZePQ7*x3JD#f**ivvG>p0r_j?Mk^^(GJqSG(VZ*d`} zjpGIBI(u>gFDi2iK3RtS@$Pa-8mX#1Wf!{PlgqWYqb26XOr=JCk7J<{Zz~`79LDUr zmUpcQ{N*$3@58*t4X0gq&m-b`{)5A{i^i&Y&~&xlvV}N{6}{nW505g5tus2|zgb+} zwS#bsm;oy!#^ypm%4fK~Tx!H>X*E^l+XO1&C63lfK_K!p{=`68&c;bC`frvZBs#@> zP5habT4Xb})ZLCr{Xpty$c&znp&@=?eMSJh-T zrg6_PPN9)9*3SKl1R{SNZwN7BakHvnqO`)p#76y5Z1H|<1>Ip4KFhr=IZ~W@Io86; z)XKYWOUX)G&UaBV9#67A5ed5)aTA~5>WL`rWFa?OTV!>UrSkV)#EJ@#J>Zgzoy^pU zPP%sM_!bt*>qWnC?wlW=Q5j35l<=^pYGSZJiJ(7y6_ zc9#r-hE|MFz#AW);glng` z4HRaW=T>a&G-n4Hg_D3ExrHkr9LE_2EnhygcU(Wzl+9Lz9$;j`aAg&bI?{?K%X1e0S47@ z=z<&4(PR*=Ybk=FuMa?ykilTAv89qGP&alL9g1^?HFcL;nt!`S;4(Wh@HC;=TYSS4 zw-$|97~!}bxVAo@QKWm_W1X4uj>s_17Q)&@(6G|7pJo$W*vQTx%Fw~WgR(Nol+{UM zuL6D%sv2-}_-LUgPZFI(2MJ(fX-fEGnHX2J>lb0RI)RM-;t}{WNPQpIJ5>WY41N3( zg~k2A=YBAqXuu-;$q!#3l4_#=JG(hIB1}CmP4lwce)XI}OkmdYH90Mj?Y^5_8Q}n7 zSQU%WJ-c079SG2PVjMPXJ}rsb<}p+Y23;5tJ+DyZ-qnO*F+5hEUy>aEDAfB$@;G&r zORDumpZ*5M zx|C!{ZMFB0n~6&uUhfquFZMsPCiKlymX%VcFHL{6J{|(s6~Ho0Q^5lX!|Iub#?zF_ zQ{g)8@f1f&!M!5v8-{iDjr)pjjVF5d#Vn#=XJfB4@Zfow@WAa2JfwXx4837 ziJ9imLG^?J(T}D#Mi;BNm6*DZqBw*8;el`MXPH(^ULeHjy!<|i#q5}PFNN1CP+9_% z`G^&&rf8sS{sQ+fH0R!*V&LVE_rDH#nSvG_-8noew02{Wu$}`2Z7|WMl{-E0o3`#e zm}@mAyN4w~xxBzmPq*oXgXFxWLGtIxT=PfhMw!JUsJsDnjV{*BVcF*AD#(xc2Bj&EU z8Ai!|HGAhW60+BS+-zJU74+BYhH^Apy<;Lwvql`I+M`T_)BX}2teGuw#eMKF zLU{FOzd97GCM~iPg2bSc0i^v+y+aDMCV&>`g0o3P77|gkM{6F3+|15m9z4&irFzSL z|7UslZYwp|#&Qb%7LT^kZUw2sn$m;#$h5BomoLlw(v!8!_qjbHD@XUu0uK=$`ZK|B zUHEtF^9HFwaY;Hjtci6np4iyF8y26N8okPKP5zZOk_RMJ>c-R4)}wx z52~j~1@8twlY^_6576j3Jhaw!6^h)9D8It*ZnXo8RLPi3ZKOCV?qn*I9JHQFhSiMdD_#^ELi$k#0U$mrECi9m+_2>DW^2xP;e$A#11cIkk9mZH(ZtLDJs7_yh#FJRZ z@8+3-KIT4w^;aT>FMvM&{V1*sYN1}`G_dH8di{3a=BMl(;;^>+PZ566`U<2&rH!eJ zXjtsDUs22a)qiV=3UMBqdpE3<<0WmX0p7pI2GBOx?}Xltsc8$ssn~+;V;4C+Qe}=Y z{I~P&HjT$d?2D%m#OsB+OtdrD>t26^FL3=MqaEg9b(c6NVgL?g-oPMOj>gy7t$l>N z{181EPkk*Pt3b!b|4UVdC_7<>R#^~3(``^}C@*#_#7rQN7p4Akt+o;=EFc;sCOr+W z#R7@1^)(4i5zW}A|2rk3HE0SF~(JrswK!_**wr!f0$bdQYVyUz{f!|4 z-XXt*-kr8K z!Bov2&t#2iM)RbNV!$DGMWM1ne= zfdSRY{!wybVc%a%U1o2MJ5xzHsIoqo_jHXLiptvt`&rNxlJWyW79PZ9MZp ztUh1Sv7ft#!)6&TWrl;&o_Zu|I)@dXpy;enoS!ki=6@fy0J z)DNCCkAs``pwt`lkaa&_0~Y#ad2`d-@8J|4!ucdh#t`<|P{I^L&63ZnOEk+hBP={4 z`cbLBJs%pKXv`fbrpI`7*U3q-M~!h+LKt0UogJd(%h#;ft+hO*q+iO^0$i9H z8@uew-sMAtWes?^3$Y)3WI^&nc zZfENfdzdxFdss+~UMYk7sstY7FD4sX@8D-*MZH&vDUQEcj0`g6cRwa5zXbGh(Fj_J zbzF#_Vz3Jka@WFwM~|5}n*qt-Us_35gmd$nh{`@_bpX9rL1_36qGDa6&LKMLxM#16 zyI5_G{rFf>x@A9f=SXu+qo~1WoI~IFYF9jL#FT9+w}&QG?NX8VGN;+((8+2~I%2J` zs!X+b&UCzNdAglLj~{iz2IkLmjqk9>VpMTUzvYC>WyR{n-|$tIN06o`V*%E z#h;aX4D)@8J8-GX7sQK;$ib(gAu=s*)4haQ2xbGU!5$w`hf5u~cNKUPn}m6kuh(L6 z*mSbc45=pQ%8l3)R`f%>fH}X-{YGMAd|r`+x_G zRg7=GdzQ|%8zV)iJ&WxyKW7F2wWg14oF5uU!rK!MN z>TFcY3B|g^iL!GZv$8eq*CWCoW15f)&6-gsS{F-DuSDCRA}J^=;xF(>8k?*+X-z|n z-~EcubO?W2{2)rxOZO2;5oXF;Hi*%ykpk-1eE9oM>g5NZ(hvdWu7LKfXm1LwCXhw$ zgLO3Lq2#kw3xwf&Wmj95@|TnaL<63s=y;n$Mqk>jc3f za`FGavG7l*K&fOn!6yhi>(|-uGQ`mw84<~pex-+G=79sLu0IlwW=KRNC(IAtud5R; z=hX%$UH~2sg1Bo9KYJOjNH&_GxcuV=IHuLcaeK2&z6K(?Hv zjQ~*YxhyLJq@%UG1}5*pK;(qtqYKKMJN*|`z{Uf^bFu!{Y{y?VdoV5RK1Q9z?Aa9S zBw+dH(_N)#I!k}fb~_{D5Kg|RURp6g{JOY5k;GBoCvmP5T{6uViY}I9TYHwMtGWZG zj6BIPedYwy&7Y*^Rl0MRfhSuqlDK!`_yI!op_e;R4pfmHInnv*s>5g3V9p}P!IS~8 z1*IkP$ZP~4`C26yveZpX__ZU{_B*5cn2$$tx7rf5$u*tA;yYxy)E)>%5b=Y3tyfTq z?MspesJ5iqHrN*f=5c~!s1dFRioKZ3-p|o>&^7mQd-KKS`fVHZPp*V%H+6+d8cq)| z4FB6{ON#tiR>^Od9z{!=&unpIGr(%vFRtLv^~nLZ1xhznp^qCeOi5cJfk)|+5- zCh9fJvE>I9*XHwRLC7M($rTLL5?uxTo#4O#`5*L;{Mlcn*;!^6hdra853BhcDxMnYl?*X6!=Oog(aY)9%L(sl>V1*|U|a9SFYoRCAjG zms7dMz;}FM?9#hIF5+vtQ52o3iy(Lc*^dv z`_t1PK{&m!X2zQIu0-5dNr+rA%Um`lJA7-TbEn8wkA_gfAz_#N z5Ce@UXD#ANu0$;q%p4Ddn+9(Tf~kh@-UcFe>T;hEHycMl`OG5Dcb;G^lXlz+6YJs! zS@NM}|0h%9q}#azD97IJv+42$cvg;}ppcmE%p3JnfY?(hTIZc62Q*B&!{L}nNFa!c zG{fd&g_M%aOFNQ87e(?vpLGEt9-jZ>eX~puZ6TG$Qn)cuaL#|Li;NB*A73Nmq0aOX zbGu8EnnNRQbN1;riNDzFagwBuKe(}mcEit11K|jtFy2?Rl{g*}iEg3KZR`SbVKPBy zry@Nx8GeF{8Cb8#%}h5~PtKr{zLxkZ*v$^KR*56c?@9*}FLaKBRnGvCxKQLGy)F_A z14p0dyAgZvAQ|7^Ho~%0@6!=U!i!=1^3!Tczkq2{SnvRGBXaXmR6{D~z}rC=>U>fg zuE=2?3geVPQCq^#?D(r*EPT^{u From 94538237699cd2a838be4df3a0147a1f0ad9b9db Mon Sep 17 00:00:00 2001 From: Will Clark Date: Thu, 3 Jul 2025 13:24:50 -0700 Subject: [PATCH 2/4] Tweak our CI to be more robust --- .github/workflows/main.yml | 27 ------------------------- .github/workflows/ruby.yml | 41 ++++++++++++++++++-------------------- 2 files changed, 19 insertions(+), 49 deletions(-) delete mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 9541344..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Ruby - -on: - push: - branches: - - main - - pull_request: - -jobs: - build: - runs-on: ubuntu-latest - name: Ruby ${{ matrix.ruby }} - strategy: - matrix: - ruby: - - '3.2.0' - - steps: - - uses: actions/checkout@v3 - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby }} - bundler-cache: true - - name: Run the default task - run: bundle exec rake diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml index 50b0d1d..395d0d5 100644 --- a/.github/workflows/ruby.yml +++ b/.github/workflows/ruby.yml @@ -1,38 +1,35 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. -# This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake -# For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby - name: Ruby on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] permissions: contents: read jobs: test: - runs-on: ubuntu-latest strategy: + fail-fast: false matrix: - ruby-version: ['2.7', '3.0'] + ruby-version: + - "3.2" + - "3.3" + - "3.4" + + name: Ruby ${{ matrix.ruby-version }} steps: - - uses: actions/checkout@v3 - - name: Set up Ruby - # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby, - # change this to (see https://github.com/ruby/setup-ruby#versioning): - # uses: ruby/setup-ruby@v1 - uses: ruby/setup-ruby@55283cc23133118229fd3f97f9336ee23a179fcf # v1.146.0 - with: - ruby-version: ${{ matrix.ruby-version }} - bundler-cache: true # runs 'bundle install' and caches installed gems automatically - - name: Run tests - run: bundle exec rake + - uses: actions/checkout@v4 + + - name: Set up Ruby ${{ matrix.ruby-version }} + uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby-version }} + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + + - name: Run tests + run: bundle exec rake From 7cdc1b64c0b69a0ffa19159b664eada1d8b84dd1 Mon Sep 17 00:00:00 2001 From: Will Clark Date: Thu, 3 Jul 2025 13:26:53 -0700 Subject: [PATCH 3/4] Tweaks for 3.4 in spec --- Gemfile.lock | 2 ++ kickplan.gemspec | 1 + 2 files changed, 3 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index 1b5fb49..27eb6cc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,6 +13,7 @@ GEM specs: addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) + base64 (0.3.0) coderay (1.1.3) concurrent-ruby (1.0.3) crack (0.4.5) @@ -79,6 +80,7 @@ PLATFORMS ruby DEPENDENCIES + base64 bundler (~> 2.0) dotenv (~> 2.0) kickplan-sdk! diff --git a/kickplan.gemspec b/kickplan.gemspec index 6e6a7fe..2a0f1ea 100644 --- a/kickplan.gemspec +++ b/kickplan.gemspec @@ -26,6 +26,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "dry-types", ">= 1.7" spec.add_runtime_dependency "faraday", ">= 1.0" + spec.add_development_dependency "base64" # Required for Ruby 3.4+ spec.add_development_dependency "bundler", "~> 2.0" spec.add_development_dependency "dotenv", "~> 2.0" spec.add_development_dependency "pry", "~> 0.14" From 050313a3681bbb0a18335bba060f909117dd8e3f Mon Sep 17 00:00:00 2001 From: Will Clark Date: Thu, 3 Jul 2025 13:38:12 -0700 Subject: [PATCH 4/4] Changed how we were memoizing things for ruby 3.4 --- Gemfile.lock | 2 ++ kickplan.gemspec | 1 + lib/kickplan/concurrency.rb | 8 +++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 27eb6cc..25a54b2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,6 +2,7 @@ PATH remote: . specs: kickplan-sdk (0.1.0) + bigdecimal concurrent-ruby (>= 1.0) dry-configurable (>= 1.0) dry-struct (>= 1.0) @@ -14,6 +15,7 @@ GEM addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) base64 (0.3.0) + bigdecimal (3.1.8) coderay (1.1.3) concurrent-ruby (1.0.3) crack (0.4.5) diff --git a/kickplan.gemspec b/kickplan.gemspec index 2a0f1ea..8c993d1 100644 --- a/kickplan.gemspec +++ b/kickplan.gemspec @@ -25,6 +25,7 @@ Gem::Specification.new do |spec| spec.add_runtime_dependency "dry-struct", ">= 1.0" spec.add_runtime_dependency "dry-types", ">= 1.7" spec.add_runtime_dependency "faraday", ">= 1.0" + spec.add_runtime_dependency "bigdecimal" # Required for Ruby 3.4+ spec.add_development_dependency "base64" # Required for Ruby 3.4+ spec.add_development_dependency "bundler", "~> 2.0" diff --git a/lib/kickplan/concurrency.rb b/lib/kickplan/concurrency.rb index 78cc6fb..22b8289 100644 --- a/lib/kickplan/concurrency.rb +++ b/lib/kickplan/concurrency.rb @@ -33,7 +33,13 @@ def unset(name) private def memoization_variable(name) - ["@", name.to_s].join + # Extract just the method name from patterns like "Kickplan::Client#adapter" + method_name = name.to_s.split('#').last || name.to_s + # Replace any non-alphanumeric characters with underscores + sanitized = method_name.gsub(/[^a-zA-Z0-9_]/, '_') + # Ensure it starts with a letter or underscore + sanitized = "_#{sanitized}" unless sanitized.match?(/\A[a-zA-Z_]/) + ["@", sanitized].join end module Initializer