drakkon 0.0.6 → 0.0.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b7f65a972668a6beb610ed53da219fb9cfaeff4b553b105ccc9836b8bfcd03b
4
- data.tar.gz: addbf0433116e2fd71948ddd31076412aa29b34b35f25c2058ce61c02ce54373
3
+ metadata.gz: 22dc052674cbdeb00139240538434c5098c27f5b4daa59ecc35ba3fd30fc6219
4
+ data.tar.gz: e705e6edc55b2b979761da02ad021d4d0ae427b6b03144fc8d20835f3a89f496
5
5
  SHA512:
6
- metadata.gz: cb1462dcc9c6ea1991f5fe9e205e30248d831729f4d6e6aa6d3a8156fba30bac4ca9d5fecd974777d61b8e5bfe2f38902b8271f8ef0f75dc880956ce7ee0165a
7
- data.tar.gz: 1d27fdfa3c6df857e49d73111b2b4ca94e159d26facee57af6aeecae84f11b9dde8ba255fc5507bba8df7949f12ed57b9f01db71d2ff3f59c530e29f5db40db8
6
+ metadata.gz: f02cc623e83d177b61e9043d4852571b5be61c9ac3fea8aa73009e2469fe90636c2da8976829209342cbbd8c6358033586f1c1994bf2a3814157ebb0b19cbfe7
7
+ data.tar.gz: 582b9944ca4aeec1d5963fd92190f4330b97cdbcc1f99892f725dbe3629290c523bc3926e4f89ac111f96b874422a6503b2a40bde396fe606a393237cbe69033
@@ -34,6 +34,10 @@ module Drakkon
34
34
  # Index Writer
35
35
  idx.keys.sort.reverse.each do |i|
36
36
  idx[i].each do |file|
37
+ unless File.exist?(file)
38
+ LogBot.fatal('Bundle', "File not found #{file.pastel(:red)}")
39
+ next
40
+ end
37
41
  f << File.read(file)
38
42
  f << "\n"
39
43
  end
@@ -33,6 +33,7 @@ module Drakkon
33
33
  when :sepia then Images::Sepia.run!(args)
34
34
  when :modulate then Images::Modulate.run!(args)
35
35
  when :bulk_rename then Images::BulkRename.run!(args)
36
+ when :text_to_image then Images::TextToImage.run!(args)
36
37
  when :index then Images::Index.run!(force: true)
37
38
  when :exit then exit(0)
38
39
  else
@@ -61,6 +62,7 @@ module Drakkon
61
62
  menu.choice name: 'Gif Split (gif_split)', value: :gif_split
62
63
  menu.choice name: 'Sepia', value: :sepia
63
64
  menu.choice name: 'Modulate', value: :modulate
65
+ menu.choice name: 'TextToImage', value: :text_to_image
64
66
  menu.choice name: 'Index (Re-run Index)', value: :index
65
67
  menu.choice name: 'exit', value: :exit
66
68
  end
@@ -0,0 +1,89 @@
1
+ module Drakkon
2
+ module Images
3
+ # Make some img files from fonts
4
+ module TextToImage
5
+ def self.run!(args = [])
6
+ text = if args.empty?
7
+ prompt.ask('Text? (e.g. rawr): ')
8
+ else
9
+ args.shift
10
+ end
11
+
12
+ size = if args.empty?
13
+ 24
14
+ else
15
+ args.shift
16
+ end
17
+
18
+ color = if args.empty?
19
+ 'white'
20
+ else
21
+ args.shift
22
+ end
23
+
24
+ file = if args.empty?
25
+ text.gsub(' ', '').downcase
26
+ else
27
+ args.shift
28
+ end
29
+
30
+ file.gsub!(/[^0-9A-Za-z.-]/, '_')
31
+
32
+ font = if args.empty?
33
+ font_prompt
34
+ else
35
+ args.shift
36
+ end
37
+
38
+ puts <<~HELP
39
+ Usage [text] [size=24] [color=white] [file=text] [font]
40
+ - Will look for fonts directory
41
+ - Generates via MiniMagick on transparent background
42
+
43
+
44
+ Text: #{text}
45
+ Size: #{size}
46
+ Color: #{color}
47
+ File: #{file}
48
+ Font: #{font}
49
+ HELP
50
+
51
+ puts
52
+
53
+ exit unless prompt.yes? "#{'Are you sure?'.pastel(:bright_yellow)}"
54
+
55
+ generate(font: font, text: text, size: size, color: color, file: file)
56
+ rescue TTY::Reader::InputInterrupt
57
+ exit 0
58
+ end
59
+
60
+ def self.font_prompt
61
+ list = Dir['*.ttf', '*.otf', 'fonts/*']
62
+
63
+ prompt.select('Select Font:', filter: true) do |menu|
64
+ list.each do |font|
65
+ menu.choice name: font
66
+ end
67
+ end
68
+ end
69
+
70
+ def self.generate(font:, text:, size:, color:, file:)
71
+ LogBot.info('TextToImage', file)
72
+ MiniMagick::Tool::Convert.new do |convert|
73
+ convert.background 'none'
74
+ convert.fill color
75
+ convert.font font
76
+ convert.pointsize size
77
+ convert << "label:#{text}"
78
+ convert << "#{file}.png"
79
+ end
80
+ end
81
+
82
+ def self.prompt
83
+ TTY::Prompt.new(active_color: :cyan, interrupt: :exit)
84
+ end
85
+ # =========================================================
86
+ end
87
+ # =========================================================
88
+ end
89
+ end
@@ -1,3 +1,3 @@
1
1
  module Drakkon
2
- VERSION = '0.0.6'.freeze
2
+ VERSION = '0.0.7'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drakkon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Davin Walker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-10 00:00:00.000000000 Z
11
+ date: 2024-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faker
@@ -250,6 +250,7 @@ files:
250
250
  - lib/drakkon/lib/images/shift.rb
251
251
  - lib/drakkon/lib/images/split.rb
252
252
  - lib/drakkon/lib/images/spritesheet.rb
253
+ - lib/drakkon/lib/images/text.rb
253
254
  - lib/drakkon/lib/images/trim.rb
254
255
  - lib/drakkon/lib/images/white.rb
255
256
  - lib/drakkon/lib/logbot.rb