rggen-markdown 0.13.1 → 0.18.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: 320d98bbec41bfc1c44c1864589a1a4b3ff7a6f30423bad15ad70ccb6462282d
4
- data.tar.gz: eb9986b8b7629c32cccb095186dc5f4774cdfb38ae84c43c1c35e54904a96c14
3
+ metadata.gz: 399827f511dd221bd6e8b647aa33ae36c4d22022a7948fb99a8242e647ae0bb9
4
+ data.tar.gz: cd31131a1a3299717474f16983683a2f9854d136fc22ac104acff2a16c3a9460
5
5
  SHA512:
6
- metadata.gz: 2e58b47a99a5b7cdc541c5ca34996369124d17fa8d8b0cb4360df68750d5a3f9cc3cd4498431f984d75bc6a65fc449ff632b5044f147490000a967555d88ed8e
7
- data.tar.gz: 16badbc6f41c52379518fc3549e8126112193d2f99a551d61fe3fb0d593bd4835be28600737c8b401ee26d9773a24ca9e9244095eda4fb990bd8a26177ab241f
6
+ metadata.gz: 5afddc0aa9cadcd6e6672eb859a659239f9828577357caf063922dc29019f7cca018babf3a9d4c33f9fd1152390f09f79e3706e3c2a5e6013f64818850a7d868
7
+ data.tar.gz: 120a0d0084997adb97975a62bc99d8e27bdfa9a6da598b6971627e9b880e6191d5edd6d485f203d23dd3968de2a541f449eec27b45ac045eb6e001d73015f5db
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2019 Taichi Ishitani
3
+ Copyright (c) 2019-2020 Taichi Ishitani
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/rggen-markdown.svg)](https://badge.fury.io/rb/rggen-markdown)
2
- [![Build Status](https://travis-ci.com/rggen/rggen-markdown.svg?branch=master)](https://travis-ci.com/rggen/rggen-markdown)
2
+ [![CI](https://github.com/rggen/rggen-markdown/workflows/CI/badge.svg)](https://github.com/rggen/rggen-markdown/actions?query=workflow%3ACI)
3
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/5bbd7d84fefb30c5ee9a/maintainability)](https://codeclimate.com/github/rggen/rggen-markdown/maintainability)
4
4
  [![codecov](https://codecov.io/gh/rggen/rggen-markdown/branch/master/graph/badge.svg)](https://codecov.io/gh/rggen/rggen-markdown)
5
5
  [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=rggen_rggen-markdown&metric=alert_status)](https://sonarcloud.io/dashboard?id=rggen_rggen-markdown)
@@ -34,7 +34,7 @@ Feedbacks, bug reports, questions and etc. are wellcome! You can post them by us
34
34
 
35
35
  ## Copyright & License
36
36
 
37
- Copyright © 2019 Taichi Ishitani. RgGen::Markdown is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
37
+ Copyright © 2019-2020 Taichi Ishitani. RgGen::Markdown is licensed under the [MIT License](https://opensource.org/licenses/MIT), see [LICENSE](LICENSE) for futher details.
38
38
 
39
39
  ## Code of Conduct
40
40
 
@@ -1,10 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'ruport'
4
- require 'ruport/wiki_table_formatter'
5
-
6
3
  require_relative 'markdown/version'
7
4
  require_relative 'markdown/utility/source_file'
5
+ require_relative 'markdown/utility/table_formatter'
8
6
  require_relative 'markdown/utility'
9
7
  require_relative 'markdown/component'
10
8
  require_relative 'markdown/feature'
@@ -20,10 +18,10 @@ module RgGen
20
18
  def self.register_component(builder)
21
19
  builder.output_component_registry(:markdown) do
22
20
  register_component [
23
- :register_map, :register_block, :register, :bit_field
21
+ :root, :register_block, :register_file, :register, :bit_field
24
22
  ] do |category|
25
23
  component Component, ComponentFactory
26
- feature Feature, FeatureFactory if category != :register_map
24
+ feature Feature, FeatureFactory if category != :root
27
25
  end
28
26
  end
29
27
  end
@@ -1,11 +1,13 @@
1
1
 
2
- ### <%= anchor(anchor_id) %><%= register.name %>
2
+ ### <%= anchor(anchor_id) %><%= title %>
3
3
 
4
- <% register.printables.each do |name, printable| %>
4
+ <% register_printables.each do |name, value_or_values| %>
5
5
  * <%= name %>
6
- * <%= printable || 'NA' %>
6
+ <% Array(value_or_values).each do |value| %>
7
+ * <%= trim_space(value) %>
8
+ <% end %>
7
9
  <% end %>
8
- <% if register.bit_fields? %>
10
+ <% unless register.bit_fields.empty? %>
9
11
 
10
12
  <%= bit_field_table %>
11
- <% end%>
13
+ <% end %>
@@ -3,13 +3,24 @@
3
3
  RgGen.define_simple_feature(:register, :markdown) do
4
4
  markdown do
5
5
  export def anchor_id
6
- [register_block.anchor_id, register.name].join('-')
6
+ [register_block, *register_files, register]
7
+ .map(&:name).join('-')
7
8
  end
8
9
 
9
10
  main_code :markdown, from_template: true
10
11
 
11
12
  private
12
13
 
14
+ def title
15
+ register.printables[:layer_name]
16
+ end
17
+
18
+ def register_printables
19
+ register.printables
20
+ .reject { |key, _| [:name, :layer_name].include?(key) }
21
+ .compact
22
+ end
23
+
13
24
  def bit_field_table
14
25
  column_names = bit_field_printables.first.keys
15
26
  rows =
@@ -1,8 +1,8 @@
1
- ## <%= register_block.name %>
1
+ ## <%= title %>
2
2
 
3
- <% register_block.printables.each do |name, printable| %>
3
+ <% register_block_printables.each do |name, printable| %>
4
4
  * <%= name %>
5
- * <%= printable || 'NA' %>
5
+ * <%= trim_space(printable) %>
6
6
  <% end %>
7
7
 
8
8
  <%= register_table %>
@@ -8,7 +8,7 @@ RgGen.define_simple_feature(:register_block, :markdown) do
8
8
 
9
9
  write_file '<%= register_block.name %>.md' do |file|
10
10
  file.body do |code|
11
- register_block.generate_code(:markdown, :top_down, code)
11
+ register_block.generate_code(code, :markdown, :top_down)
12
12
  end
13
13
  end
14
14
 
@@ -16,21 +16,28 @@ RgGen.define_simple_feature(:register_block, :markdown) do
16
16
 
17
17
  private
18
18
 
19
+ def title
20
+ register_block.name
21
+ end
22
+
23
+ def register_block_printables
24
+ register_block.printables
25
+ .reject { |key, _| key == :name }
26
+ .compact
27
+ end
28
+
19
29
  def register_table
20
- table([:name, :offset_address], table_rows)
30
+ table([:name], table_rows)
21
31
  end
22
32
 
23
33
  def table_rows
24
- register_block.registers
25
- .zip(register_block.registers.map(&:printables))
26
- .map { |register, printables| table_row(register, printables) }
34
+ register_block.registers.map(&method(:table_row))
27
35
  end
28
36
 
29
- def table_row(register, printables)
30
- [
31
- anchor_link(printables[:name], register.anchor_id),
32
- printables[:offset_address]
33
- ]
37
+ def table_row(register)
38
+ name = register.printables[:layer_name]
39
+ id = register.anchor_id
40
+ [anchor_link(name, id)]
34
41
  end
35
42
  end
36
43
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'rggen/markdown'
4
4
 
5
- RgGen.setup :markdown, RgGen::Markdown do |builder|
5
+ RgGen.setup :'rggen-markdown', RgGen::Markdown do |builder|
6
6
  builder.enable :register_block, [:markdown]
7
7
  builder.enable :register, [:markdown]
8
8
  end
@@ -19,11 +19,12 @@ module RgGen
19
19
  "[#{text}](##{id})"
20
20
  end
21
21
 
22
- def table(column_names, rows)
23
- table = Ruport.Table(column_names) do |t|
24
- rows.each { |row| t << row }
25
- end
26
- table.to_markdown(io: +'').chomp
22
+ def trim_space(string)
23
+ string.to_s.split(newline).map(&:strip).reject(&:empty?).join('<br>')
24
+ end
25
+
26
+ def table(labels, rows)
27
+ TableFormatter.new.format(labels, rows)
27
28
  end
28
29
  end
29
30
  end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RgGen
4
+ module Markdown
5
+ module Utility
6
+ class TableFormatter
7
+ include Core::Utility::CodeUtility
8
+
9
+ def format(labels, table)
10
+ code_block do |code|
11
+ build_md_lines(labels, table).each_with_index do |line, i|
12
+ code << nl if i.positive?
13
+ code << line
14
+ end
15
+ end
16
+ end
17
+
18
+ private
19
+
20
+ def build_md_lines(labels, table)
21
+ lines = []
22
+ build_md_line(lines, labels)
23
+ build_md_line(lines, alignment_marks(labels.size))
24
+ table.each { |row| build_md_line(lines, row) }
25
+ lines
26
+ end
27
+
28
+ def build_md_line(lines, row)
29
+ lines <<
30
+ ['', *row]
31
+ .map(&method(:escape))
32
+ .zip(separators(row.size + 1))
33
+ .flatten
34
+ end
35
+
36
+ def escape(cell)
37
+ cell.to_s
38
+ .gsub('|', '&#124;')
39
+ .gsub("\n", '<br>')
40
+ end
41
+
42
+ def separators(size)
43
+ Array.new(size, '|')
44
+ end
45
+
46
+ def alignment_marks(size)
47
+ Array.new(size, ':--')
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RgGen
4
4
  module Markdown
5
- VERSION = '0.13.1'
5
+ VERSION = '0.18.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,43 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rggen-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Taichi Ishitani
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-03 00:00:00.000000000 Z
11
+ date: 2020-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: ruport
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '1.7'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '1.7'
27
- - !ruby/object:Gem::Dependency
28
- name: ruport-wiki-table-formatter
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0.2'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0.2'
41
13
  - !ruby/object:Gem::Dependency
42
14
  name: bundler
43
15
  requirement: !ruby/object:Gem::Requirement
@@ -54,7 +26,7 @@ dependencies:
54
26
  version: '0'
55
27
  description: 'Markdown generator for RgGen.
56
28
 
57
- '
29
+ '
58
30
  email:
59
31
  - rggen@googlegroups.com
60
32
  executables: []
@@ -74,6 +46,7 @@ files:
74
46
  - lib/rggen/markdown/setup.rb
75
47
  - lib/rggen/markdown/utility.rb
76
48
  - lib/rggen/markdown/utility/source_file.rb
49
+ - lib/rggen/markdown/utility/table_formatter.rb
77
50
  - lib/rggen/markdown/version.rb
78
51
  homepage: https://github.com/rggen/rggen-markdown
79
52
  licenses:
@@ -91,15 +64,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
64
  requirements:
92
65
  - - ">="
93
66
  - !ruby/object:Gem::Version
94
- version: '2.3'
67
+ version: '2.4'
95
68
  required_rubygems_version: !ruby/object:Gem::Requirement
96
69
  requirements:
97
70
  - - ">="
98
71
  - !ruby/object:Gem::Version
99
72
  version: '0'
100
73
  requirements: []
101
- rubygems_version: 3.0.3
74
+ rubygems_version: 3.1.2
102
75
  signing_key:
103
76
  specification_version: 4
104
- summary: rggen-markdown-0.13.1
77
+ summary: rggen-markdown-0.18.0
105
78
  test_files: []