avmtrf1-tools 0.30.0 → 0.31.0

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: b61967bd7fdee216edfc174a67a238cb5f09fd625ae19c5bc029f0e13fc319ce
4
- data.tar.gz: 4ecf717af9a51d39bda3ef107a5536ad97a27c4839cae2ff4255f89bccffa47e
3
+ metadata.gz: 6c5bad455467daeed4b784815ef6ced2bc39df34293b23d68154fb346df27684
4
+ data.tar.gz: dfc6d8d87add56ea1ac6d24a454908ef787950b5613c7527659a288e3f11a99b
5
5
  SHA512:
6
- metadata.gz: f4dcd615dec9efc8824e9307a8673a409ef411e27c41e0b52b4df8f2bf613a66425fda3c13fe7550dc5347088d83b6e097360fb033e78ee100d84ed779715aa2
7
- data.tar.gz: 788d8843f20252d25d86e79e327f16e71f2aa9a9de370e754b65a99eb7043dbbbc2a40ba02bfc244f0287af4bd96daf579ea7849dfcc61e61966122419f9f368
6
+ metadata.gz: ede8d1068d069269c3574f8b19a8ff457290cf42b9d159dbf4ffcf30a0161673d892e34b9c463e384118660363490e02a4b4e767a1af84d37f732d726bcfbe9c
7
+ data.tar.gz: fe50b0768fed63003306e5886a83841de7c814bd0e545885624d502e9a1a0af83e3378121c322591ac80acb348af1ac798000fdcbe72a10c8c3b2173845a9f92
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'roo'
5
+
6
+ module Avmtrf1
7
+ class InventarioSistemas
8
+ require_sub __FILE__, include_modules: true
9
+
10
+ SHEET_NAME = 'TRF1'
11
+ UNUSED_OFFSET = 1
12
+ UNUSED_SIZE = 2
13
+ HEADER_OFFSET = UNUSED_OFFSET + UNUSED_SIZE
14
+ HEADER_SIZE = 2
15
+ BODY_OFFSET = HEADER_OFFSET + HEADER_SIZE
16
+
17
+ enable_simple_cache
18
+ common_constructor :path do
19
+ self.path = path.to_pathname
20
+ end
21
+
22
+ def to_s
23
+ path.to_s
24
+ end
25
+
26
+ private
27
+
28
+ def roo_uncached
29
+ ::Roo::Spreadsheet.open(path.to_path)
30
+ end
31
+
32
+ def sheet_uncached
33
+ roo.sheet(SHEET_NAME) || raise("Sheet not found: \"#{SHEET_NAME}\"")
34
+ end
35
+
36
+ def sheet_row_count
37
+ sheet.last_row
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'roo'
5
+
6
+ module Avmtrf1
7
+ class InventarioSistemas
8
+ class Parser
9
+ require_sub __FILE__, include_modules: true
10
+
11
+ SHEET_NAME = 'TRF1'
12
+ UNUSED_OFFSET = 1
13
+ UNUSED_SIZE = 2
14
+ HEADER_OFFSET = UNUSED_OFFSET + UNUSED_SIZE
15
+ HEADER_SIZE = 2
16
+ BODY_OFFSET = HEADER_OFFSET + HEADER_SIZE
17
+
18
+ enable_simple_cache
19
+ common_constructor :path do
20
+ self.path = path.to_pathname
21
+ end
22
+
23
+ def to_s
24
+ path.to_s
25
+ end
26
+
27
+ private
28
+
29
+ def roo_uncached
30
+ ::Roo::Spreadsheet.open(path.to_path)
31
+ end
32
+
33
+ def sheet_uncached
34
+ roo.sheet(SHEET_NAME) || raise("Sheet not found: \"#{SHEET_NAME}\"")
35
+ end
36
+
37
+ def sheet_row_count
38
+ sheet.last_row
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avmtrf1
6
+ class InventarioSistemas
7
+ class Parser
8
+ module Body
9
+ def body_rows_uncached
10
+ index = 0
11
+ r = []
12
+ loop do
13
+ raw_row_i = BODY_OFFSET + index
14
+ return r if raw_row_i > sheet.last_row
15
+
16
+ r << sheet.row(raw_row_i).map { |v| v.to_s.strip }
17
+ index += 1
18
+ end
19
+ end
20
+
21
+ def body_rows_offset
22
+ Header::HEADER_ROW_OFFSET + Header::HEADER_ROWS_SIZE
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avmtrf1
6
+ class InventarioSistemas
7
+ class Parser
8
+ class BodyRow
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avmtrf1
6
+ class InventarioSistemas
7
+ class Parser
8
+ module Header
9
+ HEADER_ROW_OFFSET = 3
10
+ HEADER_ROWS_SIZE = 2
11
+
12
+ private
13
+
14
+ def header_columns_uncached
15
+ r = []
16
+ last_main = nil
17
+ main_row.each_with_index do |main, index|
18
+ sub = sub_row[index]
19
+ main ||= last_main
20
+ raise "[main] is blank (Index: #{index}, Sub: #{sub})" if main.blank?
21
+
22
+ r << HeaderColumn.new(index, main, sub)
23
+ last_main = main if main.present?
24
+ end
25
+ r
26
+ end
27
+
28
+ def main_row_uncached
29
+ sheet.row(HEADER_ROW_OFFSET)
30
+ end
31
+
32
+ def sub_row_uncached
33
+ sheet.row(HEADER_ROW_OFFSET + 1)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avmtrf1
6
+ class InventarioSistemas
7
+ class Parser
8
+ class HeaderColumn
9
+ class << self
10
+ def build_id(main, sub)
11
+ "#{main}_#{sub || 'nil'}".downcase.parameterize
12
+ end
13
+ end
14
+
15
+ common_constructor :index, :main, :sub
16
+
17
+ def id
18
+ self.class.build_id(main, sub)
19
+ end
20
+
21
+ def key
22
+ main + sub.if_present('') { |v| "/#{v}" }
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avmtrf1
6
+ class InventarioSistemas
7
+ class SiteBuild
8
+ require_sub __FILE__
9
+ enable_simple_cache
10
+ common_constructor :input_file, :output_directory
11
+
12
+ UNIQUES = %w[index sistemas_index].freeze
13
+
14
+ def run
15
+ create_output_directory
16
+ build_uniques
17
+ build_sistemas
18
+ end
19
+
20
+ def column(main, sub)
21
+ indexed_columns.fetch(
22
+ ::Avmtrf1::InventarioSistemas::Parser::HeaderColumn.build_id(main, sub)
23
+ )
24
+ end
25
+
26
+ private
27
+
28
+ def build_uniques
29
+ UNIQUES.each { |unique| send(unique).build }
30
+ end
31
+
32
+ def build_sistemas
33
+ sistemas.each(&:build)
34
+ end
35
+
36
+ def create_output_directory
37
+ output_directory.mkpath
38
+ end
39
+
40
+ def parser_uncached
41
+ ::Avmtrf1::InventarioSistemas::Parser.new(input_file)
42
+ end
43
+
44
+ def sistemas_uncached
45
+ parser.body_rows
46
+ .map { |body_row| new_sistema(body_row) }
47
+ .sort_by { |sistema| [sistema.title.downcase] }
48
+ end
49
+
50
+ def indexed_columns_uncached
51
+ parser.header_columns.map do |c|
52
+ [c.id, c]
53
+ end.to_h
54
+ end
55
+
56
+ def index_uncached
57
+ ::Avmtrf1::InventarioSistemas::SiteBuild::Index.new(self, nil)
58
+ end
59
+
60
+ def sistemas_index_uncached
61
+ ::Avmtrf1::InventarioSistemas::SiteBuild::SistemasIndex.new(self, index)
62
+ end
63
+
64
+ def new_sistema(body_row)
65
+ ::Avmtrf1::InventarioSistemas::SiteBuild::Sistema.new(
66
+ self, sistemas_index, body_row
67
+ )
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avmtrf1
6
+ class InventarioSistemas
7
+ class SiteBuild
8
+ class HtmlPageBase
9
+ require_sub __FILE__, include_modules: true
10
+ enable_console_speaker
11
+ common_constructor :site, :parent
12
+
13
+ SITE_TITLE = 'Inventário de Sistemas'
14
+ NAVBAR_SEPARATOR = ' > '
15
+
16
+ def build
17
+ infom "Building #{href}..."
18
+ output_path.write(output_content)
19
+ end
20
+
21
+ def href
22
+ "#{uid}.html"
23
+ end
24
+
25
+ def output_path
26
+ site.output_directory.join(href)
27
+ end
28
+
29
+ def uid
30
+ r = self.class.name.demodulize
31
+ r += "_#{id}" if respond_to?(:id)
32
+ r.parameterize
33
+ end
34
+
35
+ def site_title
36
+ SITE_TITLE.to_s
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'addressable'
4
+
5
+ module Avmtrf1
6
+ class InventarioSistemas
7
+ class SiteBuild
8
+ class HtmlPageBase
9
+ module Elements
10
+ def html_link(link_text, link_href)
11
+ "<a href=#{link_href}>#{link_text}</a>"
12
+ end
13
+
14
+ def html_linkfy(input)
15
+ output = url_or_text(input)
16
+ if output.is_a?(::Addressable::URI)
17
+ html_link(output, output)
18
+ else
19
+ output
20
+ end
21
+ end
22
+
23
+ def html_table(columns, rows)
24
+ b = '<table><theader>'
25
+ b += html_table_row(columns, 'th', '')
26
+ b += '</theader><tbody>'
27
+ rows.each_with_index do |row, index|
28
+ b += html_table_row(row, 'td', (index % 2).zero? ? 'even' : 'odd')
29
+ end
30
+ b + '</tbody></theader>'
31
+ end
32
+
33
+ def html_table_row(values, tag, css_class)
34
+ begin_tag = "<#{tag} class='#{css_class}'>"
35
+ end_tag = "</#{tag}>"
36
+ '<tr>' + values.map { |v| begin_tag + v + end_tag }.join + "</tr>\n"
37
+ end
38
+
39
+ def self_html_link
40
+ html_link(title, href)
41
+ end
42
+
43
+ def url_or_text(input)
44
+ converted_input = input.gsub('\\', '/').gsub(%r{\A//}, 'smb://')
45
+ uri = ::Addressable::URI.parse(converted_input)
46
+ uri.scheme.present? && uri.host.present? ? uri : input
47
+ rescue Addressable::URI::InvalidURIError
48
+ input
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avmtrf1
4
+ class InventarioSistemas
5
+ class SiteBuild
6
+ class HtmlPageBase
7
+ module Layout
8
+ def metadata_info
9
+ "<div class='input_metadata'>" \
10
+ "Extraído de <strong>#{site.input_file.basename}</strong>." \
11
+ '</div>'
12
+ end
13
+
14
+ def output_body
15
+ <<HTML
16
+ <body><div id="top">
17
+ #{output_navbar}
18
+ <h1>#{site_title}</h1>
19
+ #{metadata_info}
20
+ </div><div id="inner">
21
+ <h2>#{title}</h2>
22
+ #{output_inner_content}
23
+ </div></body>
24
+ HTML
25
+ end
26
+
27
+ def output_content
28
+ "<html>\n" + output_header + output_body + '</html>'
29
+ end
30
+
31
+ def output_header
32
+ <<HTML
33
+ <head>
34
+ <meta charset="UTF-8">
35
+ <title>#{site_title} - #{title}</title>
36
+ <style>
37
+ #{::File.read(::File.join(__dir__, 'stylesheet.css'))}
38
+ </style>
39
+ </head>
40
+ HTML
41
+ end
42
+
43
+ def output_navbar
44
+ '<nav>' + output_navbar_path(false) + '</nav>'
45
+ end
46
+
47
+ def output_navbar_path(links)
48
+ (parent.present? ? parent.output_navbar_path(true) + NAVBAR_SEPARATOR : '') +
49
+ (links ? self_html_link : title)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,57 @@
1
+ body, #top, #top * {
2
+ padding: 0;
3
+ margin: 0;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ #top * {
8
+ padding: 0.3em;
9
+ }
10
+
11
+ #inner {
12
+ margin: 0.3em;
13
+ }
14
+
15
+ nav {
16
+ padding: 0.2em;
17
+ }
18
+
19
+ a {
20
+ color: blue;
21
+ }
22
+
23
+ a:visited {
24
+ color: darkblue;
25
+ }
26
+
27
+ h1 {
28
+ text-align: right;
29
+ background-color: lightyellow;
30
+ }
31
+
32
+ .input_metadata {
33
+ text-align: right;
34
+ background-color: lightblue;
35
+ }
36
+
37
+ table {
38
+ border: thin solid black;
39
+ border-collapse: collapse;
40
+ }
41
+
42
+ .odd {
43
+ background-color: lightgray;
44
+ }
45
+
46
+ td, th {
47
+ border-left: thin solid black;
48
+ }
49
+
50
+ th {
51
+ border-bottom: thin solid black;
52
+ }
53
+
54
+ nav, nav a, nav a:visited, th {
55
+ background-color: black;
56
+ color: white;
57
+ }
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'avmtrf1/inventario_sistemas/site_build/html_page_base'
5
+
6
+ module Avmtrf1
7
+ class InventarioSistemas
8
+ class SiteBuild
9
+ class Index < ::Avmtrf1::InventarioSistemas::SiteBuild::HtmlPageBase
10
+ def output_inner_content
11
+ ['<ul>', "<li>#{site.sistemas_index.self_html_link}</li>", '</ul>'].join("\n")
12
+ end
13
+
14
+ def title
15
+ 'Índice'
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'avmtrf1/inventario_sistemas/parser/header_column'
5
+ require 'avmtrf1/inventario_sistemas/site_build/html_page_base'
6
+
7
+ module Avmtrf1
8
+ class InventarioSistemas
9
+ class SiteBuild
10
+ class Sistema < ::Avmtrf1::InventarioSistemas::SiteBuild::HtmlPageBase
11
+ attr_reader :raw_row
12
+
13
+ def initialize(site, parent, raw_row)
14
+ super(site, parent)
15
+ @raw_row = raw_row
16
+ end
17
+
18
+ def id
19
+ nome.parameterize
20
+ end
21
+
22
+ def gestor
23
+ column_value('gestor na jf1', 'unidade')
24
+ end
25
+
26
+ def nome
27
+ column_value('sistema', 'sigla')
28
+ end
29
+
30
+ def producao
31
+ html_linkfy(column_value('ambientes', 'produção – serv. ap'))
32
+ end
33
+
34
+ def responsavel
35
+ %w[unidade seção nome]
36
+ .map { |sub| column_value('responsável pelo desenvolvimento', sub) }
37
+ .reject(&:blank?).join(' » ')
38
+ end
39
+
40
+ def output_inner_content
41
+ column_values = site.parser.header_columns.map { |c| [c.key, column_value(c)] }
42
+ '<h3>Detalhes</h3>' + html_table(%w[Campo Valor], column_values)
43
+ end
44
+
45
+ def title
46
+ nome
47
+ end
48
+
49
+ def column_value(main, sub = nil)
50
+ column = if main.is_a?(::Avmtrf1::InventarioSistemas::Parser::HeaderColumn)
51
+ main
52
+ else
53
+ site.column(main, sub)
54
+ end
55
+ raise 'Out of bound' if column.index >= raw_row.count
56
+
57
+ raw_row[column.index]
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+ require 'avmtrf1/inventario_sistemas/site_build/html_page_base'
5
+
6
+ module Avmtrf1
7
+ class InventarioSistemas
8
+ class SiteBuild
9
+ class SistemasIndex < ::Avmtrf1::InventarioSistemas::SiteBuild::HtmlPageBase
10
+ def output_inner_content
11
+ output_count + output_list
12
+ end
13
+
14
+ def title
15
+ 'Sistemas'
16
+ end
17
+
18
+ def output_count
19
+ "<p>Quantidade: #{site.sistemas.count}</p>"
20
+ end
21
+
22
+ def output_list
23
+ html_table(
24
+ %w[Nome Produção Responsável Gestor],
25
+ site.sistemas.map { |s| [s.self_html_link, s.producao, s.responsavel, s.gestor] }
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -16,21 +16,6 @@ module Avmtrf1
16
16
  end
17
17
 
18
18
  module InstanceMethods
19
- def execute(*args)
20
- args, options = build_args(args)
21
- ::EacRubyUtils::Envs.local.command(*args).execute(options)
22
- end
23
-
24
- def system(*args)
25
- args, options = build_args(args)
26
- ::EacRubyUtils::Envs.local.command(*args).system(options)
27
- end
28
-
29
- def command(*args)
30
- args, _options = build_args(args)
31
- ::EacRubyUtils::Envs.local.command(*args)
32
- end
33
-
34
19
  def status_files
35
20
  execute!('-c', 'core.quotepath=off', 'status', '--porcelain').each_line.map do |line|
36
21
  parse_status_file(line)
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/console/docopt_runner'
4
+ require 'avmtrf1/tools/runner/check_point/login'
5
+ require 'avmtrf1/inventario_sistemas/parser'
6
+
7
+ module Avmtrf1
8
+ module Tools
9
+ class Runner < ::EacRubyUtils::Console::DocoptRunner
10
+ class InventarioSistemas < ::EacRubyUtils::Console::DocoptRunner
11
+ include ::EacCli::DefaultRunner
12
+
13
+ DEFAULT_OUTPUT_DIR = './inventario-sistemas'
14
+
15
+ runner_definition do
16
+ desc 'Formata a planilha de inventário de sistemas do TRF1.'
17
+ bool_opt '-w', '--overwrite', 'Sobreescreve diretório de saída se já existir.'
18
+ arg_opt '-d', '--output-directory', "Diretório de saída [default: #{DEFAULT_OUTPUT_DIR}]."
19
+ pos_arg 'source-file-path'
20
+ end
21
+
22
+ def run
23
+ start_banner
24
+ prepare
25
+ build
26
+ end_banner
27
+ end
28
+
29
+ private
30
+
31
+ def end_banner
32
+ success "Aplicação gerada em #{output_directory}"
33
+ end
34
+
35
+ def build
36
+ site_build.run
37
+ end
38
+
39
+ def input_file_uncached
40
+ options.fetch('<source-file-path>').to_pathname.expand_path
41
+ end
42
+
43
+ def site_build_uncached
44
+ ::Avmtrf1::InventarioSistemas::SiteBuild.new(input_file, output_directory)
45
+ end
46
+
47
+ def output_directory_uncached
48
+ options.fetch('--output-directory').if_present(DEFAULT_OUTPUT_DIR).to_pathname.expand_path
49
+ end
50
+
51
+ def overwrite?
52
+ options.fetch('--overwrite')
53
+ end
54
+
55
+ def start_banner
56
+ infov 'Arquivo de entrada', input_file
57
+ infov 'Diretório de saída', output_directory
58
+ end
59
+
60
+ def prepare
61
+ return unless output_directory.exist?
62
+
63
+ if overwrite?
64
+ infom "Removendo \"#{output_directory}\"..."
65
+ ::FileUtils.rm_r(output_directory.to_path)
66
+ else
67
+ fatal_error "#{output_directory}: já existe (Utilize --overwrite para sobreescrever)"
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.30.0'
5
+ VERSION = '0.31.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avmtrf1-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.31.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-25 00:00:00.000000000 Z
11
+ date: 2020-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -168,6 +168,26 @@ dependencies:
168
168
  - - ">="
169
169
  - !ruby/object:Gem::Version
170
170
  version: 1.1.1
171
+ - !ruby/object:Gem::Dependency
172
+ name: roo
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: '2.8'
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: 2.8.3
181
+ type: :runtime
182
+ prerelease: false
183
+ version_requirements: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '2.8'
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: 2.8.3
171
191
  - !ruby/object:Gem::Dependency
172
192
  name: eac_ruby_gem_support
173
193
  requirement: !ruby/object:Gem::Requirement
@@ -259,6 +279,20 @@ files:
259
279
  - lib/avmtrf1/git/reference.rb
260
280
  - lib/avmtrf1/ini.rb
261
281
  - lib/avmtrf1/ini/profile.rb
282
+ - lib/avmtrf1/inventario_sistemas.rb
283
+ - lib/avmtrf1/inventario_sistemas/parser.rb
284
+ - lib/avmtrf1/inventario_sistemas/parser/body.rb
285
+ - lib/avmtrf1/inventario_sistemas/parser/body_row.rb
286
+ - lib/avmtrf1/inventario_sistemas/parser/header.rb
287
+ - lib/avmtrf1/inventario_sistemas/parser/header_column.rb
288
+ - lib/avmtrf1/inventario_sistemas/site_build.rb
289
+ - lib/avmtrf1/inventario_sistemas/site_build/html_page_base.rb
290
+ - lib/avmtrf1/inventario_sistemas/site_build/html_page_base/elements.rb
291
+ - lib/avmtrf1/inventario_sistemas/site_build/html_page_base/layout.rb
292
+ - lib/avmtrf1/inventario_sistemas/site_build/html_page_base/stylesheet.css
293
+ - lib/avmtrf1/inventario_sistemas/site_build/index.rb
294
+ - lib/avmtrf1/inventario_sistemas/site_build/sistema.rb
295
+ - lib/avmtrf1/inventario_sistemas/site_build/sistemas_index.rb
262
296
  - lib/avmtrf1/issues.rb
263
297
  - lib/avmtrf1/issues/factory.rb
264
298
  - lib/avmtrf1/jira.rb
@@ -324,6 +358,7 @@ files:
324
358
  - lib/avmtrf1/tools/runner/git.rb
325
359
  - lib/avmtrf1/tools/runner/git/issues_check.rb
326
360
  - lib/avmtrf1/tools/runner/git/push_large.rb
361
+ - lib/avmtrf1/tools/runner/inventario_sistemas.rb
327
362
  - lib/avmtrf1/tools/runner/oracle.rb
328
363
  - lib/avmtrf1/tools/runner/oracle/query.rb
329
364
  - lib/avmtrf1/tools/runner/oracle/source_get.rb
@@ -368,8 +403,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
368
403
  - !ruby/object:Gem::Version
369
404
  version: '0'
370
405
  requirements: []
371
- rubyforge_project:
372
- rubygems_version: 2.7.7
406
+ rubygems_version: 3.0.8
373
407
  signing_key:
374
408
  specification_version: 4
375
409
  summary: Ferramentas para AVM-TRF1.