Commit Graph

274 Commits (79ba584c69f5b19afe280ebbb47860d0992816e6)

Author SHA1 Message Date
Andy Meneely ee0d232478 text: rewrite how image space is carved
Embedded images avoid zero-sized fonts by using non-printable characters instead.

This is for #153 and #103
2016-04-25 23:36:10 -04:00
Andy Meneely bdcd7d94ad save_png: update regression tests 2016-04-25 23:06:29 -04:00
Andy Meneely 87fd3b7b6f samples: update regression test 2016-04-12 13:39:29 -04:00
Andy Meneely 43ab4b0ae8 samples: gistify colors 2016-04-12 00:04:53 -04:00
Andy Meneely 8cd651d5f1 samples: gistifying excel.rb and csv.rb 2016-04-11 22:30:32 -04:00
Andy Meneely bd5e6c92f6 samples: gistify saves 2016-04-11 21:33:15 -04:00
Andy Meneely dd32e3bfae samples: cleanup regression tests 2016-04-11 21:13:34 -04:00
Andy Meneely 795b4e4478 csv: yield to block on each cell
Closes #151

Related to #145
2016-04-11 20:07:55 -04:00
Andy Meneely 2329a069d1 save_pdf: flush to file
Fixes #150
2016-03-29 13:37:13 -04:00
Andy Meneely d7943da750 csv: allow all Ruby csv parsing options
Closes #149

Generalization on PR #146 by Qgel. Thanks for the contribution!
2016-03-24 02:23:47 -04:00
Andy Meneely 38e3d669c5 tests: show how CSVs can include newlines
Sanity check for #145
2016-03-24 00:07:53 -04:00
Andy Meneely dad2ab5ba9 👮 newline at end of file 2016-03-17 23:51:37 -04:00
Andy Meneely 0cbcc0c683 👮 string literals should be single-quoted 2016-03-17 23:49:04 -04:00
Andy Meneely 65a0fdfd47 👮 leading space in comments 2016-03-17 23:47:32 -04:00
Andy Meneely 0f5b7d0f8e 👮 space inside parens 2016-03-17 23:42:09 -04:00
Andy Meneely 310030eee4 👮 spaces around operators 2016-03-17 23:40:41 -04:00
Andy Meneely 5e09e0f1e1 👮 fix spacing inside hashes 2016-03-17 23:38:48 -04:00
Andy Meneely 137e3f91cd 👮 fix extra spaces 2016-03-17 23:27:07 -04:00
Andy Meneely 8a9552126c 👮 fix space after comma 2016-03-17 23:22:16 -04:00
Andy Meneely 6e900c6641 tests: move color setting to config 2016-03-17 13:37:51 -04:00
Andy Meneely 955d64a01f feature: add use_layout method to load layouts at runtime
Closes #141
2016-03-16 17:05:07 -04:00
Andy Meneely f408b7a88f csv: data option
Close #137
2016-03-15 17:45:39 -04:00
Andy Meneely e51b99af85 tests: fix deprecation warning 2016-03-15 17:42:13 -04:00
Andy Meneely cf736db067 Maintain coordinate system when using gradients
Sample: document this better
spec: test this and update past tests

Fixes #127
2016-01-10 20:30:30 -05:00
Andy Meneely 90f319e9f5 Refactor spec runners to be separate tests 2015-12-13 20:36:13 -05:00
Andy Meneely 56319ea817 byebug currently failing on Windows 2015-12-11 23:39:18 -05:00
Andy Meneely 8b0067546f save_png: add trim and trim_radius options
Close #122.
2015-12-11 23:09:04 -05:00
Andy Meneely 35d1bd64c0 Playing around with html diffing on sanity test 2015-11-24 00:37:09 -05:00
Andy Meneely f33a74cada Samples: intro gist
Also make the sample regression spec more subdirectory friendly
2015-11-23 22:44:44 -05:00
Andy Meneely cec44f1c57 Shamelessly poach the last few coverage lines. 2015-10-27 00:32:23 -04:00
Andy Meneely b00cc99dd0 Added a grid shape
Close #68
2015-10-26 23:59:51 -04:00
Andy Meneely d99e840ffd PNG/SVG: flipping is now supported.
Fixes #11
2015-10-26 23:31:16 -04:00
Andy Meneely 8ea553eb95 Updating specs for image cropping
Ripped out graphics_images_spec.rb for being annoyingly useless. Too many mock objects!
2015-10-26 22:52:21 -04:00
Andy Meneely 541c8d49ca Crop PNGs, now with more rounded corners!
Contributes to #11
2015-10-26 22:35:56 -04:00
Andy Meneely 7126afbc9c Warn on conf when an option is not recognized 2015-10-26 16:14:13 -04:00
Andy Meneely 47b5f569a4 Rip out old constants from pre args classes 2015-10-26 15:32:04 -04:00
Andy Meneely 88686fd9ea Testing exploding quantities on xlsx 2015-10-20 22:11:40 -04:00
Andy Meneely 08381b86f0 Add quantity explosion to xlsx and csv
Closes #78
2015-10-20 18:23:25 -04:00
Andy Meneely e8d7480a63 Range option shouldn't fail on []
Fixes #107
2015-10-13 15:01:14 -04:00
Andy Meneely c8e6f9803c xlsx,csv: trim whitespace, yield to optional block
Closes #108 and #79
2015-10-13 10:37:49 -04:00
Andy Meneely 94a35f6028 Update expected images for sanity test 2015-08-16 00:31:53 -04:00
Andy Meneely 5042ee8edc Ripping out the notorious input_helpers.rb 2015-08-15 14:59:08 -04:00
Andy Meneely 82a2538180 Removing dependency on ill-fated input_helpers.rb 2015-08-15 00:32:44 -04:00
Andy Meneely 4d1661ac0b Convert hand method to args classes 2015-08-15 00:17:29 -04:00
Andy Meneely 3f2b057466 Convert save_sheet and save_pdf to args classes 2015-08-14 23:56:03 -04:00
Andy Meneely bcc6d355d2 Convert showcase to args classes 2015-08-14 21:08:11 -04:00
Andy Meneely f8a18cdbce Finished porting of save_png over to args classes 2015-08-12 23:41:15 -04:00
Andy Meneely 4aee48dada Working on save args 2015-08-12 15:57:58 -04:00
Andy Meneely 354a97f100 Add validation to text embed key 2015-08-09 22:15:10 -04:00
Andy Meneely 40ac6d2b6b Expanding the Working With Text section
[skip ci]
2015-07-29 12:20:35 -04:00
Andy Meneely 7de39618fe Update regression tests for text 2015-07-28 09:39:21 -04:00
Andy Meneely 19767c54c4 Implement stroke_strategy option for all drawing operations
Fixes #102
2015-07-27 22:55:49 -04:00
Andy Meneely 5bbde3a259 Fix compatibility with rspec 3.3 2015-07-27 13:38:43 -04:00
Andy Meneely e03a97ce7e Add :scale shortcut to width/height of png and svg
Allows scaling while keeping the aspect ratio

Closes #91
2015-07-27 13:25:12 -04:00
Andy Meneely 7c756e468d Remove dead code 2015-07-26 23:34:02 -04:00
Andy Meneely 8f977f5956 Update text_options.rb sample, and expected output 2015-07-26 23:25:43 -04:00
Andy Meneely 9d475995e8 Pango scaling of "spacing" in text is done once
Spacing also defaults to nil, not zero, as before

Fixes #98
2015-07-26 22:26:42 -04:00
Andy Meneely 54185fe9eb Warn on non-existing layout
Fix #99 and refactor args_loader a bit
2015-07-26 21:50:43 -04:00
Andy Meneely cddea47ba5 Upgrade Roo to 2.1.x
Looks like the main difference is that xlsm is now supported, so I added test for it.
2015-07-21 21:47:50 -04:00
Andy Meneely 70a5f48bda Add nil check for colors, just in case
Probably not possible, but provides a more descriptive error than before anyway.

Fixes #84.
2015-07-21 21:37:54 -04:00
Andy Meneely f21e9448e1 Warn when text is ellipsized
Closes #80
2015-07-21 21:31:50 -04:00
Andy Meneely 92d866548c Cleanup of img_dir and testing of input_file.rb 2015-07-21 21:04:23 -04:00
Andy Meneely 04ac3f730a Fix mock object tests 2015-07-21 20:44:08 -04:00
Andy Meneely 336c43069a Removing an over-engineered test 2015-07-21 20:27:26 -04:00
Andy Meneely e20c644a9a Implemented new args design for svg and png
As part of that implementation, text_embed now supports singleton expansion. Closes #54
2015-07-21 20:27:15 -04:00
Andy Meneely ff3d057d49 Add a force_id: true example to load_images 2015-07-21 20:17:08 -04:00
Andy Meneely 25b13fd592 Better ability to handle per-dsl-method defaults 2015-07-12 00:52:34 -04:00
Andy Meneely 08d0ac2b60 Starting paint args class - not integrated yet.
Draw args also now requires custom_colors from Deck. (Can't trust caller to override the default.)
2015-07-12 00:06:27 -04:00
Andy Meneely 37a7210751 New spec for validating line caps
Because I'm obsessed with code coverage.
2015-07-10 13:03:22 -04:00
Andy Meneely c66c6bc4f0 Removed img_dir from set method, added specs 2015-07-10 12:43:56 -04:00
Melody 8674d8d946 updates rowify specs to merge default options and cover new test case 2015-07-08 23:47:49 -04:00
Andy Meneely e43f68d323 Ported text command over to the new args classes
* Involved a big rewrite of arg_loader to accomodate nil and false better. Sadly this meant dumping ||= for if-statements. Blech, but works.
  * Updates to regression tests are pretty trivial.
  * Removed graphics_text_spec because, even though it looks useful, with rake sanity it really isn't.
  * Exposed font on deck as well

Cleaned up graphics/text.rb too!
2015-07-07 23:59:23 -04:00
Andy Meneely cc5c540be8 Updated regression specs
Mostly from changing colorify to always converting to a string
New ranges example for the idiom
New text options example for dotted

[skip ci]
2015-07-03 20:16:18 -04:00
Andy Meneely 2dd3fc3365 Documented a range idiom
In reaction to #90

[skip ci]
2015-07-03 16:01:44 -04:00
Andy Meneely 6aecdbbb4a Adding custom colors to the draw arg 2015-07-03 00:47:46 -04:00
Andy Meneely f16f285a0a Update expected draw_shapes.rb PNG for sanity test 2015-06-16 21:20:06 -04:00
Andy Meneely b5903293d7 Layouts use strings as keys, so that must be realistic 2015-06-11 17:20:02 -04:00
Andy Meneely c5e00f1877 Employing the new args refactoring on all shapes 2015-06-11 16:16:08 -04:00
Andy Meneely 8a7841d64f Add dash option to drawing operations
Currently only impacts rect, but it will impact others with the new design shortly
2015-06-08 15:26:33 -04:00
Andy Meneely 12c5cd675b Added line cap and join settings for rect and curve
More forthcoming - these are proof-of-concept
2015-06-08 14:17:46 -04:00
Andy Meneely c1e410fe72 First foray into args class refactoring: rect
So far, I really like this approach. It allows us to push validation logic out of the Card class and into its own set of classes that can be more easily tested.

Fixes #75, but we've got a lot more work to do in getting this full scale
2015-06-08 13:36:23 -04:00
Andy Meneely 6c60f21bb0 Refactored drawing to get fill_n_stroke
Contributes to #75
2015-06-04 16:40:55 -04:00
Andy Meneely 9801188b47 Update expected png for star 2015-05-26 21:09:19 -04:00
Andy Meneely d957addfc3 Enabling regression tests again 2015-05-26 20:56:58 -04:00
Andy Meneely 3bbc787025 Add polygon method to dsl
Testing and documentation too.

Closes #67
2015-05-22 06:12:48 -04:00
Andy Meneely 0853b6a708 Finish regression testing of star 2015-05-21 18:29:38 -04:00
Andy Meneely b8536bcabe Regression and sanity testing for star
Closes #72
2015-05-21 09:29:01 -04:00
Andy Meneely a86974d5b8 Regression and sanity testing 2015-05-19 15:02:54 -04:00
Andy Meneely dab544a53b Add ellipse method
Also experimenting with using stroke_preserve, which in turn may make the other methods less repetitive.

Closes #66
2015-04-30 11:48:21 -04:00
Andy Meneely ac7769237c Fix the csv_import.rb sample to function properly 2015-04-30 10:05:34 -04:00
Andy Meneely 71defb9e33 Fix color handling with text outline stroking
Needed to set squibcolor prior to translating the coordinate system so that gradients are relative to the card (as is documented). This also means stroking is done AFTER drawing the text, which looks better anyway.
2015-04-30 09:54:41 -04:00
Andy Meneely 2e84cf4e6a Update load_images expected png for sanity testing 2015-04-30 09:37:57 -04:00
Andy Meneely e974880e03 Add 'data' field to svg method for loading XML directly
Implements #65
2015-04-29 16:49:38 -04:00
Andy Meneely b03dbb54da Fix unit test breakage 2015-04-28 22:31:15 -04:00
Andy Meneely 7c69cad506 Text: outline a string with a color or gradient
Fill color is still the same with 'color' (i.e. can be overridden by markup still), but now there's a stroke_width and a stroke_color option that, when stroke_width > 0, will draw an outline below the text. Since this isn't a Pango feature, we can't do markup for outlines. (Maybe make that a feature request to Pango if you want it.)

Implements #51
2015-04-28 22:27:26 -04:00
Andy Meneely 1dc89ae76a Port global text hints to the new conf 2015-04-28 21:01:49 -04:00
Andy Meneely 923f346575 Redesigning how config files are read, stored, and delegated
With the new design, we take the load off of deck.rb and simply delegate methods over to the new conf.rb. This means that things like `antialias` is now available as a method to the normal Squib scripts for easy checking (without being mutable). Squib::Conf also handles parsing and defaults, and any potential input validation we need to do in the future.

Typographer is also set up now as a deck-wide configuration. This may change in the future if we want typography customization per-command, although that seems like a strange use case.

Lots of tests for this one, and lots of cross-cutting concerns in this commit.

This commit also includes some tweaks to rspec tests, including tagging of slow tests for a `rake spec_fastonly`

Conflicts:
	spec/samples/samples_regression_spec.rb
	spec/spec_helper.rb
	squib.sublime-project
2015-04-28 20:31:53 -04:00
Andy Meneely 74865cb10f Sanity test: pixel-by-pixel comparison 2015-04-28 16:07:40 -04:00
Andy Meneely 5ea9ce619f Basic visual sanity test for better regression testing 2015-04-27 11:15:31 -04:00
Andy Meneely bed94e47ba Changing rspec sample regressions to one-at-a-time 2015-04-27 09:58:25 -04:00