Commit Graph

333 Commits (d68d4d2250674dd1c8349fa853a97f275ea7ddad)

Author SHA1 Message Date
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 003a26ae68 Two new built-in layouts: fantasy.yml and economy.yml
Contributes to #97
2015-07-26 00:59:12 -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 813b8f8600 Fix documentation on svg method 2015-07-21 20:47:09 -04:00
Andy Meneely 04ac3f730a Fix mock object tests 2015-07-21 20:44:08 -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 25b13fd592 Better ability to handle per-dsl-method defaults 2015-07-12 00:52:34 -04:00
Andy Meneely f2d693f8ff Updated debugging for new args classes 2015-07-12 00:51:57 -04:00
Andy Meneely 3783640889 Strip trailing and leading whitespace on text args 2015-07-12 00:35:50 -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 c66c6bc4f0 Removed img_dir from set method, added specs 2015-07-10 12:43:56 -04:00
Melody 4bc8ba7455 fixes #56 by accounting for case that would produce zero rows 2015-07-08 22:28:36 -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 1b22542655 Remove dead code 2015-07-03 16:06:00 -04:00
Andy Meneely 79814a43ea Start migrating text over to new args system
Almost there. It's working fine with the sample, but next it's time to write validators to get all this arg logic out of text.rb and make it just about drawing text.

Yes, unit tests aren't updated yet.
[skip ci]
2015-07-03 02:11:32 -04:00
Andy Meneely 6aecdbbb4a Adding custom colors to the draw arg 2015-07-03 00:47:46 -04:00
Andy Meneely c931a860a1 Args refactoring: combine polygon, tri, and bezier args into coords
As a rule, I think it's better to group args classes together have some extra overhead of extracting unused parameters. For example, we don't *need* to extract "n" for the circle, but the ease of having logically grouped classes is better than having tons of different classes tailored to each command.
2015-06-16 21:14:43 -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 243b3836c4 Refactor to remove instance_eval
When you have a hammer...
2015-06-11 17:19:17 -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 da0fe1b118 Onward and upward. 2015-05-26 21:04:15 -04:00
Andy Meneely 981a9eab0e I dub thee v0.6.0 2015-05-26 20:57:58 -04:00
Andy Meneely a20100f3f8 Hiding private stuff from public documentation 2015-05-26 20:55:11 -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 f0b71531aa Allowing close_path to pass through 2015-05-22 05:59:08 -04:00
Andy Meneely c3e76a93aa Fix a syntax error 2015-05-22 05:36:32 -04:00
Andy Meneely 6d8e44920b Allow unit conversion on radius for star 2015-05-22 05:32:27 -04:00
Andy Meneely 6cf6ec8099 Fix documentation for shapes 2015-05-22 05:32:03 -04:00
Andy Meneely 0853b6a708 Finish regression testing of star 2015-05-21 18:29:38 -04:00
Andy Meneely 4b63716dfc Star feature works, testing is still pending 2015-05-21 09:29:01 -04:00
Andy Meneely 14e04a89c7 Started the star feature
Contributes to #72

[skip ci]
2015-05-21 09:29:00 -04:00
Andy Meneely ae1a7bd084 Set a non-symbol default for text embeds
Fixes #73, but in #74 we'll get it right.
2015-05-20 18:30:08 -04:00
Andy Meneely 0154b13e68 Use cairo context wrapper for fill colors on marketing
Actually deliver what I promised

Fixes #71
2015-05-19 16:49:13 -04:00
Andy Meneely 31b583d134 Implementation of hand 2015-05-19 14:40:21 -04:00
Andy Meneely 824e26d2c2 Hacked together a basic example to work from 2015-05-13 09:42:14 -04:00
Andy Meneely f0f9b7680d Starting a basic hand command 2015-05-11 23:30:30 -04:00
Andy Meneely d80d3884b1 Cleanup 2015-04-30 11:48:47 -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 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 e974880e03 Add 'data' field to svg method for loading XML directly
Implements #65
2015-04-29 16:49:38 -04:00
Andy Meneely ca70b88be9 Cleanup 2015-04-28 22:31:04 -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 1c76d03e19 Dead code 2015-04-28 21:08:01 -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 25773a8ee5 Better regression tests for roo 2015-04-27 08:50:03 -04:00
Andy Meneely 035cd6259e Fix global hinting logic
Fixes #63
2015-04-16 21:24:21 -04:00
Andy Meneely a64e608b0a Onward and upward. 2015-04-16 20:56:01 -04:00
Andy Meneely 4a0c5e78b6 Fix PDF scaling issue
Properly compute the size of the PDF based on DPI and PDF-specific resolution (i.e. 72dpi).

Closes #62
2015-04-13 22:59:34 -04:00
Andy Meneely a47e26535d Starting a bugfix version 2015-04-13 22:49:42 -04:00
Andy Meneely 8ec0a5e09a Onward and upward. 2015-04-13 21:44:37 -04:00
Andy Meneely fbefe098cc I dub thee v0.5.0 2015-04-13 21:42:39 -04:00
Andy Meneely 0616512bd6 Set font antialiasing from global antialiasing
This is a workaround until we get a proper solution in #59
2015-04-13 21:26:41 -04:00
Andy Meneely e268246337 Allow specific gray and subpixel choices for antialiasing 2015-04-13 21:01:46 -04:00
Andy Meneely 0e22c52b0f Fix up config defaults
Also: removing include because Yard is stupid.
2015-04-07 21:32:55 -04:00
Andy Meneely 063d5156d6 Allow configuration of typographical replacements, e.g. smart quotes
If you're living in a non-UTF-8 character set, then you can configure what quotes are smartly changed.
If my regexes are messing things up, you can also turn this off with smart_quotes: false
Also updated docs.

This closes #50
2015-04-07 21:21:00 -04:00
Andy Meneely beb46a9e1c Place embedded icons based on byte offset
Fixes #57
2015-04-07 19:43:16 -04:00
Andy Meneely 211e7c13b3 Fix typography replacements with embeds
Enable embedded icons tests again
2015-04-07 12:20:40 -04:00
Andy Meneely a5d1cb60f2 Complete overhaul of smart quotes to "typographer"
See README for details

Contributes to #50
2015-04-07 00:16:06 -04:00
Andy Meneely 674397c005 Smart quotes!
Closes #50
2015-04-04 16:02:20 -04:00
Andy Meneely 874bdba8bc Fix a string replacement issue.
Contributes to #30
2015-04-04 09:33:04 -04:00
Andy Meneely 19cad2cdb8 Using a platform-specific fix for zero-width letters on embedding icons
Contributes to #30 and our zero-width letter woes.
2015-04-04 09:15:21 -04:00
Andy Meneely 84fa97a4d1 More debugging on this stupid error 2015-04-02 10:19:22 -04:00
Andy Meneely 91ba48f80b Explicitly saving and restoring the matrix 2015-04-02 10:14:08 -04:00
Andy Meneely c9f9235be7 Attempting travis fix by saving and restoring the matrix 2015-04-02 10:00:26 -04:00
Andy Meneely b123a132ef Better debugging to fix this travis issue 2015-04-01 10:19:46 -04:00
Andy Meneely 44a6334b26 Allowing :get_matrix in the wrapper 2015-04-01 10:13:59 -04:00
Andy Meneely d4cd7897ab Catching the error and printing the current cairo matrix 2015-04-01 10:12:16 -04:00
Andy Meneely acdb56d894 Travis fix: adding save/restore to fix matrix problem 2015-04-01 10:02:16 -04:00
Andy Meneely 5c4d7c368f Switching back to zero to try to break Travis 2015-04-01 09:47:45 -04:00
Andy Meneely 7941adc2aa Font size of 1/1024 pixel to fix non invertible matrix error 2015-03-31 21:15:06 -04:00
Andy Meneely 03e41c7e81 Adding regression tests for various cases to test PR #53
Close #53.
2015-03-31 17:05:03 -04:00
pickfifteen f18730e927 Embed cleanup unused lines 2015-03-30 16:23:33 -04:00
pickfifteen 7cc75b24a2 Embed wrapping fix
Draw call locations now calculated after all string replacements. Does this fix the center and right align embed? Quick testing could not find any errors, but more thorough testing needed.
2015-03-30 16:19:19 -04:00
pickfifteen 30df4cd115 Embed size fix
Missed the trailing word character in last commit
2015-03-30 16:06:32 -04:00
pickfifteen 67c834960a Embed fix size, first / last issue
One more fix needed to fix wrapping-- draw_calls all need to be calculated after all string substitutions have been made.
2015-03-30 16:02:24 -04:00
Andy Meneely 574b76873e Updating regression tests, renamed bezier curve params 2015-03-26 19:50:12 -04:00
Andy Meneely 42ae2144e0 Fix index location issue, working on vertical placement
Contributes to #30

Also added little adjusters for the icons in case your icon is a little off.
[skip ci]
2015-03-24 14:59:21 -04:00
Andy Meneely 014646ce9f Better default to avoid CAIRO_STATUS_INVALID_SIZE errors
For some silly reason Cairo checks the width and height for invalid size, not the product: http://lists.cairographics.org/archives/cairo/2010-December/021424.html
2015-03-23 13:53:23 -04:00
Andy Meneely 2cc9cc8e93 Initial implementation of curves
Contributes to #37
2015-03-19 18:15:24 -04:00
Andy Meneely eee1bcf90d Default key is specified 2015-03-19 17:24:46 -04:00
Andy Meneely ac2b46921d Add support for embedding pngs
Refactored into passing a Proc. I love those things.
2015-03-19 17:00:27 -04:00
Andy Meneely cb7ff5f4d7 Yard: Add in lots of @api private directives 2015-03-19 13:45:47 -04:00
Andy Meneely 188112d581 Record this as a known issue and point to the bug 2015-03-19 00:24:50 -04:00
Andy Meneely 77e5fcce06 Cleaning up
Although it appears we still have issues with text_options being different on different cards. Very strange.
2015-03-19 00:24:49 -04:00
Andy Meneely c6cb0ca288 Saving a wonky bug example for posterity 2015-03-19 00:24:48 -04:00
Andy Meneely 666dae393d Base functionality of icon embedding working
Contributes to #30
2015-03-19 00:24:47 -04:00
Andy Meneely 58a2f9cd89 Onward and upward. 2015-02-28 21:57:02 -05:00
Andy Meneely 2caacaeece Fixing compatibility with linux os
Thank you, Travis! Turns out the cairo gem isn't perfectly the same in Linux...
2015-02-28 21:39:26 -05:00
Andy Meneely cae7144040 I dub thee v0.4.0 2015-02-28 20:59:58 -05:00
Andy Meneely 82c141fbf4 Better docs on gradient coordinate behaviors 2015-02-28 20:53:59 -05:00
Andy Meneely d744d9d815 Documentation for backend option 2015-02-28 20:36:21 -05:00
Andy Meneely f49bff2388 Add antialias config option
Closes #41
2015-02-28 19:34:46 -05:00
Andy Meneely b5016f90c0 Sorting lines 2015-02-28 09:33:27 -05:00