mdfiller 1.0.0 → 1.0.2

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: d7747e80108116cd3b79ce41f6e9f2bd35aa870029d39a1e9a0714be58d95f33
4
- data.tar.gz: 4d58a8bf1c29935623873692ff2d981d1091554a9d11d57ee45d8889ac30d2ec
3
+ metadata.gz: 829fac8da21f190e3b781b09afc6c11c0490b465fd3f1002e36163c0a6e43e6b
4
+ data.tar.gz: 076afda04c3107d70a7d9481cdf2a2ce7ce41c330d8dc02741217072f5352b42
5
5
  SHA512:
6
- metadata.gz: d01702b08d4eaec1b6af3aa8b171cd85bef49b7ac6b505224f86bebf7085e55da1f052ad89b9837b99278fb4ef406863db7f2faced32bdd6660515f8dfc5754a
7
- data.tar.gz: eac0a9ef52389910cf6c13d88678dc3a4cc5baeb51755bcc45696257215391e6af04b2e4a1c588570ce2f026a55a1254c7346e74180ecfac92c5add484387caf
6
+ metadata.gz: 6e442c66588c268590759eaa73c0928254d4e4768b981e4680f8b0d06fd2e91ca6530e52709fc27b9b0e58f5b78840237f3ab1a1eada781f3749f6de9c775de9
7
+ data.tar.gz: ee16e5723cdc6d7b05ec84cfd43d684d0135110d41b5c8e5d3034d5a7bb0e8eda336280d34ef0036ee71992f680d6a6fb8adec35dc1e151bd0c6f3a7b75723b1
data/exe/mdf CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- version = '1.0.0'
3
+ version = '1.0.2'
4
4
  ourlib = File.join(ENV['HOME'], '.rvm', 'gems', 'ruby-3.4.0-preview1@mdfiller', 'gems', "mdfiller-#{version}", 'lib')
5
5
  $:<< ourlib
6
6
  require "mdfiller"
data/lib/mdfiller/fill.rb CHANGED
@@ -18,19 +18,30 @@ module Mdfiller
18
18
  return copy_files
19
19
  end
20
20
 
21
+ def empty?
22
+ return self.files.empty?
23
+ end
24
+
21
25
  protected
22
26
 
23
27
  def copy_files
24
28
  result = ''
25
29
  self.files.each do
26
30
  |fname|
27
- result += "\n[#{fname}](#{self.dir}/#{fname})\n"
28
- result += "```#{self.soft}\n"
29
- File.open(File.join(self.dir, fname), 'r') { |fh| result += fh.readlines.join }
30
- result += "```\n\n"
31
+ result += copy_file(fname)
31
32
  end
32
33
  return result
33
34
  end
35
+
36
+ def copy_file(fname)
37
+ result = ''
38
+ result += "\n[#{fname}](#{self.dir}/#{fname})\n"
39
+ result += "```#{self.soft}\n"
40
+ File.open(File.join(self.dir, fname), 'r') { |fh| result += fh.readlines.join }
41
+ result += "```\n\n"
42
+ return result
43
+ end
44
+
34
45
  end
35
46
 
36
47
  class OrcAndScoFill < Base
@@ -60,18 +71,30 @@ module Mdfiller
60
71
  result = ''
61
72
  self.files.each do
62
73
  |fname|
63
- pngname = File.basename("#{fname}", ".py") + '.png'
64
- result += "\n[#{fname}](#{self.dir}/#{fname})\n```#{self.soft}\n"
65
- File.open(File.join(self.dir, fname), 'r') { |fh| result += fh.readlines.join }
66
- IO.popen("(cat #{self.dir}/#{fname} | sed -e '/^plt.show()$/d'; echo \"plt.savefig('#{self.dir}/#{pngname}')\") | python3") do
67
- |ioh|
68
- result += ioh.readlines.join
74
+ if has_plots?(fname)
75
+ pngname = File.basename("#{fname}", ".py") + '.png'
76
+ result += "\n[#{fname}](#{self.dir}/#{fname})\n```#{self.soft}\n"
77
+ File.open(File.join(self.dir, fname), 'r') { |fh| result += fh.readlines.join }
78
+ IO.popen("(cat #{self.dir}/#{fname} | sed -e '/^plt.show()$/d'; echo \"plt.savefig('#{self.dir}/#{pngname}')\") | python3") do
79
+ |ioh|
80
+ result += ioh.readlines.join
81
+ end
82
+ result += "```\n\nPlot prodotto:\n\n![#{pngname}](#{self.dir}/#{pngname})\n\n"
83
+ else
84
+ result += copy_file(fname)
69
85
  end
70
- result += "```\n\nPlot prodotto:\n\n![#{pngname}](#{self.dir}/#{pngname})\n\n"
71
86
  end
72
87
  return result
73
88
  end
74
89
 
90
+ def has_plots?(fname)
91
+ result = false
92
+ lines = nil
93
+ File.open(File.join(self.dir, fname), 'r') { |fh| lines = fh.readlines }
94
+ result = true if !lines.grep(/plt\.show()/).empty?
95
+ return result
96
+ end
97
+
75
98
  end
76
99
 
77
100
  class PngFill < Base
@@ -108,7 +131,7 @@ module Mdfiller
108
131
  sleep(1)
109
132
  windows_to_shoot = get_windows_to_shoot
110
133
  shots = shoot_windows(windows_to_shoot, fname)
111
- shots.each { |s| result += "\n![#{s}](#{self.dir}/#{s})\n" }
134
+ shots.each { |s| result += "\n[#{self.dir}/#{fname}](#{self.dir}/#{fname})\n\n![[#{s}](#{self.dir}/#{fname})](#{self.dir}/#{s})\n" }
112
135
  kill_process(pid)
113
136
  end
114
137
  return result
@@ -130,7 +153,7 @@ module Mdfiller
130
153
 
131
154
  def get_windows_to_shoot
132
155
  result = {}
133
- IO.popen("wmctrl -lx | egrep -e '(Gem|.*\.pd )'") do
156
+ IO.popen("wmctrl -lx | egrep -e '(Gem$|.*\.pd )'") do
134
157
  |ioh|
135
158
  lines = ioh.readlines
136
159
  lines.each do
@@ -17,13 +17,17 @@ module Mdfiller
17
17
 
18
18
  def generate
19
19
  result = header
20
- result += "\n### Lavagne\n\n"
21
- result += self.pngs.fill
22
- result += "\n### Codice\n\n"
23
- result += self.orcs_and_scos.fill
24
- result += self.csds.fill
25
- result += self.pys.fill
26
- result += self.pds.fill
20
+ if !self.pngs.empty?
21
+ result += "\n### Lavagne\n\n"
22
+ result += self.pngs.fill
23
+ end
24
+ if self.has_code?
25
+ result += "\n### Codice\n\n"
26
+ result += self.orcs_and_scos.fill
27
+ result += self.csds.fill
28
+ result += self.pys.fill
29
+ result += self.pds.fill
30
+ end
27
31
  return result
28
32
  end
29
33
 
@@ -62,6 +66,15 @@ module Mdfiller
62
66
  return Dir.glob(File.join("#{self.dir}", "*#{sfx}")).map { |f| File.basename(f) }
63
67
  end
64
68
 
69
+ def has_code?
70
+ result = false
71
+ [ self.orcs_and_scos, self.csds, self.pys, self.pds ].each do
72
+ |code|
73
+ result |= true unless code.empty?
74
+ end
75
+ return result
76
+ end
77
+
65
78
  end
66
79
 
67
80
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mdfiller
4
- VERSION = "1.0.0"
4
+ VERSION = "1.0.2"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mdfiller
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicola Bernardini
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2024-11-13 00:00:00.000000000 Z
10
+ date: 2024-11-21 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: mdfiller fills the README.md of each lesson with all its details
13
13
  email: