advent_of_ruby 0.3.1 → 0.3.3

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 (254) hide show
  1. checksums.yaml +4 -4
  2. data/bin/arb +1 -1
  3. data/data/solutions/reddit/ruby/2015/02.yml +5 -5
  4. data/data/solutions/reddit/ruby/2015/03.yml +6 -6
  5. data/data/solutions/reddit/ruby/2015/04.yml +7 -7
  6. data/data/solutions/reddit/ruby/2015/05.yml +6 -6
  7. data/data/solutions/reddit/ruby/2015/06.yml +14 -14
  8. data/data/solutions/reddit/ruby/2015/07.yml +14 -18
  9. data/data/solutions/reddit/ruby/2015/08.yml +6 -6
  10. data/data/solutions/reddit/ruby/2015/09.yml +11 -11
  11. data/data/solutions/reddit/ruby/2015/10.yml +18 -18
  12. data/data/solutions/reddit/ruby/2015/11.yml +19 -19
  13. data/data/solutions/reddit/ruby/2015/12.yml +10 -10
  14. data/data/solutions/reddit/ruby/2015/13.yml +9 -9
  15. data/data/solutions/reddit/ruby/2015/14.yml +11 -11
  16. data/data/solutions/reddit/ruby/2015/15.yml +9 -9
  17. data/data/solutions/reddit/ruby/2015/16.yml +7 -7
  18. data/data/solutions/reddit/ruby/2015/17.yml +10 -10
  19. data/data/solutions/reddit/ruby/2015/18.yml +4 -4
  20. data/data/solutions/reddit/ruby/2015/19.yml +1 -1
  21. data/data/solutions/reddit/ruby/2015/20.yml +2 -2
  22. data/data/solutions/reddit/ruby/2015/21.yml +4 -4
  23. data/data/solutions/reddit/ruby/2015/22.yml +5 -5
  24. data/data/solutions/reddit/ruby/2015/23.yml +3 -3
  25. data/data/solutions/reddit/ruby/2015/24.yml +11 -11
  26. data/data/solutions/reddit/ruby/2015/25.yml +5 -5
  27. data/data/solutions/reddit/ruby/2016/01.yml +5 -5
  28. data/data/solutions/reddit/ruby/2016/02.yml +3 -3
  29. data/data/solutions/reddit/ruby/2016/03.yml +1 -1
  30. data/data/solutions/reddit/ruby/2016/04.yml +4 -4
  31. data/data/solutions/reddit/ruby/2016/05.yml +3 -3
  32. data/data/solutions/reddit/ruby/2016/06.yml +4 -4
  33. data/data/solutions/reddit/ruby/2016/07.yml +3 -3
  34. data/data/solutions/reddit/ruby/2016/08.yml +6 -6
  35. data/data/solutions/reddit/ruby/2016/09.yml +1 -1
  36. data/data/solutions/reddit/ruby/2016/10.yml +3 -3
  37. data/data/solutions/reddit/ruby/2016/11.yml +1 -1
  38. data/data/solutions/reddit/ruby/2016/12.yml +3 -3
  39. data/data/solutions/reddit/ruby/2016/14.yml +4 -4
  40. data/data/solutions/reddit/ruby/2016/15.yml +11 -11
  41. data/data/solutions/reddit/ruby/2016/16.yml +1 -1
  42. data/data/solutions/reddit/ruby/2016/17.yml +3 -3
  43. data/data/solutions/reddit/ruby/2016/18.yml +3 -3
  44. data/data/solutions/reddit/ruby/2016/20.yml +2 -2
  45. data/data/solutions/reddit/ruby/2016/21.yml +7 -7
  46. data/data/solutions/reddit/ruby/2016/22.yml +10 -10
  47. data/data/solutions/reddit/ruby/2017/01.yml +7 -11
  48. data/data/solutions/reddit/ruby/2017/02.yml +15 -15
  49. data/data/solutions/reddit/ruby/2017/03.yml +9 -9
  50. data/data/solutions/reddit/ruby/2017/04.yml +4 -4
  51. data/data/solutions/reddit/ruby/2017/05.yml +12 -12
  52. data/data/solutions/reddit/ruby/2017/06.yml +16 -16
  53. data/data/solutions/reddit/ruby/2017/07.yml +5 -5
  54. data/data/solutions/reddit/ruby/2017/08.yml +18 -18
  55. data/data/solutions/reddit/ruby/2017/09.yml +7 -7
  56. data/data/solutions/reddit/ruby/2017/10.yml +9 -9
  57. data/data/solutions/reddit/ruby/2017/11.yml +1 -1
  58. data/data/solutions/reddit/ruby/2017/12.yml +6 -6
  59. data/data/solutions/reddit/ruby/2017/13.yml +6 -6
  60. data/data/solutions/reddit/ruby/2017/14.yml +1 -1
  61. data/data/solutions/reddit/ruby/2017/15.yml +3 -3
  62. data/data/solutions/reddit/ruby/2017/16.yml +5 -5
  63. data/data/solutions/reddit/ruby/2017/17.yml +6 -6
  64. data/data/solutions/reddit/ruby/2017/18.yml +7 -7
  65. data/data/solutions/reddit/ruby/2017/19.yml +2 -2
  66. data/data/solutions/reddit/ruby/2017/20.yml +5 -5
  67. data/data/solutions/reddit/ruby/2017/21.yml +11 -11
  68. data/data/solutions/reddit/ruby/2017/22.yml +1 -1
  69. data/data/solutions/reddit/ruby/2017/23.yml +1 -1
  70. data/data/solutions/reddit/ruby/2017/25.yml +3 -3
  71. data/data/solutions/reddit/ruby/2018/01.yml +20 -20
  72. data/data/solutions/reddit/ruby/2018/02.yml +16 -16
  73. data/data/solutions/reddit/ruby/2018/03.yml +12 -12
  74. data/data/solutions/reddit/ruby/2018/04.yml +6 -6
  75. data/data/solutions/reddit/ruby/2018/05.yml +15 -15
  76. data/data/solutions/reddit/ruby/2018/06.yml +4 -4
  77. data/data/solutions/reddit/ruby/2018/07.yml +11 -11
  78. data/data/solutions/reddit/ruby/2018/08.yml +9 -9
  79. data/data/solutions/reddit/ruby/2018/09.yml +13 -13
  80. data/data/solutions/reddit/ruby/2018/10.yml +10 -10
  81. data/data/solutions/reddit/ruby/2018/11.yml +9 -9
  82. data/data/solutions/reddit/ruby/2018/12.yml +2 -2
  83. data/data/solutions/reddit/ruby/2018/13.yml +14 -14
  84. data/data/solutions/reddit/ruby/2018/14.yml +5 -5
  85. data/data/solutions/reddit/ruby/2018/15.yml +2 -2
  86. data/data/solutions/reddit/ruby/2018/16.yml +7 -7
  87. data/data/solutions/reddit/ruby/2018/17.yml +1 -1
  88. data/data/solutions/reddit/ruby/2018/18.yml +6 -6
  89. data/data/solutions/reddit/ruby/2018/19.yml +1 -1
  90. data/data/solutions/reddit/ruby/2018/20.yml +1 -1
  91. data/data/solutions/reddit/ruby/2018/21.yml +4 -4
  92. data/data/solutions/reddit/ruby/2018/22.yml +3 -3
  93. data/data/solutions/reddit/ruby/2018/23.yml +11 -11
  94. data/data/solutions/reddit/ruby/2018/24.yml +4 -4
  95. data/data/solutions/reddit/ruby/2018/25.yml +6 -6
  96. data/data/solutions/reddit/ruby/2019/01.yml +11 -11
  97. data/data/solutions/reddit/ruby/2019/02.yml +13 -13
  98. data/data/solutions/reddit/ruby/2019/03.yml +7 -7
  99. data/data/solutions/reddit/ruby/2019/04.yml +11 -11
  100. data/data/solutions/reddit/ruby/2019/05.yml +10 -10
  101. data/data/solutions/reddit/ruby/2019/06.yml +7 -7
  102. data/data/solutions/reddit/ruby/2019/07.yml +8 -8
  103. data/data/solutions/reddit/ruby/2019/08.yml +8 -8
  104. data/data/solutions/reddit/ruby/2019/09.yml +4 -4
  105. data/data/solutions/reddit/ruby/2019/10.yml +4 -4
  106. data/data/solutions/reddit/ruby/2019/11.yml +7 -7
  107. data/data/solutions/reddit/ruby/2019/12.yml +17 -17
  108. data/data/solutions/reddit/ruby/2019/13.yml +6 -6
  109. data/data/solutions/reddit/ruby/2019/14.yml +2 -2
  110. data/data/solutions/reddit/ruby/2019/15.yml +3 -3
  111. data/data/solutions/reddit/ruby/2019/16.yml +6 -6
  112. data/data/solutions/reddit/ruby/2019/17.yml +3 -3
  113. data/data/solutions/reddit/ruby/2019/18.yml +1 -1
  114. data/data/solutions/reddit/ruby/2019/20.yml +9 -9
  115. data/data/solutions/reddit/ruby/2019/21.yml +3 -3
  116. data/data/solutions/reddit/ruby/2019/22.yml +3 -3
  117. data/data/solutions/reddit/ruby/2019/23.yml +1 -1
  118. data/data/solutions/reddit/ruby/2019/25.yml +2 -2
  119. data/data/solutions/reddit/ruby/2020/01.yml +30 -30
  120. data/data/solutions/reddit/ruby/2020/02.yml +25 -25
  121. data/data/solutions/reddit/ruby/2020/03.yml +17 -17
  122. data/data/solutions/reddit/ruby/2020/04.yml +26 -26
  123. data/data/solutions/reddit/ruby/2020/05.yml +35 -35
  124. data/data/solutions/reddit/ruby/2020/06.yml +40 -40
  125. data/data/solutions/reddit/ruby/2020/07.yml +16 -16
  126. data/data/solutions/reddit/ruby/2020/08.yml +13 -13
  127. data/data/solutions/reddit/ruby/2020/09.yml +21 -21
  128. data/data/solutions/reddit/ruby/2020/10.yml +29 -29
  129. data/data/solutions/reddit/ruby/2020/11.yml +8 -8
  130. data/data/solutions/reddit/ruby/2020/12.yml +22 -22
  131. data/data/solutions/reddit/ruby/2020/13.yml +15 -15
  132. data/data/solutions/reddit/ruby/2020/14.yml +11 -11
  133. data/data/solutions/reddit/ruby/2020/15.yml +9 -9
  134. data/data/solutions/reddit/ruby/2020/16.yml +13 -13
  135. data/data/solutions/reddit/ruby/2020/17.yml +11 -11
  136. data/data/solutions/reddit/ruby/2020/18.yml +19 -19
  137. data/data/solutions/reddit/ruby/2020/19.yml +18 -18
  138. data/data/solutions/reddit/ruby/2020/20.yml +4 -4
  139. data/data/solutions/reddit/ruby/2020/21.yml +4 -4
  140. data/data/solutions/reddit/ruby/2020/22.yml +8 -8
  141. data/data/solutions/reddit/ruby/2020/23.yml +4 -4
  142. data/data/solutions/reddit/ruby/2020/24.yml +6 -6
  143. data/data/solutions/reddit/ruby/2020/25.yml +6 -6
  144. data/data/solutions/reddit/ruby/2021/01.yml +74 -74
  145. data/data/solutions/reddit/ruby/2021/02.yml +45 -45
  146. data/data/solutions/reddit/ruby/2021/03.yml +43 -43
  147. data/data/solutions/reddit/ruby/2021/04.yml +23 -23
  148. data/data/solutions/reddit/ruby/2021/05.yml +16 -16
  149. data/data/solutions/reddit/ruby/2021/06.yml +35 -35
  150. data/data/solutions/reddit/ruby/2021/07.yml +26 -26
  151. data/data/solutions/reddit/ruby/2021/08.yml +15 -15
  152. data/data/solutions/reddit/ruby/2021/09.yml +11 -11
  153. data/data/solutions/reddit/ruby/2021/10.yml +9 -9
  154. data/data/solutions/reddit/ruby/2021/11.yml +12 -12
  155. data/data/solutions/reddit/ruby/2021/12.yml +8 -8
  156. data/data/solutions/reddit/ruby/2021/13.yml +13 -13
  157. data/data/solutions/reddit/ruby/2021/14.yml +10 -10
  158. data/data/solutions/reddit/ruby/2021/15.yml +10 -10
  159. data/data/solutions/reddit/ruby/2021/16.yml +8 -8
  160. data/data/solutions/reddit/ruby/2021/17.yml +6 -6
  161. data/data/solutions/reddit/ruby/2021/18.yml +5 -5
  162. data/data/solutions/reddit/ruby/2021/19.yml +3 -3
  163. data/data/solutions/reddit/ruby/2021/20.yml +5 -5
  164. data/data/solutions/reddit/ruby/2021/21.yml +5 -5
  165. data/data/solutions/reddit/ruby/2021/22.yml +4 -4
  166. data/data/solutions/reddit/ruby/2021/23.yml +7 -7
  167. data/data/solutions/reddit/ruby/2021/24.yml +8 -8
  168. data/data/solutions/reddit/ruby/2021/25.yml +4 -4
  169. data/data/solutions/reddit/ruby/2022/01.yml +29 -29
  170. data/data/solutions/reddit/ruby/2022/02.yml +21 -21
  171. data/data/solutions/reddit/ruby/2022/03.yml +35 -35
  172. data/data/solutions/reddit/ruby/2022/04.yml +42 -42
  173. data/data/solutions/reddit/ruby/2022/05.yml +29 -29
  174. data/data/solutions/reddit/ruby/2022/06.yml +38 -38
  175. data/data/solutions/reddit/ruby/2022/07.yml +25 -25
  176. data/data/solutions/reddit/ruby/2022/08.yml +9 -9
  177. data/data/solutions/reddit/ruby/2022/09.yml +18 -18
  178. data/data/solutions/reddit/ruby/2022/10.yml +14 -14
  179. data/data/solutions/reddit/ruby/2022/11.yml +7 -7
  180. data/data/solutions/reddit/ruby/2022/12.yml +2 -2
  181. data/data/solutions/reddit/ruby/2022/13.yml +9 -9
  182. data/data/solutions/reddit/ruby/2022/14.yml +5 -5
  183. data/data/solutions/reddit/ruby/2022/15.yml +6 -6
  184. data/data/solutions/reddit/ruby/2022/16.yml +5 -5
  185. data/data/solutions/reddit/ruby/2022/17.yml +2 -2
  186. data/data/solutions/reddit/ruby/2022/18.yml +6 -6
  187. data/data/solutions/reddit/ruby/2022/19.yml +3 -3
  188. data/data/solutions/reddit/ruby/2022/20.yml +12 -12
  189. data/data/solutions/reddit/ruby/2022/21.yml +11 -11
  190. data/data/solutions/reddit/ruby/2022/22.yml +4 -4
  191. data/data/solutions/reddit/ruby/2022/24.yml +10 -10
  192. data/data/solutions/reddit/ruby/2022/25.yml +10 -10
  193. data/data/solutions/reddit/ruby/2023/01.yml +52 -52
  194. data/data/solutions/reddit/ruby/2023/02.yml +21 -21
  195. data/data/solutions/reddit/ruby/2023/03.yml +18 -18
  196. data/data/solutions/reddit/ruby/2023/04.yml +31 -31
  197. data/data/solutions/reddit/ruby/2023/05.yml +14 -14
  198. data/data/solutions/reddit/ruby/2023/06.yml +24 -24
  199. data/data/solutions/reddit/ruby/2023/07.yml +32 -32
  200. data/data/solutions/reddit/ruby/2023/08.yml +20 -20
  201. data/data/solutions/reddit/ruby/2023/09.yml +32 -32
  202. data/data/solutions/reddit/ruby/2023/10.yml +18 -18
  203. data/data/solutions/reddit/ruby/2023/11.yml +16 -16
  204. data/data/solutions/reddit/ruby/2023/12.yml +5 -5
  205. data/data/solutions/reddit/ruby/2023/13.yml +6 -6
  206. data/data/solutions/reddit/ruby/2023/14.yml +14 -14
  207. data/data/solutions/reddit/ruby/2023/15.yml +13 -13
  208. data/data/solutions/reddit/ruby/2023/16.yml +8 -8
  209. data/data/solutions/reddit/ruby/2023/18.yml +5 -5
  210. data/data/solutions/reddit/ruby/2023/19.yml +6 -6
  211. data/data/solutions/reddit/ruby/2023/20.yml +9 -9
  212. data/data/solutions/reddit/ruby/2023/21.yml +5 -5
  213. data/data/solutions/reddit/ruby/2023/22.yml +2 -2
  214. data/data/solutions/reddit/ruby/2023/23.yml +1 -1
  215. data/data/solutions/reddit/ruby/2023/25.yml +1 -1
  216. data/data/solutions/reddit/ruby/2024/01.yml +15 -15
  217. data/data/solutions/reddit/ruby/2024/02.yml +17 -17
  218. data/data/solutions/reddit/ruby/2024/03.yml +43 -43
  219. data/data/solutions/reddit/ruby/2024/04.yml +18 -18
  220. data/data/solutions/reddit/ruby/2024/05.yml +29 -29
  221. data/data/solutions/reddit/ruby/2024/06.yml +19 -19
  222. data/data/solutions/reddit/ruby/2024/07.yml +26 -26
  223. data/data/solutions/reddit/ruby/2024/08.yml +15 -15
  224. data/data/solutions/reddit/ruby/2024/09.yml +5 -5
  225. data/data/solutions/reddit/ruby/2024/10.yml +9 -9
  226. data/data/solutions/reddit/ruby/2024/11.yml +15 -15
  227. data/data/solutions/reddit/ruby/2024/12.yml +9 -9
  228. data/data/solutions/reddit/ruby/2024/13.yml +10 -10
  229. data/data/solutions/reddit/ruby/2024/14.yml +6 -6
  230. data/data/solutions/reddit/ruby/2024/15.yml +5 -5
  231. data/data/solutions/reddit/ruby/2024/16.yml +4 -4
  232. data/data/solutions/reddit/ruby/2024/17.yml +11 -11
  233. data/data/solutions/reddit/ruby/2024/18.yml +9 -9
  234. data/data/solutions/reddit/ruby/2024/19.yml +16 -16
  235. data/data/solutions/reddit/ruby/2024/20.yml +8 -8
  236. data/data/solutions/reddit/ruby/2024/21.yml +3 -3
  237. data/data/solutions/reddit/ruby/2024/22.yml +8 -8
  238. data/data/solutions/reddit/ruby/2024/23.yml +13 -13
  239. data/data/solutions/reddit/ruby/2024/24.yml +7 -7
  240. data/data/solutions/reddit/ruby/2024/25.yml +14 -14
  241. data/lib/arb/api/aoc.rb +2 -2
  242. data/lib/arb/api/other_solutions.rb +4 -4
  243. data/lib/arb/cli/run.rb +2 -3
  244. data/lib/arb/cli/shared/working_directory.rb +6 -6
  245. data/lib/arb/cli/shared/year_day_validator.rb +1 -1
  246. data/lib/arb/files/solution.rb +4 -2
  247. data/lib/arb/files/spec.rb +8 -6
  248. data/lib/arb/formatter.rb +22 -0
  249. data/lib/arb/version.rb +1 -1
  250. data/lib/download_solutions/api/github/repos.rb +0 -33
  251. data/lib/download_solutions/api/reddit/get_serial_comments.rb +1 -1
  252. data/lib/download_solutions/api/reddit/reject_unwanted_replies.rb +2 -2
  253. data/lib/download_solutions/cli/github.rb +1 -1
  254. metadata +5 -4
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  - :author: FCBStar-of-the-South
3
- :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m4achod/
3
+ :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m4achod
4
4
  :body: |-
5
5
  Finally had time to sit down and go through part 2. Notation explained at the end. My process:
6
6
 
@@ -29,7 +29,7 @@
29
29
  C_i = c_i OR s\_i (output carry).
30
30
  :replies: []
31
31
  - :author: JAntaresN
32
- :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3nq8qw/
32
+ :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3nq8qw
33
33
  :body: |-
34
34
  [git link](https://github.com/jw-rx-93/advent-of-code-2024/blob/main/day24/day24.rb)
35
35
 
@@ -42,7 +42,7 @@
42
42
  There are two edge cases which is x00, y00, and x45, and y45. They have a bit of a unique behavior but I don't think those are twisted up in anyone's puzzle data.
43
43
  :replies: []
44
44
  - :author: RazarTuk
45
- :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3n1lex/
45
+ :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3n1lex
46
46
  :body: |-
47
47
  [paste](https://topaz.github.io/paste/#XQAAAQAEAwAAAAAAAAAzGknWt5Bv2rAv+DcT5iE66ZPnRosfrwe0LaRaq6pZwCaP76Bpsar4qeuAw4e9Ixi5xNP/ZyUwagqs339V43rea6G7KVaUGQ7i8MQ6AnOIsjiqzY3D0Bom2hL0ycs4QauTiRfwUF3cuF2LEi8T3+Up6fQ+pR4ym4DHsqqfkyprgCGYT/3q4qsl2meOgwW2hGZyFiF1n5ZhGwu4lIHhI/xmkfuwuvjyFLZl8NfaPH2yC5ZI/re/m1eXbbhGpfuFdhFevPbjvTMg3s4pKIebuGoYtIT5Rj/5LE6vJ/Sux+7X3ihc7dPU9lae5CdmNNf7wYElfrc3DoLfWIELZ/lIPazd2rTMEia3+x9De9/mzj5wy1iIs81aqbbUBV5IO//y2J09aFGonakAjsU0TugvmtKS9covY8aQEHkTdQgmDBUF3+kUGac9desS8/BHFXqwTGh73YOitIRNYjSyV9wgHxXnoy2zizW9sSfES41vNVx5Q0GsEmLkw0Pe1IU8qAXh/+af7uQ=)
48
48
 
@@ -63,7 +63,7 @@
63
63
  So it's definitely some _dense_ code, but I also think it shows off a lot of the syntactic sugar in Ruby.
64
64
  :replies: []
65
65
  - :author: yourparadigm
66
- :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3l88sf/
66
+ :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3l88sf
67
67
  :body: |-
68
68
  1396/1765
69
69
 
@@ -82,11 +82,11 @@
82
82
  [code](https://github.com/phene/advent-of-code/blob/main/2024/24/24.rb) and [broken graph](https://raw.githubusercontent.com/phene/advent-of-code/refs/heads/main/2024/24/graph-orig.svg) and [fixed graph](https://raw.githubusercontent.com/phene/advent-of-code/refs/heads/main/2024/24/graph-fixed.svg)
83
83
  :replies:
84
84
  - :author: RonGnumber
85
- :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3m1k8v/
85
+ :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3m1k8v
86
86
  :body: I had a similar idea and similar graph (less fancy). Every year there are are a couple of problems where Graphviz is a life-saver, it's really worth taking the time to learn its basic options and get comfortable generating pictures which tell so much more than numbers! (I've done it yesterday too, and 2023 day 25.)
87
87
  :replies: []
88
88
  - :author: birblett
89
- :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3kqkl2/
89
+ :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3kqkl2
90
90
  :body: |-
91
91
  this solution is _maybe_ functional for any variation of this specific day's input, i have only tested it on two different inputs so far so i can't say for sure that i haven't missed edge cases. i originally solved it by hand and then reverse engineered it to arrive here.
92
92
 
@@ -135,7 +135,7 @@
135
135
  ```
136
136
  :replies: []
137
137
  - :author: careyi4
138
- :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3l1mih/
138
+ :url: https://www.reddit.com/r/adventofcode/comments/1hl698z/2024_day_24_solutions/m3l1mih
139
139
  :body: |-
140
140
  Very messy, but by knowing the correct structure of a ripple adder, I was able to find paris of adjacent bits that were incorrect. I then used trial and error updating my input each time until there were no more errors. I couldn't think of a clever way to automate what I was trying to do, but because I knew there were a limited number of ways it could go together. Manual checking was not very hard.
141
141
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  - :author: FCBStar-of-the-South
3
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3t5vpl/
3
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3t5vpl
4
4
  :body: |-
5
5
  ```ruby
6
6
  # frozen_string_literal: true
@@ -41,7 +41,7 @@
41
41
  [Full repo](https://github.com/Casper-Guo/AoC-Language-Exploration)
42
42
  :replies:
43
43
  - :author: dhruvasagar
44
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3ti2an/
44
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3ti2an
45
45
  :body: |-
46
46
  Here's my ruby solution :
47
47
 
@@ -74,7 +74,7 @@
74
74
  ```
75
75
  :replies: []
76
76
  - :author: el_daniero
77
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qm9ez/
77
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qm9ez
78
78
  :body: |-
79
79
  I couldn't really be bothered counting the rows and all of that, so I just lay the keys and locks on top of each other and check at for each position there is at least one `'.'`
80
80
 
@@ -93,7 +93,7 @@
93
93
  ```
94
94
  :replies: []
95
95
  - :author: _tfa
96
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qi0nw/
96
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qi0nw
97
97
  :body: |-
98
98
  ```ruby
99
99
  input = File.read("input.txt").split("\n\n")
@@ -108,25 +108,25 @@
108
108
  ```
109
109
  :replies:
110
110
  - :author: IvanOG_Ranger
111
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qkn3f/
111
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qkn3f
112
112
  :body: Regex is more readable than this, that's crazy
113
113
  :replies: []
114
114
  - :author: JAntaresN
115
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qe6ck/
115
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3qe6ck
116
116
  :body: |-
117
117
  [git link](https://github.com/jw-rx-93/advent-of-code-2024/blob/main/day25/day25.rb)
118
118
 
119
119
  basic for loop, with a set to eliminate duplicates. Had a bit of issue of making wrong assumptions during the parsing phase, that is invalidating all rows with "#" that are filled up. Anyway simple fix, just include those and raise the limit by 2.
120
120
  :replies: []
121
121
  - :author: bigfunlx
122
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3plinf/
122
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3plinf
123
123
  :body: |-
124
124
  I coded it on my iPhone while waiting in the emergency room with symptoms of meningitis, for better or worse this will be my most memorable moment of AoC!
125
125
 
126
126
  [Rubist](https://imagebin.co/images/IMG_4243.png) screenshot
127
127
  :replies: []
128
128
  - :author: Nnnes
129
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pf0js/
129
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pf0js
130
130
  :body: |-
131
131
  Today I will post 2 full solutions in one comment because together they still fit in half a punchcard.
132
132
 
@@ -147,15 +147,15 @@
147
147
  - You may replace `.map{ |x| x.map{ |x| x.map{ _1.` with `.map{ |x| x.map{ |x| x.map{ |x| x.` if you like fractals.
148
148
  :replies:
149
149
  - :author: 4HbQ
150
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pgl7v/
150
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pgl7v
151
151
  :body: 'Solution #1 is so clever but sooo dirty. I love it!'
152
152
  :replies:
153
153
  - :author: Nnnes
154
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pjpar/
154
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pjpar
155
155
  :body: Thanks! In previous years I've abused various combinations of Regexps and `.tr` but it didn't cross my mind this year until today
156
156
  :replies: []
157
157
  - :author: birblett
158
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pbi5s/
158
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3pbi5s
159
159
  :body: |-
160
160
  1023/890
161
161
 
@@ -171,20 +171,20 @@
171
171
  moderately cursed bitwise math solution...
172
172
  :replies: []
173
173
  - :author: botimoo
174
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3paoro/
174
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3paoro
175
175
  :body: |-
176
176
  [Paste](https://pastebin.com/YWnevdb0)
177
177
 
178
178
  Repeating the output for part 2 here as well: `Merry Christmas! Congrats on 10 years, Eric!`
179
179
  :replies: []
180
180
  - :author: mpyne
181
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3p6e9k/
181
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3p6e9k
182
182
  :body: |-
183
183
  [Solution](https://topaz.github.io/paste/#XQAAAQBlBQAAAAAAAAARiEJHiiMzw3cPM/1Vl+2nyBa63n8Kw3D1UZFlDHZo7bAS6PU4u3JQTaPBfElS53PuuvCNKd61mUYVeaYDdAeSC2XFVeCm8Q3FHzXZwO042pLKQpW8DpUxlQZ7m2m2ucv3ZRIB5M1n/6IP9NHaGdvFYRINgn6fTKCyfLi11w2NyW7MyWtYYcFGKPVF5qgC/CR8TFMpHMaQzfZNFBWiu4p66zeIdHVzTuvJuTkwMOVJYe6sv7FgXgvhPE6YRBKHPDxxvRxHDD8nN2lKoCzoOJA2D8A2vuo5iJ3PeE980/uGwMHe+rEanQj52YTy/Ohi8w3Gz2Se2buUnbcmaZosn+tUh37yaAtAllh79qmEGzhgoKbInKWNHuE9/DzZChFLfXW0NJ2o59kDDqHVJrCpt3y7TY5seNgkRzTxooawWc26EmweWuNRbTfKqRKZTlwCf4rM49BXzR/DfDNiLUwXWZkt1skddu6R4tw7JtXUZZTd0lDkuNhPto1O99aF4fZ+KKQt0z2d02slJOURQDNRrLAPc030efst5wOzseIHbeu+FAkHDizdXuneW2B2QDEy8tNjVdJcyv5ZjQ7MiBw/zjLpLScMH6SLOdZDpqsnRI1xoe94SzffCv73eoD/).
184
184
 
185
185
  Will probably redo it in Rust later after some sleep but not too bad for not being a competitive programmer.
186
186
  :replies: []
187
187
  - :author: Stronbold
188
- :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3p79dr/
188
+ :url: https://www.reddit.com/r/adventofcode/comments/1hlu4ht/2024_day_25_solutions/m3p79dr
189
189
  :body: "[Solution](https://github.com/Alvaro-Kothe/Advent-of-Code/blob/main/2024/day25.rb)"
190
190
  :replies: []
data/lib/arb/api/aoc.rb CHANGED
@@ -36,10 +36,10 @@ module Arb
36
36
 
37
37
  private
38
38
 
39
- LOGGED_OUT_RESPONSE = "Puzzle inputs differ by user. Please log in to get your puzzle input.\n"
39
+ LOGGED_OUT_RESPONSE = "Please log in"
40
40
 
41
41
  def logged_in(&block)
42
- while (response = block.call.body) == LOGGED_OUT_RESPONSE
42
+ while (response = block.call.body).include? LOGGED_OUT_RESPONSE
43
43
  Cli::WorkingDirectory.refresh_aoc_cookie!
44
44
  initialize(cookie: ENV["AOC_COOKIE"])
45
45
  end
@@ -47,14 +47,14 @@ module Arb
47
47
  "# #{(solutions.count > 1) ? "Solutions" : "Solution"} by #{author}\n" +
48
48
  solutions
49
49
  .map { |solution|
50
- <<~SOLUTION
50
+ <<~END
51
51
  #{"## #{solution[:name]}\n" if solutions.count > 1}#{solution[:url]}
52
52
 
53
53
  ```ruby
54
54
  #{solution[:solution]}
55
55
  ```
56
56
 
57
- SOLUTION
57
+ END
58
58
  }
59
59
  .join
60
60
  }
@@ -79,14 +79,14 @@ module Arb
79
79
  reddit_comment_to_markdown(reply, level: level + 1)
80
80
  }.join("\n\n")
81
81
 
82
- <<~COMMENT.gsub(/(?:\n\s*){3,}/, "\n\n")
82
+ <<~END.gsub(/(?:\n\s*){3,}/, "\n\n")
83
83
  #{"#" * (level + 1)} #{"↳" * level}#{level.zero? ? "Solution by" : "Reply by"} #{comment[:author]}
84
84
  #{comment[:url]}
85
85
 
86
86
  #{comment[:body]}
87
87
 
88
88
  #{replies unless replies.empty?}
89
- COMMENT
89
+ END
90
90
  end
91
91
  end
92
92
  end
data/lib/arb/cli/run.rb CHANGED
@@ -100,7 +100,6 @@ module Arb
100
100
  .sub(/ \[\[.+/, "")
101
101
 
102
102
  if short_message.start_with?("That's the right answer!")
103
- puts
104
103
  puts "⭐ #{short_message}"
105
104
 
106
105
  # TODO don't re-download if the instructions file already contains the next part
@@ -132,7 +131,7 @@ module Arb
132
131
  end
133
132
 
134
133
  private_class_method def self.run_specs_only(year:, day:)
135
- spec_filename = File.join("spec", year, "#{day}_spec.rb")
134
+ spec_filename = File.join("spec", year, "#{day}_spec.rb")
136
135
 
137
136
  # Running RSpec from within RSpec causes problems, so in the test environment
138
137
  # run RSpec in a subprocess.
@@ -144,7 +143,7 @@ module Arb
144
143
  end
145
144
 
146
145
  private_class_method def self.run_specs_before_real(year:, day:)
147
- spec_filename = File.join("spec", year, "#{day}_spec.rb")
146
+ spec_filename = File.join("spec", year, "#{day}_spec.rb")
148
147
 
149
148
  # Running RSpec from within RSpec causes problems, so in the test environment
150
149
  # run RSpec in a subprocess.
@@ -2,18 +2,18 @@ module Arb
2
2
  module Cli
3
3
  class WorkingDirectory
4
4
  FILES = {
5
- ".gitignore" => <<~FILE,
5
+ ".gitignore" => <<~END,
6
6
  input/**/*
7
7
  instructions/**/*
8
8
  others/**/*
9
9
  .env
10
- FILE
10
+ END
11
11
  ".ruby-version" => "3.3.0\n",
12
- "Gemfile" => <<~FILE,
12
+ "Gemfile" => <<~END,
13
13
  source "https://rubygems.org"
14
14
  ruby file: ".ruby-version"
15
- FILE
16
- File.join("spec", "spec_helper.rb") => <<~FILE
15
+ END
16
+ File.join("spec", "spec_helper.rb") => <<~END
17
17
  require "debug"
18
18
 
19
19
  Dir[File.join(__dir__, "..", "src", "**", "*.rb")].each do |file|
@@ -21,7 +21,7 @@ module Arb
21
21
  end
22
22
 
23
23
 
24
- FILE
24
+ END
25
25
  }
26
26
 
27
27
  ENV_KEYS = ["EDITOR_COMMAND", "AOC_COOKIE"]
@@ -71,7 +71,7 @@ module Arb
71
71
  end
72
72
 
73
73
  year = Integer(year, exception: false) || (raise InputError, "Year must be a number.")
74
- day = Integer(day, exception: false) || (raise InputError, "Day must be a number.")
74
+ day = Integer(day.delete_prefix("0"), exception: false) || (raise InputError, "Day must be a number.")
75
75
 
76
76
  unless year.between?(2015, Date.today.year)
77
77
  raise InputError, "Year must be between 2015 and this year."
@@ -13,11 +13,13 @@ module Arb
13
13
  File.write(file_path, template(year:, day:))
14
14
  end
15
15
 
16
+ Formatter.format(file_path)
17
+
16
18
  file_path
17
19
  end
18
20
 
19
21
  def self.template(year:, day:)
20
- <<~SRC
22
+ <<~END
21
23
  # https://adventofcode.com/#{year}/day/#{day.delete_prefix("0")}
22
24
  module Year#{year}
23
25
  class Day#{day}
@@ -34,7 +36,7 @@ module Arb
34
36
  end
35
37
  end
36
38
  end
37
- SRC
39
+ END
38
40
  end
39
41
  end
40
42
  end
@@ -13,19 +13,21 @@ module Arb
13
13
  File.write(file_path, template(year:, day:))
14
14
  end
15
15
 
16
+ Formatter.format(file_path)
17
+
16
18
  file_path
17
19
  end
18
20
 
19
21
  def self.template(year:, day:)
20
- <<~SPECS
22
+ <<~END_OUTER
21
23
  RSpec.describe Year#{year}::Day#{day} do
22
- let(:input) {
24
+ let(:input) do
23
25
  StringIO.new(
24
- <<~IN
26
+ <<~END
25
27
  something
26
- IN
28
+ END
27
29
  )
28
- }
30
+ end
29
31
 
30
32
  it "solves Part One" do
31
33
  expect(subject.part_1(input)).to eq(:todo)
@@ -35,7 +37,7 @@ module Arb
35
37
  expect(subject.part_2(input)).to eq(:todo)
36
38
  end
37
39
  end
38
- SPECS
40
+ END_OUTER
39
41
  end
40
42
  end
41
43
  end
@@ -0,0 +1,22 @@
1
+ begin
2
+ gem "rubocop"
3
+ require "rubocop"
4
+ rescue LoadError
5
+ # If RuboCop isn't available, no formatting will be done
6
+ end
7
+
8
+ module Formatter
9
+ class << self
10
+ def format(file_path)
11
+ return unless rubocop_loaded?
12
+
13
+ RuboCop::CLI.new.run(["-A", file_path, "--out", File::NULL])
14
+ end
15
+
16
+ private
17
+
18
+ def rubocop_loaded?
19
+ defined?(RuboCop)
20
+ end
21
+ end
22
+ end
data/lib/arb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Arb
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -49,39 +49,6 @@ module DownloadSolutions
49
49
  }
50
50
  }
51
51
  }
52
-
53
- # def other_solutions(year:, day:, part:)
54
- # "# #{year} Day #{day} Part #{part}\n\n" +
55
- # PATHS
56
- # .map { |username, path_builder|
57
- # actual_path = nil
58
- # solution = nil
59
- # paths = path_builder.call(year:, day:, part:)
60
-
61
- # paths.each do |path|
62
- # next if solution
63
- # response = connection.get("/#{username}/#{path.sub("/tree/", "/")}")
64
- # next if response.status == 404
65
-
66
- # actual_path = path
67
- # solution = (EDITS[username] || :itself.to_proc).call(response.body)
68
- # end
69
-
70
- # if solution
71
- # <<~SOLUTION
72
- # # ------------------------------------------------------------------------------
73
- # # #{username}: #{UI_URI}/#{username}/#{actual_path}
74
- # # ------------------------------------------------------------------------------
75
-
76
- # #{solution}
77
-
78
- # SOLUTION
79
- # end
80
- # }
81
- # .compact
82
- # .join
83
- # .strip + "\n"
84
- # end
85
52
  end
86
53
  end
87
54
  end
@@ -115,7 +115,7 @@ module DownloadSolutions
115
115
  private_class_method def self.simplify_comment(raw_comment, raw_more_childrens)
116
116
  {
117
117
  author: raw_comment["data"]["author"],
118
- url: "https://www.reddit.com#{raw_comment["data"]["permalink"]}",
118
+ url: "https://www.reddit.com#{raw_comment["data"]["permalink"]}".delete_suffix("/"),
119
119
  body: raw_comment["data"]["body"],
120
120
  id: raw_comment["data"]["name"],
121
121
  parent_id: raw_comment["data"]["parent_id"],
@@ -3,7 +3,7 @@ module DownloadSolutions
3
3
  class Reddit
4
4
  class RejectUnwantedReplies
5
5
  # Filters out replies that are not gennerally relevant for posterity:
6
- # - removed with no replies
6
+ # - removed/deleted with no replies
7
7
  # - by moderators
8
8
  # - by bots
9
9
  #
@@ -21,7 +21,7 @@ module DownloadSolutions
21
21
  end
22
22
 
23
23
  comment[:replies].reject! do
24
- (it[:body].strip == "[removed]" && it[:replies].empty?) ||
24
+ (["[removed]", "[deleted]"].include?(it[:body].strip) && it[:replies].empty?) ||
25
25
  %w[AutoModerator daggerdragon backtickbot].include?(it[:author])
26
26
  end
27
27
  end
@@ -12,7 +12,7 @@ module DownloadSolutions
12
12
  repos = Api::Github::REPOS
13
13
  if author
14
14
  if repos.key?(author)
15
- repos = repos.select { _1 == author }
15
+ repos = repos.select { it == author }
16
16
  else
17
17
  raise InputError, "Repo author #{PASTEL.blue(author)} not found."
18
18
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: advent_of_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felipe Vogel
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-19 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: benchmark
@@ -2705,6 +2705,7 @@ files:
2705
2705
  - lib/arb/files/other_solutions.rb
2706
2706
  - lib/arb/files/solution.rb
2707
2707
  - lib/arb/files/spec.rb
2708
+ - lib/arb/formatter.rb
2708
2709
  - lib/arb/version.rb
2709
2710
  - lib/download_solutions/api/github.rb
2710
2711
  - lib/download_solutions/api/github/repos.rb
@@ -2739,14 +2740,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
2739
2740
  requirements:
2740
2741
  - - "~>"
2741
2742
  - !ruby/object:Gem::Version
2742
- version: 3.4.1
2743
+ version: 3.4.4
2743
2744
  required_rubygems_version: !ruby/object:Gem::Requirement
2744
2745
  requirements:
2745
2746
  - - ">="
2746
2747
  - !ruby/object:Gem::Version
2747
2748
  version: '0'
2748
2749
  requirements: []
2749
- rubygems_version: 3.6.2
2750
+ rubygems_version: 3.6.7
2750
2751
  specification_version: 4
2751
2752
  summary: CLI for Advent of Code in Ruby, via the `arb` command.
2752
2753
  test_files: []