Class: Squib::TextEmbed
- Inherits:
-
Object
- Object
- Squib::TextEmbed
- Defined in:
- lib/squib/api/text_embed.rb
Instance Attribute Summary collapse
-
#rules ⇒ Object
readonly
private
:nodoc:.
Instance Method Summary collapse
-
#initialize(deck_size, custom_colors, layout, dpi, img_dir) ⇒ TextEmbed
constructor
private
:nodoc:.
-
#png(opts = {}) ⇒ Object
DSL method.
-
#svg(opts = {}) ⇒ Object
DSL method.
Constructor Details
#initialize(deck_size, custom_colors, layout, dpi, img_dir) ⇒ TextEmbed
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
:nodoc:
17 18 19 20 21 22 23 24 |
# File 'lib/squib/api/text_embed.rb', line 17 def initialize(deck_size, custom_colors, layout, dpi, img_dir) @deck_size = deck_size @custom_colors = custom_colors @layout = layout @dpi = dpi @img_dir = img_dir @rules = {} # store an array of options for later usage end |
Instance Attribute Details
#rules ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
:nodoc:
13 14 15 |
# File 'lib/squib/api/text_embed.rb', line 13 def rules @rules end |
Instance Method Details
#png(opts = {}) ⇒ Object
DSL method. See squib.readthedocs.io
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/squib/api/text_embed.rb', line 50 def png(opts = {}) key = Args::EmbedKey.new.validate_key(opts[:key]) range = Args::CardRange.new(opts[:range], deck_size: @deck_size) paint = Args::Paint.new(@custom_colors).load!(opts, expand_by: @deck_size, layout: @layout) box = Args::Box.new(self, { width: :native, height: :native }).load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) adjust = Args::EmbedAdjust.new.load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) trans = Args::Transform.new.load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) ifile = Args::InputFile.new.load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) rule = { type: :png, file: ifile, box: box, paint: paint, trans: trans, adjust: adjust } rule[:draw] = Proc.new do |card, x, y| i = card.index b = box[i] b.x, b.y = x, y Dir.chdir(@img_dir) do card.png(ifile[i].file, b, paint[i], trans[i]) end end @rules[key] = rule end |
#svg(opts = {}) ⇒ Object
DSL method. See squib.readthedocs.io
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/squib/api/text_embed.rb', line 27 def svg(opts = {}) key = Args::EmbedKey.new.validate_key(opts[:key]) range = Args::CardRange.new(opts[:range], deck_size: @deck_size) paint = Args::Paint.new(@custom_colors).load!(opts, expand_by: @deck_size, layout: @layout) box = Args::Box.new(self, { width: :native, height: :native }).load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) adjust = Args::EmbedAdjust.new.load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) trans = Args::Transform.new.load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) ifile = Args::InputFile.new.load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) svg_args = Args::SvgSpecial.new.load!(opts, expand_by: @deck_size, layout: @layout, dpi: @dpi) rule = { type: :svg, file: ifile, box: box, paint: paint, trans: trans, adjust: adjust, svg_args: svg_args } rule[:draw] = Proc.new do |card, x, y| i = card.index b = box[i] b.x, b.y = x, y Dir.chdir(@img_dir) do card.svg(ifile[i].file, svg_args[i], b, paint[i], trans[i]) end end @rules[key] = rule end |