squib 0.12.0 → 0.13.0

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 (392) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -2
  3. data/CHANGELOG.md +16 -1
  4. data/appveyor.yml +2 -3
  5. data/lib/squib/args/sheet.rb +66 -34
  6. data/lib/squib/graphics/save_pdf.rb +1 -1
  7. data/lib/squib/import/data_frame.rb +7 -7
  8. data/lib/squib/version.rb +1 -1
  9. data/samples/autoscale_font/_autoscale_font.rb +1 -1
  10. data/samples/build_groups/build_groups.rb +3 -3
  11. data/samples/colors/_colors.rb +1 -0
  12. data/samples/{config_text_markup.rb → config/config_text_markup.rb} +0 -0
  13. data/samples/{custom_config.rb → config/custom_config.rb} +0 -0
  14. data/samples/{cairo_access.rb → images/_cairo_access.rb} +0 -0
  15. data/samples/images/_images.rb +1 -1
  16. data/samples/{unicode.rb → images/_unicode.rb} +0 -0
  17. data/samples/intro/01_hello.rb +1 -2
  18. data/samples/intro/02_options.rb +1 -2
  19. data/samples/intro/03_layout.rb +1 -2
  20. data/samples/intro/04_arrays.rb +1 -2
  21. data/samples/intro/05_excel.rb +3 -4
  22. data/samples/{tgc_proofs.rb → proofs/_tgc_proofs.rb} +1 -4
  23. data/samples/saves/_save_pdf.rb +7 -0
  24. data/samples/{embed_text.rb → text/_embed_text.rb} +1 -0
  25. data/samples/text/_text.rb +1 -1
  26. data/samples/{text_options.rb → text/_text_options.rb} +1 -1
  27. data/samples/{bug134.rb → text/bug134.rb} +0 -0
  28. data/squib.gemspec +17 -16
  29. metadata +90 -596
  30. data/benchmarks/antialias_best.rb +0 -13
  31. data/benchmarks/antialias_best.yml +0 -1
  32. data/benchmarks/antialias_fast.rb +0 -13
  33. data/benchmarks/antialias_fast.yml +0 -1
  34. data/benchmarks/backend-svg.yml +0 -4
  35. data/benchmarks/backend_memory.rb +0 -14
  36. data/benchmarks/backend_svg.rb +0 -14
  37. data/benchmarks/shiny-purse.png +0 -0
  38. data/benchmarks/spanner.svg +0 -91
  39. data/benchmarks/tons_of_png.rb +0 -6
  40. data/benchmarks/tons_of_svg.rb +0 -7
  41. data/benchmarks/tons_of_text.rb +0 -8
  42. data/docs/Makefile +0 -216
  43. data/docs/_static/css/squibdocs.css +0 -23
  44. data/docs/args/draw.rst +0 -36
  45. data/docs/args/expansion.rst +0 -3
  46. data/docs/args/layout.rst +0 -6
  47. data/docs/args/output_dir.rst +0 -6
  48. data/docs/args/range.rst +0 -6
  49. data/docs/args/transform.rst +0 -51
  50. data/docs/args/trim.rst +0 -11
  51. data/docs/args/wh.rst +0 -12
  52. data/docs/args/xy.rst +0 -12
  53. data/docs/arrays.rst +0 -80
  54. data/docs/backends.rst +0 -20
  55. data/docs/bleed.rst +0 -13
  56. data/docs/build_groups.rst +0 -45
  57. data/docs/colors.rst +0 -90
  58. data/docs/conf.py +0 -287
  59. data/docs/config.rst +0 -135
  60. data/docs/data.rst +0 -26
  61. data/docs/dsl/background.rst +0 -20
  62. data/docs/dsl/build.rst +0 -32
  63. data/docs/dsl/build_groups.rst +0 -23
  64. data/docs/dsl/circle.rst +0 -27
  65. data/docs/dsl/cm.rst +0 -19
  66. data/docs/dsl/configure.rst +0 -18
  67. data/docs/dsl/csv.rst +0 -81
  68. data/docs/dsl/curve.rst +0 -63
  69. data/docs/dsl/data_frame.rst +0 -85
  70. data/docs/dsl/deck.rst +0 -45
  71. data/docs/dsl/disable_build.rst +0 -25
  72. data/docs/dsl/disable_build_globally.rst +0 -46
  73. data/docs/dsl/ellipse.rst +0 -23
  74. data/docs/dsl/enable_build.rst +0 -25
  75. data/docs/dsl/enable_build_globally.rst +0 -44
  76. data/docs/dsl/grid.rst +0 -31
  77. data/docs/dsl/hand.rst +0 -40
  78. data/docs/dsl/hint.rst +0 -15
  79. data/docs/dsl/inches.rst +0 -19
  80. data/docs/dsl/index.rst +0 -9
  81. data/docs/dsl/line.rst +0 -52
  82. data/docs/dsl/mm.rst +0 -19
  83. data/docs/dsl/png.rst +0 -49
  84. data/docs/dsl/polygon.rst +0 -28
  85. data/docs/dsl/rect.rst +0 -22
  86. data/docs/dsl/save.rst +0 -23
  87. data/docs/dsl/save_pdf.rst +0 -89
  88. data/docs/dsl/save_png.rst +0 -46
  89. data/docs/dsl/save_sheet.rst +0 -55
  90. data/docs/dsl/showcase.rst +0 -76
  91. data/docs/dsl/star.rst +0 -35
  92. data/docs/dsl/svg.rst +0 -119
  93. data/docs/dsl/text.rst +0 -292
  94. data/docs/dsl/triangle.rst +0 -50
  95. data/docs/dsl/use_layout.rst +0 -16
  96. data/docs/dsl/xlsx.rst +0 -56
  97. data/docs/guides/game_icons.rst +0 -126
  98. data/docs/guides/getting-started/index.rst +0 -5
  99. data/docs/guides/getting-started/part_0_learning_ruby.rst +0 -145
  100. data/docs/guides/getting-started/part_1_zero_to_game.rst +0 -217
  101. data/docs/guides/getting-started/part_2_iconography.rst +0 -228
  102. data/docs/guides/getting-started/part_3_workflows.rst +0 -46
  103. data/docs/guides/getting-started/part_4_ruby_power.rst +0 -18
  104. data/docs/guides/git.rst +0 -14
  105. data/docs/guides/guard.rst +0 -84
  106. data/docs/guides/hello_world.rst +0 -65
  107. data/docs/guides/projects.rst +0 -35
  108. data/docs/help.rst +0 -157
  109. data/docs/index.rst +0 -35
  110. data/docs/install.rst +0 -68
  111. data/docs/layouts.rst +0 -290
  112. data/docs/learning.rst +0 -12
  113. data/docs/make.bat +0 -263
  114. data/docs/parameters.rst +0 -34
  115. data/docs/server.bat +0 -1
  116. data/docs/text_feature.rst +0 -115
  117. data/docs/units.rst +0 -14
  118. data/samples/autoscale_font/.gitignore +0 -2
  119. data/samples/autoscale_font/card_00_expected.png +0 -0
  120. data/samples/backend/.gitignore +0 -1
  121. data/samples/backend/_backend-config.yml +0 -5
  122. data/samples/backend/backend_00_expected.png +0 -0
  123. data/samples/backend/backend_01_expected.png +0 -0
  124. data/samples/backend/backend_vectorized_expected.pdf +0 -0
  125. data/samples/backend/backend_vectors_00_expected.svg +0 -84
  126. data/samples/backend/backend_vectors_01_expected.svg +0 -84
  127. data/samples/backend/shiny-purse.png +0 -0
  128. data/samples/backend/showcase_expected.png +0 -0
  129. data/samples/backend/spanner.svg +0 -91
  130. data/samples/ball.png +0 -0
  131. data/samples/build_groups/.gitignore +0 -1
  132. data/samples/build_groups/Rakefile +0 -25
  133. data/samples/colors/.gitignore +0 -1
  134. data/samples/colors/color_constants_00_expected.png +0 -0
  135. data/samples/colors/colors_00_expected.png +0 -0
  136. data/samples/colors/gradient_00_expected.png +0 -0
  137. data/samples/config_disable_quotes.yml +0 -3
  138. data/samples/config_text_markup.yml +0 -9
  139. data/samples/custom-config.yml +0 -5
  140. data/samples/customconfig-imgdir/shiny-purse2.png +0 -0
  141. data/samples/customconfig-imgdir/spanner2.svg +0 -91
  142. data/samples/data/.gitignore +0 -1
  143. data/samples/data/explode_quantities.xlsx +0 -0
  144. data/samples/data/quantity_explosion.csv +0 -3
  145. data/samples/data/sample.csv +0 -3
  146. data/samples/data/sample.xlsx +0 -0
  147. data/samples/data/sample_csv_00_expected.png +0 -0
  148. data/samples/data/sample_csv_01_expected.png +0 -0
  149. data/samples/data/sample_csv_qty_00_expected.png +0 -0
  150. data/samples/data/sample_excel_00_expected.png +0 -0
  151. data/samples/data/sample_excel_01_expected.png +0 -0
  152. data/samples/data/sample_excel_02_expected.png +0 -0
  153. data/samples/data/sample_excel_resources_00_expected.png +0 -0
  154. data/samples/data/sample_excel_resources_01_expected.png +0 -0
  155. data/samples/data/sample_xlsx_qty_00_expected.png +0 -0
  156. data/samples/glass-heart.svg +0 -52
  157. data/samples/grit.png +0 -0
  158. data/samples/images/.gitignore +0 -8
  159. data/samples/images/_images_00_expected.png +0 -0
  160. data/samples/images/angler-fish.png +0 -0
  161. data/samples/images/ball.png +0 -0
  162. data/samples/images/glass-heart.svg +0 -52
  163. data/samples/images/grit.png +0 -0
  164. data/samples/images/offset.svg +0 -85
  165. data/samples/images/robot-golem.svg +0 -1
  166. data/samples/images/shiny-purse.png +0 -0
  167. data/samples/images/spanner.svg +0 -91
  168. data/samples/images/sprites.png +0 -0
  169. data/samples/images/with-alpha.png +0 -0
  170. data/samples/intro/.gitignore +0 -2
  171. data/samples/intro/auto-repair.svg +0 -1
  172. data/samples/intro/crawling.svg +0 -1
  173. data/samples/intro/data.xlsx +0 -0
  174. data/samples/intro/humans.svg +0 -1
  175. data/samples/intro/ninja-mask.svg +0 -1
  176. data/samples/intro/part1_00_expected.png +0 -0
  177. data/samples/intro/part2_00_expected.png +0 -0
  178. data/samples/intro/part3_00_expected.png +0 -0
  179. data/samples/intro/part3_layout.yml +0 -34
  180. data/samples/intro/part4_00_expected.png +0 -0
  181. data/samples/intro/part4_01_expected.png +0 -0
  182. data/samples/intro/part5_00_expected.png +0 -0
  183. data/samples/intro/part5_01_expected.png +0 -0
  184. data/samples/intro/part5_02_expected.png +0 -0
  185. data/samples/intro/part5_03_expected.png +0 -0
  186. data/samples/intro/part5_hand_expected.png +0 -0
  187. data/samples/intro/part5_showcase_expected.png +0 -0
  188. data/samples/intro/pirate-skull.svg +0 -1
  189. data/samples/intro/robot-golem.svg +0 -1
  190. data/samples/layouts/custom-layout.yml +0 -60
  191. data/samples/layouts/custom-layout2.yml +0 -15
  192. data/samples/layouts/expected_layouts_builtin_economy_00.png +0 -0
  193. data/samples/layouts/expected_layouts_builtin_fantasy_00.png +0 -0
  194. data/samples/layouts/expected_layouts_builtin_hand_00.png +0 -0
  195. data/samples/layouts/expected_layouts_builtin_playing_card_00.png +0 -0
  196. data/samples/layouts/expected_layouts_builtin_tuck_box_00.png +0 -0
  197. data/samples/layouts/shiny-purse.png +0 -0
  198. data/samples/layouts/spanner.svg +0 -91
  199. data/samples/load_images_config.yml +0 -1
  200. data/samples/offset.svg +0 -71
  201. data/samples/pokercard.png +0 -0
  202. data/samples/project/Gemfile +0 -6
  203. data/samples/project/Guardfile +0 -18
  204. data/samples/project/Rakefile +0 -25
  205. data/samples/project/bw/robot-golem.svg +0 -53
  206. data/samples/project/color/robot-golem.svg +0 -1
  207. data/samples/project/config.yml +0 -2
  208. data/samples/project/layouts/characters.yml +0 -3
  209. data/samples/project/layouts/skills.yml +0 -3
  210. data/samples/ranges/glass-heart.svg +0 -52
  211. data/samples/ranges/ranges_00_expected.png +0 -0
  212. data/samples/saves/.gitignore +0 -1
  213. data/samples/saves/hand_expected.png +0 -0
  214. data/samples/saves/hand_pretty_expected.png +0 -0
  215. data/samples/saves/save-pdf-small_expected.pdf +0 -0
  216. data/samples/saves/save-pdf_expected.pdf +0 -0
  217. data/samples/saves/save_png_00_expected.png +0 -0
  218. data/samples/saves/save_png_trimmed_00_expected.png +0 -0
  219. data/samples/saves/save_sheet_00_expected.png +0 -0
  220. data/samples/saves/save_sheet_01_expected.png +0 -0
  221. data/samples/saves/save_sheet_range_00_expected.png +0 -0
  222. data/samples/saves/save_sheet_range_01_expected.png +0 -0
  223. data/samples/saves/save_single_sheet_00_expected.png +0 -0
  224. data/samples/saves/saves_notrim_01_expected.png +0 -0
  225. data/samples/saves/showcase2_expected.png +0 -0
  226. data/samples/saves/showcase_expected.png +0 -0
  227. data/samples/saves/showcase_individual_00_expected.png +0 -0
  228. data/samples/saves/showcase_individual_01_expected.png +0 -0
  229. data/samples/saves/showcase_individual_02_expected.png +0 -0
  230. data/samples/saves/showcase_individual_03_expected.png +0 -0
  231. data/samples/saves/spanner.svg +0 -91
  232. data/samples/shapes/.gitignore +0 -1
  233. data/samples/shapes/shape_00_expected.png +0 -0
  234. data/samples/shiny-purse.png +0 -0
  235. data/samples/spanner.svg +0 -91
  236. data/samples/sprites.png +0 -0
  237. data/samples/text/.gitignore +0 -2
  238. data/samples/text/README.md +0 -1
  239. data/samples/text/_text_00_expected.png +0 -0
  240. data/samples/text/config.yml +0 -2
  241. data/samples/units/units_00_expected.png +0 -0
  242. data/samples/units/using_units.yml +0 -10
  243. data/spec/api/api_data_spec.rb +0 -172
  244. data/spec/api/api_groups_spec.rb +0 -49
  245. data/spec/api/api_settings_spec.rb +0 -38
  246. data/spec/api/api_units_spec.rb +0 -37
  247. data/spec/args/box_spec.rb +0 -127
  248. data/spec/args/draw_spec.rb +0 -101
  249. data/spec/args/embed_key_spec.rb +0 -13
  250. data/spec/args/input_file_spec.rb +0 -21
  251. data/spec/args/paint_spec.rb +0 -22
  252. data/spec/args/paragraph_spec.rb +0 -153
  253. data/spec/args/range_spec.rb +0 -41
  254. data/spec/args/save_batch_spec.rb +0 -51
  255. data/spec/args/scale_box_spec.rb +0 -71
  256. data/spec/args/sheet_spec.rb +0 -80
  257. data/spec/args/showcase_special_spec.rb +0 -15
  258. data/spec/args/transform_spec.rb +0 -25
  259. data/spec/args/typographer_spec.rb +0 -71
  260. data/spec/args/unit_conversion_spec.rb +0 -29
  261. data/spec/card_spec.rb +0 -11
  262. data/spec/commands/new_spec.rb +0 -48
  263. data/spec/conf_spec.rb +0 -47
  264. data/spec/data/conf/basic.yml +0 -1
  265. data/spec/data/conf/empty.yml +0 -1
  266. data/spec/data/conf/unrecognized.yml +0 -4
  267. data/spec/data/csv/basic.csv +0 -3
  268. data/spec/data/csv/custom_opts.csv +0 -2
  269. data/spec/data/csv/dup_cols.csv +0 -3
  270. data/spec/data/csv/newline.csv +0 -3
  271. data/spec/data/csv/qty.csv +0 -3
  272. data/spec/data/csv/qty_named.csv +0 -3
  273. data/spec/data/csv/with_spaces.csv +0 -3
  274. data/spec/data/csv/yield.csv +0 -3
  275. data/spec/data/layouts/easy-circular-extends.yml +0 -6
  276. data/spec/data/layouts/empty-rule.yml +0 -1
  277. data/spec/data/layouts/empty.yml +0 -1
  278. data/spec/data/layouts/extends-nonexists.yml +0 -3
  279. data/spec/data/layouts/extends-units-mixed.yml +0 -8
  280. data/spec/data/layouts/extends-units.yml +0 -8
  281. data/spec/data/layouts/hard-circular-extends.yml +0 -9
  282. data/spec/data/layouts/multi-extends-single-entry.yml +0 -14
  283. data/spec/data/layouts/multi-level-extends.yml +0 -10
  284. data/spec/data/layouts/multifile-a.yml +0 -4
  285. data/spec/data/layouts/multifile-b.yml +0 -4
  286. data/spec/data/layouts/multifile-extends-a.yml +0 -8
  287. data/spec/data/layouts/multifile-extends-b.yml +0 -9
  288. data/spec/data/layouts/no-extends.yml +0 -5
  289. data/spec/data/layouts/pre-extends.yml +0 -7
  290. data/spec/data/layouts/self-circular-extends.yml +0 -3
  291. data/spec/data/layouts/single-extends.yml +0 -7
  292. data/spec/data/layouts/single-level-multi-extends.yml +0 -12
  293. data/spec/data/samples/autoscale_font/_autoscale_font.rb.txt +0 -133
  294. data/spec/data/samples/basic.rb.txt +0 -248
  295. data/spec/data/samples/cairo_access.rb.txt +0 -59
  296. data/spec/data/samples/colors/_gradients.rb.txt +0 -84
  297. data/spec/data/samples/config_text_markup.rb.txt +0 -74
  298. data/spec/data/samples/custom_config.rb.txt +0 -59
  299. data/spec/data/samples/data/_csv.rb.txt +0 -231
  300. data/spec/data/samples/data/_excel.rb.txt +0 -704
  301. data/spec/data/samples/embed_text.rb.txt +0 -431
  302. data/spec/data/samples/hello_world.rb.txt +0 -38
  303. data/spec/data/samples/images/_more_load_images.rb.txt +0 -335
  304. data/spec/data/samples/layouts.rb.txt +0 -489
  305. data/spec/data/samples/ranges/_ranges.rb.txt +0 -484
  306. data/spec/data/samples/saves/_hand.rb.txt +0 -594
  307. data/spec/data/samples/saves/_portrait_landscape.rb.txt +0 -57
  308. data/spec/data/samples/saves/_save_pdf.rb.txt +0 -1601
  309. data/spec/data/samples/saves/_saves.rb.txt +0 -873
  310. data/spec/data/samples/saves/_showcase.rb.txt +0 -5942
  311. data/spec/data/samples/shapes/_draw_shapes.rb.txt +0 -757
  312. data/spec/data/samples/text_options.rb.txt +0 -1158
  313. data/spec/data/samples/tgc_proofs.rb.txt +0 -102
  314. data/spec/data/samples/units/_units.rb.txt +0 -53
  315. data/spec/data/xlsx/basic.xlsx +0 -0
  316. data/spec/data/xlsx/explode_quantities.xlsx +0 -0
  317. data/spec/data/xlsx/formulas.xlsx +0 -0
  318. data/spec/data/xlsx/whitespace.xlsx +0 -0
  319. data/spec/data/xlsx/with_macros.xlsm +0 -0
  320. data/spec/deck_spec.rb +0 -73
  321. data/spec/graphics/cairo_context_wrapper_spec.rb +0 -104
  322. data/spec/graphics/embedding_utils_spec.rb +0 -73
  323. data/spec/graphics/graphics_save_doc_spec.rb +0 -74
  324. data/spec/import/data_frame_spec.rb +0 -251
  325. data/spec/layout_parser_spec.rb +0 -226
  326. data/spec/logger_spec.rb +0 -12
  327. data/spec/samples/_diffs/gitkeep.txt +0 -0
  328. data/spec/samples/diff-with-css.example.html +0 -39
  329. data/spec/samples/expected/autoscale_00.png +0 -0
  330. data/spec/samples/expected/autoscale_01.png +0 -0
  331. data/spec/samples/expected/autoscale_02.png +0 -0
  332. data/spec/samples/expected/backend_00.png +0 -0
  333. data/spec/samples/expected/backend_00.svg +0 -78
  334. data/spec/samples/expected/backend_01.png +0 -0
  335. data/spec/samples/expected/backend_01.svg +0 -78
  336. data/spec/samples/expected/basic_00.png +0 -0
  337. data/spec/samples/expected/basic_01.png +0 -0
  338. data/spec/samples/expected/basic_02.png +0 -0
  339. data/spec/samples/expected/cairo_access_00.png +0 -0
  340. data/spec/samples/expected/cairo_access_01.png +0 -0
  341. data/spec/samples/expected/card_00.png +0 -0
  342. data/spec/samples/expected/card_01.png +0 -0
  343. data/spec/samples/expected/colors_00.png +0 -0
  344. data/spec/samples/expected/config_disable_text_00.png +0 -0
  345. data/spec/samples/expected/config_text_00.png +0 -0
  346. data/spec/samples/expected/custom-config_00.png +0 -0
  347. data/spec/samples/expected/embed_00.png +0 -0
  348. data/spec/samples/expected/embed_multisheet_00.png +0 -0
  349. data/spec/samples/expected/gitkeep.txt +0 -0
  350. data/spec/samples/expected/gradient_00.png +0 -0
  351. data/spec/samples/expected/hand.png +0 -0
  352. data/spec/samples/expected/hand_pretty.png +0 -0
  353. data/spec/samples/expected/landscape_00.png +0 -0
  354. data/spec/samples/expected/layout2_00.png +0 -0
  355. data/spec/samples/expected/layout_00.png +0 -0
  356. data/spec/samples/expected/layout_builtin_hand_00.png +0 -0
  357. data/spec/samples/expected/layout_builtin_playing_card_00.png +0 -0
  358. data/spec/samples/expected/load_images_00.png +0 -0
  359. data/spec/samples/expected/portrait_00.png +0 -0
  360. data/spec/samples/expected/ranges_00.png +0 -0
  361. data/spec/samples/expected/sample_csv_00.png +0 -0
  362. data/spec/samples/expected/sample_csv_01.png +0 -0
  363. data/spec/samples/expected/sample_excel_00.png +0 -0
  364. data/spec/samples/expected/sample_excel_01.png +0 -0
  365. data/spec/samples/expected/sample_excel_02.png +0 -0
  366. data/spec/samples/expected/save_sheet_00.png +0 -0
  367. data/spec/samples/expected/save_sheet_01.png +0 -0
  368. data/spec/samples/expected/save_sheet_range_00.png +0 -0
  369. data/spec/samples/expected/save_sheet_range_01.png +0 -0
  370. data/spec/samples/expected/save_single_sheet_00.png +0 -0
  371. data/spec/samples/expected/saves_notrim_01.png +0 -0
  372. data/spec/samples/expected/shape_00.png +0 -0
  373. data/spec/samples/expected/showcase.png +0 -0
  374. data/spec/samples/expected/showcase2.png +0 -0
  375. data/spec/samples/expected/showcase_individual_00.png +0 -0
  376. data/spec/samples/expected/showcase_individual_01.png +0 -0
  377. data/spec/samples/expected/showcase_individual_02.png +0 -0
  378. data/spec/samples/expected/showcase_individual_03.png +0 -0
  379. data/spec/samples/expected/text_00.png +0 -0
  380. data/spec/samples/expected/text_01.png +0 -0
  381. data/spec/samples/expected/text_02.png +0 -0
  382. data/spec/samples/expected/tgc_sample_00.png +0 -0
  383. data/spec/samples/expected/units_00.png +0 -0
  384. data/spec/samples/run_samples_spec.rb +0 -17
  385. data/spec/samples/samples_regression_spec.rb +0 -71
  386. data/spec/samples/sanity.html.erb +0 -28
  387. data/spec/samples/sanity.rb +0 -70
  388. data/spec/sanity/.gitignore +0 -1
  389. data/spec/sanity/sanity.html.erb +0 -42
  390. data/spec/sanity/sanity_test.rb +0 -42
  391. data/spec/sanity/tests.yml +0 -12
  392. data/spec/spec_helper.rb +0 -159
@@ -1 +0,0 @@
1
- _output/*
Binary file
@@ -1,91 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
10
- viewBox="0 0 128 128"
11
- id="svg2"
12
- version="1.1"
13
- inkscape:version="0.48.3.1 r9886"
14
- width="100%"
15
- height="100%"
16
- sodipodi:docname="spanner.svg">
17
- <metadata
18
- id="metadata18">
19
- <rdf:RDF>
20
- <cc:Work
21
- rdf:about="">
22
- <dc:format>image/svg+xml</dc:format>
23
- <dc:type
24
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25
- </cc:Work>
26
- </rdf:RDF>
27
- </metadata>
28
- <defs
29
- id="defs16" />
30
- <sodipodi:namedview
31
- pagecolor="#ffffff"
32
- bordercolor="#666666"
33
- borderopacity="1"
34
- objecttolerance="10"
35
- gridtolerance="10"
36
- guidetolerance="10"
37
- inkscape:pageopacity="0"
38
- inkscape:pageshadow="2"
39
- inkscape:window-width="1280"
40
- inkscape:window-height="1002"
41
- id="namedview14"
42
- showgrid="false"
43
- inkscape:zoom="2.8284271"
44
- inkscape:cx="98.928938"
45
- inkscape:cy="62.194589"
46
- inkscape:window-x="1912"
47
- inkscape:window-y="-8"
48
- inkscape:window-maximized="1"
49
- inkscape:current-layer="g3767"
50
- inkscape:document-units="in"
51
- units="px"
52
- showguides="true"
53
- inkscape:guide-bbox="true" />
54
- <g
55
- id="g3767"
56
- transform="matrix(0.24961486,0,0,0.24961486,0.197194,96.049335)">
57
- <rect
58
- ry="67.108368"
59
- y="-378.68747"
60
- x="5.3126979"
61
- height="501.3746"
62
- width="501.3746"
63
- id="backdrop"
64
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:10.62539577;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
65
- inkscape:label="#rect3765" />
66
- <path
67
- style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none"
68
- d="M 36.267098,-7.709219 C 16.393265,5.1318032 3.2161811,27.462365 3.2161811,52.884128 c 0,39.825874 32.2852369,72.111092 72.1110909,72.111092 23.870397,0 44.964938,-11.67699 58.089488,-29.545518 -11.26063,7.275808 -24.65607,11.517748 -39.060173,11.517748 -39.825853,0 -72.11109,-32.285221 -72.11109,-72.111095 0,-15.95546 5.248882,-30.6218942 14.021601,-42.565574 z"
69
- id="path3790"
70
- inkscape:connector-curvature="0" />
71
- <g
72
- id="g6"
73
- transform="matrix(18.68858,0,0,18.68858,-3385.6437,-2608.3849)">
74
- <path
75
- style="fill:#ffffff"
76
- inkscape:connector-curvature="0"
77
- id="path8"
78
- d="m 192.2325,129.3203 -10,10 v 5.5625 h 5.375 l 10.0938,-10.0938 -5.4688,-5.4688 z" />
79
- <path
80
- style="fill:#ffffff;stroke:#000000"
81
- inkscape:connector-curvature="0"
82
- id="path10"
83
- d="m 181.7796,141.8591 15.6196,-15.6178 m 3.349,3.3486 -15.8051,15.8032" />
84
- <path
85
- style="fill:#ffffff"
86
- inkscape:connector-curvature="0"
87
- id="path12"
88
- d="m 201.2023,119.7104 c -2.8283,-0.73 -5.9623,-0.004 -8.1759,2.2097 -3.3293,3.3292 -3.3293,8.7358 -2e-5,12.065 3.32928,3.3292 8.7358,3.3292 12.065,0 2.216,-2.216 2.9436,-5.3452 2.2097,-8.1759 l -5.6348,5.6348 -4.8172,-1.2816 -1.2816,-4.8171 5.6348,-5.6348 z" />
89
- </g>
90
- </g>
91
- </svg>
Binary file
@@ -1,2 +0,0 @@
1
- *.png
2
- !_text_00_expected.png
@@ -1 +0,0 @@
1
- Using the `text` method in Squib
@@ -1,2 +0,0 @@
1
- # Turn off warnings about ellipsization for this example
2
- warn_ellipsize: false
@@ -1,10 +0,0 @@
1
- base:
2
- x: .25 in
3
- y: 0.751in
4
-
5
- example:
6
- extends: base
7
- x: += 5mm # we can mix units on adding
8
- y: -= 5mm
9
- width: 1.25in
10
- height: 300 # pixels
@@ -1,172 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Squib::Deck do
4
- context '#csv' do
5
- it 'loads basic csv data' do
6
- expect(Squib.csv(file: csv_file('basic.csv')).to_h.to_h).to eq({
7
- 'h1' => [1, 3],
8
- 'h2' => [2, 4]
9
- })
10
- end
11
-
12
- it 'collapses duplicate columns and warns' do
13
- expect(Squib.logger).to receive(:warn)
14
- .with('CSV duplicated the following column keys: h1,h1')
15
- expect(Squib.csv(file: csv_file('dup_cols.csv')).to_h.to_h).to eq({
16
- 'h1' => [1, 3],
17
- 'h2' => [5, 7],
18
- 'H2' => [6, 8],
19
- 'h3' => [9, 10],
20
- })
21
- end
22
-
23
- it 'strips spaces by default' do
24
- expect(Squib.csv(file: csv_file('with_spaces.csv')).to_h).to eq({
25
- 'With Spaces' => ['a b c', 3],
26
- 'h2' => [2, 4],
27
- 'h3' => [3, nil]
28
- })
29
- end
30
-
31
- it 'skips space stripping if told to' do
32
- expect(Squib.csv(strip: false, file: csv_file('with_spaces.csv')).to_h).to eq({
33
- ' With Spaces ' => ['a b c ', 3],
34
- 'h2' => [2, 4],
35
- 'h3' => [3, nil]
36
- })
37
- end
38
-
39
- it 'explodes quantities' do
40
- expect(Squib.csv(file: csv_file('qty.csv')).to_h).to eq({
41
- 'Name' => %w(Ha Ha Ha Ho),
42
- 'Qty' => [3, 3, 3, 1],
43
- })
44
- end
45
-
46
- it 'explodes quantities on specified header' do
47
- expect(Squib.csv(explode: 'Quantity', file: csv_file('qty_named.csv')).to_h).to eq({
48
- 'Name' => %w(Ha Ha Ha Ho),
49
- 'Quantity' => [3, 3, 3, 1],
50
- })
51
- end
52
-
53
- it 'loads inline data' do
54
- hash = Squib.csv(data: "h1,h2\n1,2\n3,4")
55
- expect(hash.to_h).to eq({
56
- 'h1' => [1, 3],
57
- 'h2' => [2, 4]
58
- })
59
- end
60
-
61
- it 'loads csv with newlines' do
62
- hash = Squib.csv(file: csv_file('newline.csv'))
63
- expect(hash.to_h).to eq({
64
- 'title' => ['Foo'],
65
- 'level' => [1],
66
- 'notes' => ["a\nb"]
67
- })
68
- end
69
-
70
- it 'loads custom CSV options' do
71
- hash = Squib.csv(file: csv_file('custom_opts.csv'),
72
- col_sep: '-', quote_char: '|')
73
- expect(hash.to_h).to eq({
74
- 'x' => ['p'],
75
- 'y' => ['q-r']
76
- })
77
- end
78
-
79
- it 'yields to block when given' do
80
- data = Squib.csv(file: csv_file('basic.csv')) do |header, value|
81
- case header
82
- when 'h1'
83
- value * 2
84
- else
85
- 'ha'
86
- end
87
- end
88
- expect(data.to_h).to eq({
89
- 'h1' => [2, 6],
90
- 'h2' => %w(ha ha),
91
- })
92
- end
93
-
94
- it 'replaces newlines whenever its a string' do
95
- data = Squib.csv(file: csv_file('yield.csv')) do |header, value|
96
- if value.respond_to? :gsub
97
- value.gsub '%n', "\n"
98
- else
99
- value
100
- end
101
- end
102
- expect(data.to_h).to eq({
103
- 'a' => ["foo\nbar", 1],
104
- 'b' => [1, "blah\n"],
105
- })
106
- end
107
-
108
- end
109
-
110
- context '#xlsx' do
111
- it 'loads basic xlsx data' do
112
- expect(Squib.xlsx(file: xlsx_file('basic.xlsx')).to_h).to eq({
113
- 'Name' => %w(Larry Curly Mo),
114
- 'General Number' => %w(1 2 3), # general types always get loaded as strings with no conversion
115
- 'Actual Number' => [4.0, 5.0, 6.0], # numbers get auto-converted to integers
116
- })
117
- end
118
-
119
- it 'loads xlsx with formulas' do
120
- expect(Squib.xlsx(file: xlsx_file('formulas.xlsx')).to_h).to eq({
121
- 'A' => %w(1 2),
122
- 'B' => %w(3 4),
123
- 'Sum' => %w(4 6),
124
- })
125
- end
126
-
127
- it 'loads xlsm files with macros' do
128
- expect(Squib.xlsx(file: xlsx_file('with_macros.xlsm')).to_h).to eq({
129
- 'foo' => %w(8 10),
130
- 'bar' => %w(9 11),
131
- })
132
- end
133
-
134
- it 'strips whitespace by default' do
135
- expect(Squib.xlsx(file: xlsx_file('whitespace.xlsx')).to_h).to eq({
136
- 'With Whitespace' => ['foo', 'bar', 'baz'],
137
- })
138
- end
139
-
140
- it 'does not strip whitespace when specified' do
141
- expect(Squib.xlsx(file: xlsx_file('whitespace.xlsx'), strip: false).to_h).to eq({
142
- ' With Whitespace ' => ['foo ', ' bar', ' baz '],
143
- })
144
- end
145
-
146
- it 'yields to block when given' do
147
- data = Squib.xlsx(file: xlsx_file('basic.xlsx')) do |header, value|
148
- case header
149
- when 'Name'
150
- 'he'
151
- when 'Actual Number'
152
- value * 2
153
- else
154
- 'ha'
155
- end
156
- end
157
- expect(data.to_h).to eq({
158
- 'Name' => %w(he he he),
159
- 'General Number' => %w(ha ha ha),
160
- 'Actual Number' => [8.0, 10.0, 12.0],
161
- })
162
- end
163
-
164
- it 'explodes quantities' do
165
- expect(Squib.xlsx(explode: 'Qty', file: xlsx_file('explode_quantities.xlsx')).to_h).to eq({
166
- 'Name' => ['Zergling', 'Zergling', 'Zergling', 'High Templar'],
167
- 'Qty' => %w(3 3 3 1),
168
- })
169
- end
170
-
171
- end
172
- end
@@ -1,49 +0,0 @@
1
- require 'spec_helper'
2
- require 'squib'
3
-
4
- describe :build_group do
5
-
6
- context '#enable_build_globally' do
7
- before(:each) { ENV['SQUIB_BUILD'] = '' }
8
-
9
- it 'enables one group via ENV' do
10
- Squib.enable_build_globally 'foo'
11
- expect(ENV['SQUIB_BUILD']).to eq 'foo'
12
- end
13
-
14
- it 'enables two groups via ENV' do
15
- Squib.enable_build_globally 'foo'
16
- Squib.enable_build_globally 'bar'
17
- expect(ENV['SQUIB_BUILD']).to eq 'foo,bar'
18
- end
19
-
20
- it 'uniqs the groups' do
21
- Squib.enable_build_globally 'foo'
22
- Squib.enable_build_globally 'bar'
23
- Squib.enable_build_globally 'bar'
24
- expect(ENV['SQUIB_BUILD']).to eq 'foo,bar'
25
- end
26
-
27
- it 'handles symbols' do
28
- Squib.enable_build_globally :foo
29
- expect(ENV['SQUIB_BUILD']).to eq 'foo'
30
- end
31
-
32
- end
33
-
34
- context '#disable_build_globally' do
35
- before(:each) { ENV['SQUIB_BUILD'] = 'foo,bar' }
36
-
37
- it 'can be disabled globally via ENV' do
38
- Squib.disable_build_globally 'bar'
39
- expect(ENV['SQUIB_BUILD']).to eq 'foo'
40
- end
41
-
42
- it 'handles symbols' do
43
- Squib.disable_build_globally :bar
44
- expect(ENV['SQUIB_BUILD']).to eq 'foo'
45
- end
46
- end
47
-
48
-
49
- end
@@ -1,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Squib::Deck do
4
-
5
- context '#hint' do
6
-
7
- it 'sets hinting to conf' do
8
- mock_conf = double(Squib::Conf)
9
- expect(mock_conf).to receive(:text_hint=).with(:cyan).once
10
- Squib::Deck.new do
11
- @conf = mock_conf
12
- hint text: :cyan
13
- end
14
- end
15
-
16
- end
17
-
18
- context '#set' do
19
-
20
- it 'puts font in @font' do
21
- deck = Squib::Deck.new do
22
- set font: 'foo'
23
- end
24
- expect(deck.font).to eq ('foo')
25
- end
26
-
27
- it 'raises deprecation errors on img_dir' do
28
- set_img_dir = Proc.new do
29
- Squib::Deck.new do
30
- set img_dir: 'foo'
31
- end
32
- end
33
- expect { set_img_dir.call }.to raise_error('DEPRECATED: As of v0.7 img_dir is no longer supported in "set". Use config.yml instead.')
34
- end
35
-
36
- end
37
-
38
- end
@@ -1,37 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Squib::Deck do
4
-
5
- let(:deck) { Squib::Deck.new }
6
-
7
- context '#in' do
8
- it 'converts inches properly' do
9
- expect(deck.inches(1)).to eq 300
10
- end
11
-
12
- it 'handles strings too' do
13
- expect(deck.inches('1')).to eq 300
14
- end
15
- end
16
-
17
- context '#cm' do
18
- it 'converts inches properly' do
19
- expect(deck.cm(1)).to eq 118.1102361
20
- end
21
-
22
- it 'handles strings too' do
23
- expect(deck.cm('1')).to eq 118.1102361
24
- end
25
- end
26
-
27
- context '#mm' do
28
- it 'converts inches properly' do
29
- expect(deck.mm(1)).to eq 11.81102361
30
- end
31
-
32
- it 'handles strings too' do
33
- expect(deck.mm('1')).to eq 11.81102361
34
- end
35
- end
36
-
37
- end
@@ -1,127 +0,0 @@
1
- require 'spec_helper'
2
- require 'squib/args/box'
3
-
4
- describe Squib::Args::Box do
5
- subject(:box) { Squib::Args::Box.new }
6
- let(:expected_defaults) { { x: [0], y: [0], width: [:deck], height: [:deck] } }
7
-
8
- it 'intitially has no params set' do
9
- expect(box).not_to respond_to(:x, :y, :width, :height)
10
- end
11
-
12
- it 'extracts the defaults from Box on an empty hash' do
13
- box.load!({})
14
- expect(box).to have_attributes(expected_defaults)
15
- end
16
-
17
- it 'extracts what is specified and fills in defaults from Box' do
18
- box.load!(x: 4, width: 40)
19
- expect(box).to have_attributes(x: [4], width: [40], y: [0], height: [:deck])
20
- end
21
-
22
- it 'extracts the defaults from Box on an empty hash' do
23
- box.load!({ foo: :bar })
24
- expect(box).to have_attributes(expected_defaults)
25
- expect(box).not_to respond_to(:foo)
26
- end
27
-
28
- context 'single expansion' do
29
- let(:args) { { x: [1, 2], y: 3 } }
30
- before(:each) { box.load!(args, expand_by: 2) }
31
- it 'expands box' do
32
- expect(box).to have_attributes({
33
- x: [1, 2],
34
- y: [3, 3],
35
- height: [:deck, :deck],
36
- width: [:deck, :deck]
37
- })
38
- end
39
-
40
- it 'gives access to each card too' do
41
- expect(box[0]).to have_attributes({
42
- x: 1,
43
- y: 3,
44
- height: :deck,
45
- width: :deck
46
- })
47
- end
48
- end
49
-
50
- context 'layouts' do
51
- let(:layout) do
52
- { 'attack' => { 'x' => 50 },
53
- 'defend' => { 'x' => 60 } }
54
- end
55
-
56
- it 'are used when not specified' do
57
- args = { layout: ['attack', 'defend'] }
58
- box.load!(args, expand_by: 2, layout: layout)
59
- expect(box).to have_attributes(
60
- x: [50, 60], # set by layout
61
- y: [0, 0], # Box default
62
- )
63
- end
64
-
65
- it 'handle single expansion' do
66
- args = { layout: 'attack' }
67
- box.load!(args, expand_by: 2, layout: layout)
68
- expect(box).to have_attributes(
69
- x: [50, 50], # set by layout
70
- y: [0, 0], # Box default
71
- )
72
- end
73
-
74
- it 'handles symbols' do
75
- args = { layout: :attack }
76
- box.load!(args, expand_by: 2, layout: layout)
77
- expect(box).to have_attributes(
78
- x: [50, 50], # set by layout
79
- y: [0, 0], # Box default
80
- )
81
- end
82
-
83
- it 'warns on non-existent layouts' do
84
- args = { layout: :heal }
85
- expect(Squib.logger).to receive(:warn).with('Layout "heal" does not exist in layout file - using default instead').at_least(:once)
86
- box.load!(args, expand_by: 2, layout: layout)
87
- expect(box).to have_attributes(
88
- x: [0, 0], # Box default
89
- y: [0, 0], # Box default
90
- )
91
- end
92
- end
93
-
94
- context 'unit conversion' do
95
-
96
- it 'converts units on all args' do
97
- args = { x: ['1in', '2in'], y: 300, width: '1in', height: '1in' }
98
- box.load!(args, expand_by: 2)
99
- expect(box).to have_attributes(
100
- x: [300, 600],
101
- y: [300, 300],
102
- width: [300, 300],
103
- height: [300, 300],
104
- )
105
- end
106
-
107
- end
108
-
109
- context 'validation' do
110
- it 'replaces with deck width and height' do
111
- args = { width: :deck, height: :deck }
112
- deck = OpenStruct.new(width: 123, height: 456)
113
- box = Squib::Args::Box.new(deck)
114
- box.load!(args, expand_by: 1)
115
- expect(box).to have_attributes(width: [123], height: [456])
116
- end
117
-
118
- it 'has radius override x_radius and y_radius' do
119
- args = { x_radius: 1, y_radius: 2, radius: 3 }
120
- box.load!(args, expand_by: 2)
121
- expect(box).to have_attributes(x_radius: [3, 3], y_radius: [3, 3])
122
- end
123
-
124
- end
125
-
126
-
127
- end