drakkon 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f93944a6ec3d58f641a41490ed9a05b52d05ddd28e11fca835949f21f01a847
4
- data.tar.gz: 8ed5dcc916fb187d53287e4214e85c69ff75f03d280352700ad820291400e7c7
3
+ metadata.gz: 22dc052674cbdeb00139240538434c5098c27f5b4daa59ecc35ba3fd30fc6219
4
+ data.tar.gz: e705e6edc55b2b979761da02ad021d4d0ae427b6b03144fc8d20835f3a89f496
5
5
  SHA512:
6
- metadata.gz: 1f80b6e046076851612faffb476f02eff00a3fc462f3e66155de7192d85fea52a9ddcddcf92e16f9cdd3df49d7760d9f23351a543a7c7f14b79ad0e1977f205d
7
- data.tar.gz: 41eeab774c6ec15e5a6b4c5d5d022f4cd70435862d36b33716328883912c87573a99f3c6120154875332ded8780ac185e7576b4ccd0afa5542d3113c374ef64d
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
data/lib/drakkon/init.rb CHANGED
@@ -15,6 +15,11 @@ module Drakkon
15
15
  end
16
16
 
17
17
  def self.run!
18
+ unless Hub.version_installed?
19
+ LogBot.warn('Init', 'No Drakkon Versions Installed, Run `drakkon install <dragonruby.zip>` first!')
20
+ exit(1)
21
+ end
22
+
18
23
  exit if prompt.no?("Init Drakkon here? #{Dir.pwd.pastel(:yellow)}")
19
24
  LogBot.info('Init', 'Start')
20
25
  settings
@@ -45,6 +45,10 @@ module Drakkon
45
45
  config.versions
46
46
  end
47
47
 
48
+ def self.version_installed?
49
+ versions.any?
50
+ end
51
+
48
52
  def self.version_latest
49
53
  list = versions.map { |v| v.split('.').map(&:to_i) }
50
54
  latest = list.sort.reverse.max
@@ -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.5'.freeze
2
+ VERSION = '0.0.7'.freeze
3
3
  end
@@ -26,7 +26,7 @@ module Drakkon
26
26
  value ||= '' # Empty Start
27
27
 
28
28
  loop do
29
- line = reader.read_line(readline_notch, value:)
29
+ line = reader.read_line(readline_notch, value: value)
30
30
  value = '' # Remove Afterwards
31
31
 
32
32
  if reader.breaker
@@ -17,7 +17,7 @@ module Drakkon
17
17
  details = {
18
18
  **data,
19
19
  **config,
20
- source:
20
+ source: source
21
21
  }
22
22
 
23
23
  Hub.config.skeletons[name] = details
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.5
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