dim-toolkit 2.1.1 → 2.2.0

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: 26fe252a958e56c51aab514181ffc673c5c2fc9817dd36731f6000a86ee099a3
4
- data.tar.gz: ecd41fef92aa8dc1e5aaf0c62bc7fbce5be498d3f463b8b369fcf62af8f4bdbe
3
+ metadata.gz: 173d098fa605d123b8d4f71c3adaf3069d48e71da75559fc3811ea040391e7fc
4
+ data.tar.gz: 1cd97eee8d5b3b72dbb8d82c33ea8fc358c4de5980c02fe2d924df8eeb6accb8
5
5
  SHA512:
6
- metadata.gz: 3ee16ec9da0f691c34e89bb27d602e7a97688ea1c55dccac61df975e194984e541e6d8b58bc8da9a4564f4b6baf94f557d87bc32e2facd6bea483936b294ff71
7
- data.tar.gz: b2c9cc15f886975e9660096b7da857f2a5d7e8059c544aceb5f7a11dbd15680ed4c60104783516182a151e76e3ab0cc39392815e50fa6225a59506ad86ded861
6
+ metadata.gz: d60ecd8de45760335f9ad22d5b202f43c886779a055d4f0891a6d4c523feaaa90c5a2284526be4ceb976bb6aa6d7937cd8bdd261307d23416b1232c41d2cfee8
7
+ data.tar.gz: f7a8ed3879a70f40462ae619835c25757f1f0de60c84a4e95c4e22be72d5a489a8f182ccf825f8bea2cf0687fda0cd740b3da38e661c1e1734f48ad11870e761
data/bin/dim CHANGED
@@ -1,9 +1,9 @@
1
- #!/usr/bin/env ruby
2
-
3
- $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib")
4
-
5
- require 'dim/encoding'
6
- require 'dim/ver'
7
- require 'dim'
8
-
9
- Dim.main
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/../lib")
4
+
5
+ require 'dim/encoding'
6
+ require 'dim/ver'
7
+ require 'dim'
8
+
9
+ Dim.main
@@ -1,13 +1,13 @@
1
- require_relative '../globals'
2
-
3
- module Dim
4
- class Check
5
- SUBCOMMANDS['check'] = self
6
-
7
- def initialize(_loader); end
8
-
9
- def execute(silent: true)
10
- # checks are always done after loading, so this is just a placeholder for command line option
11
- end
12
- end
13
- end
1
+ require_relative '../globals'
2
+
3
+ module Dim
4
+ class Check
5
+ SUBCOMMANDS['check'] = self
6
+
7
+ def initialize(_loader); end
8
+
9
+ def execute(silent: true)
10
+ # checks are always done after loading, so this is just a placeholder for command line option
11
+ end
12
+ end
13
+ end
@@ -1,145 +1,145 @@
1
- require 'pathname'
2
- require 'digest'
3
-
4
- require_relative '../globals'
5
- require_relative '../exporter/exporterInterface'
6
- require_relative '../exporter/rst'
7
- require_relative '../exporter/csv'
8
- require_relative '../exporter/json'
9
- require_relative 'check'
10
-
11
- module Dim
12
- class Export
13
- SUBCOMMANDS['export'] = self
14
-
15
- attr_accessor :file_list, :export_dir
16
-
17
- def initialize(loader)
18
- @loader = loader
19
- @file_list = []
20
- @export_dir = nil
21
- end
22
-
23
- def execute(silent: true)
24
- @silent = silent
25
- @loader.filter(OPTIONS[:filter]) unless OPTIONS[:filter].empty?
26
-
27
- puts 'Exporting...' unless @silent
28
- export
29
- clean_destination
30
- puts 'Done.' unless @silent
31
- end
32
-
33
- def copy_files(mod)
34
- @loader.module_data[mod][:files].each do |f, list|
35
- d = File.dirname(f)
36
-
37
- list.uniq.each do |l|
38
- src_pattern = File.join(d, l)
39
- Dir.glob(src_pattern).each do |src|
40
- src = Pathname.new(src).cleanpath.to_s
41
- dst = File.join(OPTIONS[:folder], mod.sanitize, Pathname.new(src).relative_path_from(Pathname(d)))
42
- @file_list << dst
43
- FileUtils.mkdir_p(File.dirname(dst))
44
-
45
- if File.exist?(dst)
46
- md5_src = Digest::MD5.file(src)
47
- md5_dst = Digest::MD5.file(dst)
48
- next if md5_src == md5_dst
49
- end
50
-
51
- puts "Copying #{src} to #{dst}..." unless @silent
52
- FileUtils.cp_r(src, dst)
53
- end
54
- end
55
- end
56
- end
57
-
58
- def write_content(filename, content)
59
- old_content = (File.exist?(filename) ? File.read(filename) : nil)
60
- if content != old_content
61
- File.write(filename, content)
62
- puts ' done' unless @silent
63
- else
64
- puts ' skipped' unless @silent
65
- end
66
- end
67
-
68
- def create_index(requirements_by_module)
69
- return unless @exporter.hasIndex
70
-
71
- files = {}
72
- @loader.module_data.each do |mod, data|
73
- next if requirements_by_module[mod].empty?
74
-
75
- c = data[:category]
76
- o = data[:origin]
77
- files[c] ||= {}
78
- files[c][o] ||= []
79
- files[c][o] << mod
80
- end
81
- ind = 0
82
- files.each do |category, data|
83
- data.each do |origin, modules|
84
- ind += 1
85
- filename = "index_#{format('%03d', ind)}_#{category.downcase}_#{origin.downcase.sanitize}"
86
- filepath = "#{OPTIONS[:folder]}/#{filename}.#{OPTIONS[:type]}"
87
- file_list << filepath
88
- new_content = StringIO.new
89
- print "Creating #{filepath}..." unless @silent
90
- @exporter.index(new_content, category, origin, modules)
91
- write_content(filepath, new_content.string)
92
- end
93
- end
94
- end
95
-
96
- def export
97
- requirements_by_module = {}
98
- module_keys = @loader.module_data.keys
99
- module_keys.each { |um| requirements_by_module[um] = [] }
100
- @loader.requirements.each { |_id, r| requirements_by_module[r.document] << r }
101
-
102
- @exporter = EXPORTER[OPTIONS[:type]].new(@loader)
103
- requirements_by_module.each do |doc, reqs|
104
- next if reqs.empty?
105
-
106
- @export_dir = File.join(OPTIONS[:folder])
107
- filename = File.join(export_dir, doc.sanitize, "Requirements.#{OPTIONS[:type]}")
108
- file_list << filename
109
- FileUtils.mkdir_p(File.dirname(filename))
110
- copy_files(doc)
111
-
112
- new_content = StringIO.new
113
- print "Creating #{filename}..." unless @silent
114
- @exporter.header(new_content)
115
- @exporter.document(new_content, doc)
116
- meta = @loader.metadata[doc]
117
- @exporter.metadata(new_content, meta) if meta != ''
118
- reqs.each do |r|
119
- @exporter.requirement(new_content, r)
120
- end
121
- @exporter.footer(new_content)
122
- write_content(filename, new_content.string)
123
- end
124
-
125
- create_index(requirements_by_module)
126
- end
127
-
128
- def clean_destination(dir_path = export_dir)
129
- Dir.new(dir_path).children.each do |file|
130
- dst = File.join(dir_path, file)
131
- path = Pathname.new(dst)
132
-
133
- clean_destination(dst) if path.directory?
134
-
135
- next if file_list.include? dst
136
-
137
- if path.directory?
138
- path.rmdir if path.empty?
139
- else
140
- path.delete
141
- end
142
- end
143
- end
144
- end
145
- end
1
+ require 'pathname'
2
+ require 'digest'
3
+
4
+ require_relative '../globals'
5
+ require_relative '../exporter/exporterInterface'
6
+ require_relative '../exporter/rst'
7
+ require_relative '../exporter/csv'
8
+ require_relative '../exporter/json'
9
+ require_relative 'check'
10
+
11
+ module Dim
12
+ class Export
13
+ SUBCOMMANDS['export'] = self
14
+
15
+ attr_accessor :file_list, :export_dir
16
+
17
+ def initialize(loader)
18
+ @loader = loader
19
+ @file_list = []
20
+ @export_dir = nil
21
+ end
22
+
23
+ def execute(silent: true)
24
+ @silent = silent
25
+ @loader.filter(OPTIONS[:filter]) unless OPTIONS[:filter].empty?
26
+
27
+ puts 'Exporting...' unless @silent
28
+ export
29
+ clean_destination
30
+ puts 'Done.' unless @silent
31
+ end
32
+
33
+ def copy_files(mod)
34
+ @loader.module_data[mod][:files].each do |f, list|
35
+ d = File.dirname(f)
36
+
37
+ list.uniq.each do |l|
38
+ src_pattern = File.join(d, l)
39
+ Dir.glob(src_pattern).each do |src|
40
+ src = Pathname.new(src).cleanpath.to_s
41
+ dst = File.join(OPTIONS[:folder], mod.sanitize, Pathname.new(src).relative_path_from(Pathname(d)))
42
+ @file_list << dst
43
+ FileUtils.mkdir_p(File.dirname(dst))
44
+
45
+ if File.exist?(dst)
46
+ md5_src = Digest::MD5.file(src)
47
+ md5_dst = Digest::MD5.file(dst)
48
+ next if md5_src == md5_dst
49
+ end
50
+
51
+ puts "Copying #{src} to #{dst}..." unless @silent
52
+ FileUtils.cp_r(src, dst)
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ def write_content(filename, content)
59
+ old_content = (File.exist?(filename) ? File.read(filename) : nil)
60
+ if content != old_content
61
+ File.write(filename, content)
62
+ puts ' done' unless @silent
63
+ else
64
+ puts ' skipped' unless @silent
65
+ end
66
+ end
67
+
68
+ def create_index(requirements_by_module)
69
+ return unless @exporter.hasIndex
70
+
71
+ files = {}
72
+ @loader.module_data.each do |mod, data|
73
+ next if requirements_by_module[mod].empty?
74
+
75
+ c = data[:category]
76
+ o = data[:origin]
77
+ files[c] ||= {}
78
+ files[c][o] ||= []
79
+ files[c][o] << mod
80
+ end
81
+ ind = 0
82
+ files.each do |category, data|
83
+ data.each do |origin, modules|
84
+ ind += 1
85
+ filename = "index_#{format('%03d', ind)}_#{category.downcase}_#{origin.downcase.sanitize}"
86
+ filepath = "#{OPTIONS[:folder]}/#{filename}.#{OPTIONS[:type]}"
87
+ file_list << filepath
88
+ new_content = StringIO.new
89
+ print "Creating #{filepath}..." unless @silent
90
+ @exporter.index(new_content, category, origin, modules)
91
+ write_content(filepath, new_content.string)
92
+ end
93
+ end
94
+ end
95
+
96
+ def export
97
+ requirements_by_module = {}
98
+ module_keys = @loader.module_data.keys
99
+ module_keys.each { |um| requirements_by_module[um] = [] }
100
+ @loader.requirements.each { |_id, r| requirements_by_module[r.document] << r }
101
+
102
+ @exporter = EXPORTER[OPTIONS[:type]].new(@loader)
103
+ requirements_by_module.each do |doc, reqs|
104
+ next if reqs.empty?
105
+
106
+ @export_dir = File.join(OPTIONS[:folder])
107
+ filename = File.join(export_dir, doc.sanitize, "Requirements.#{OPTIONS[:type]}")
108
+ file_list << filename
109
+ FileUtils.mkdir_p(File.dirname(filename))
110
+ copy_files(doc)
111
+
112
+ new_content = StringIO.new
113
+ print "Creating #{filename}..." unless @silent
114
+ @exporter.header(new_content)
115
+ @exporter.document(new_content, doc)
116
+ meta = @loader.metadata[doc]
117
+ @exporter.metadata(new_content, meta) if meta != ''
118
+ reqs.each do |r|
119
+ @exporter.requirement(new_content, r)
120
+ end
121
+ @exporter.footer(new_content)
122
+ write_content(filename, new_content.string)
123
+ end
124
+
125
+ create_index(requirements_by_module)
126
+ end
127
+
128
+ def clean_destination(dir_path = export_dir)
129
+ Dir.new(dir_path).children.each do |file|
130
+ dst = File.join(dir_path, file)
131
+ path = Pathname.new(dst)
132
+
133
+ clean_destination(dst) if path.directory?
134
+
135
+ next if file_list.include? dst
136
+
137
+ if path.directory?
138
+ path.rmdir if path.empty?
139
+ else
140
+ path.delete
141
+ end
142
+ end
143
+ end
144
+ end
145
+ end